diff --git a/.changeset/yummy-taxis-laugh.md b/.changeset/yummy-taxis-laugh.md new file mode 100644 index 000000000..e1b6c47ec --- /dev/null +++ b/.changeset/yummy-taxis-laugh.md @@ -0,0 +1,6 @@ +--- +--- + +CI-only change: consume the Ladon PR reviewer from `adcontextprotocol/actions` +instead of the vendored `.secretariat/ai-review/` tree. No library, CLI, or +published-file impact, so no release is required. diff --git a/.github/codeql/codeql-config.yml b/.github/codeql/codeql-config.yml index 9befa91ff..73776638e 100644 --- a/.github/codeql/codeql-config.yml +++ b/.github/codeql/codeql-config.yml @@ -4,4 +4,3 @@ paths-ignore: - examples/** - scripts/manual-testing/** - test/** - - .secretariat/ai-review/** diff --git a/.github/workflows/ai-review.yml b/.github/workflows/ai-review.yml index db3c574c0..44449da23 100644 --- a/.github/workflows/ai-review.yml +++ b/.github/workflows/ai-review.yml @@ -1,21 +1,23 @@ -name: AI PR Review (AAO-SECRETARIAT) +name: AI PR Review (Ladon) -# AAO-SECRETARIAT reviews every non-draft, non-dependabot PR. The heavy lifting lives in -# the forked action tree under .secretariat/ai-review/ (setup → reviewer → arbiter), -# adapted from Scope3's PR-review action set. This workflow only handles the -# pull_request_target security posture (trusted base-SHA checkout only; the PR -# head is never fetched, checked out, or executed — setup reads head content -# via the GitHub API), the review-workflow-modification gate, and invoking -# the composite. Reviews post as the AAO Secretariat App so they count toward the -# "1 review required" branch-protection check. +# Ladon reviews every non-draft, non-dependabot PR. The heavy lifting lives in +# the shared action tree at adcontextprotocol/actions (ladon/), consumed here by +# floating major tag. This workflow handles the pull_request_target security +# posture (trusted base-SHA checkout only; the PR head is never fetched, checked +# out, or executed - setup reads head content via the GitHub API), the +# review-workflow-modification gate, and invoking the composite. Reviews post as +# the AAO Secretariat App so they count toward the "1 review required" +# branch-protection check. +# +# pull_request_target (not pull_request) is required on a public repo so that PRs +# from forks can access the App token and Anthropic key. on: pull_request_target: types: [opened, labeled, ready_for_review, synchronize] paths-ignore: - '.github/workflows/ai-review.yml' - - '.secretariat/ai-review/**' - - 'AAO-SECRETARIAT.md' + - 'LADON.md' jobs: code_review: @@ -58,7 +60,7 @@ jobs: MODIFIED="" while IFS= read -r f; do case "$f" in - .secretariat/ai-review/*|.github/workflows/ai-review.yml|AAO-SECRETARIAT.md) + .github/workflows/ai-review.yml|LADON.md) MODIFIED="${MODIFIED}${f}"$'\n' ;; esac done <<< "$CHANGED" @@ -85,12 +87,12 @@ jobs: repo: context.repo.repo, pull_number: context.issue.number, event: 'COMMENT', - body: `AAO-SECRETARIAT is **not auto-reviewing** this PR because it modifies the review system itself (${files}). A human reviewer should review and merge this PR; AAO-SECRETARIAT resumes on subsequent PRs once these changes land on \`main\`.` + body: `Ladon is **not auto-reviewing** this PR because it modifies the review system itself (${files}). A human reviewer should review and merge this PR; Ladon resumes on subsequent PRs once these changes land on \`main\`.` }); - - name: Run AAO-SECRETARIAT + - name: Run Ladon if: steps.workflow-mod.outputs.modified != 'true' - uses: ./.secretariat/ai-review/review + uses: adcontextprotocol/actions/ladon/review@ladon/review/v1 with: anthropic-api-key: ${{ secrets.ANTHROPIC_API_KEY }} app-id: ${{ secrets.SECRETARIAT_APP_ID }} diff --git a/.github/workflows/secretariat-dist-check.yml b/.github/workflows/secretariat-dist-check.yml deleted file mode 100644 index de97c3fbf..000000000 --- a/.github/workflows/secretariat-dist-check.yml +++ /dev/null @@ -1,26 +0,0 @@ -name: Secretariat dist check - -# Backstops the local pre-commit dist-rebuild hook: verifies each node action's -# committed dist/ bundle is in sync with its source. Plain build + git-diff, no -# secrets — runs on the PR head under the ordinary pull_request trigger. - -on: - pull_request: - paths: - - '.secretariat/ai-review/setup/**' - - '.secretariat/ai-review/arbiter/**' - -# Read-only: this job only checks out, builds, and diffs. No token writes. -permissions: - contents: read - -jobs: - dist-in-sync: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v5 - - uses: actions/setup-node@v4 - with: - node-version: '24' - - name: Verify committed dist/ matches source - run: bash .secretariat/ai-review/scripts/check-dist.sh diff --git a/.prettierignore b/.prettierignore index 7b443dcf8..9671942e4 100644 --- a/.prettierignore +++ b/.prettierignore @@ -16,11 +16,4 @@ test/fixtures/webhook-signing-vectors/ # `static/examples/products/canonical/` + `server/src/creative-agent/`. # Byte-identical to upstream so projection tests don't drift on local # formatting changes. -test/lib/v2-projection-fixtures/ - -# AAO-SECRETARIAT v2 code-review system, forked verbatim from scope3data/actions -# (aao-secretariat-v2/ tree). Files here are fetched byte-for-byte from upstream so -# the fork stays diffable against its source; prettier would reformat them -# and mask real upstream drift. See .secretariat/ai-review/README.md for the pinned -# SHA and fork rationale. -.secretariat/ai-review/ \ No newline at end of file +test/lib/v2-projection-fixtures/ \ No newline at end of file diff --git a/.secretariat/ai-review/README.md b/.secretariat/ai-review/README.md deleted file mode 100644 index 2b9a6c2e9..000000000 --- a/.secretariat/ai-review/README.md +++ /dev/null @@ -1,19 +0,0 @@ -# AAO-SECRETARIAT - -AdCP's PR reviewer, as a set of GitHub Actions: `setup` → `reviewer` → `arbiter`, -orchestrated by `review`. The reviewer emits schema-validated findings; the -arbiter decides an outcome (`approve` / `request-changes` / `comment` / -`escalate`) via a constrained tool call and posts a single review. - -## Provenance - -Forked from Scope3's **Argus** review action (`scope3data/actions/argus-v2` @ -`5524fdc4b5998374640f0e16003e29e6d38c8aa2`) and adapted from the Argus review -workflow in `adcontextprotocol/adcp` (PR #4816). Renamed **AAO-SECRETARIAT** for -AdCP; AdCP-specific deltas (auth via the AAO IPR Bot App, `pull_request_target` -head-read handling, repo rules in `AAO-SECRETARIAT.md`) are tracked in this fork. - -## Layout - -Phase-1: the action tree lives here under `.secretariat/ai-review/`. Phase-2: -it moves to a central AdCP repo and every AdCP repo consumes it from there. diff --git a/.secretariat/ai-review/arbiter/.gitignore b/.secretariat/ai-review/arbiter/.gitignore deleted file mode 100644 index 2191e3cd0..000000000 --- a/.secretariat/ai-review/arbiter/.gitignore +++ /dev/null @@ -1,5 +0,0 @@ -# The repo root .gitignore ignores dist/ globally (build output convention -# for the main package). This action's dist/index.js is a committed ncc -# bundle (it's the actual GitHub Action runtime), so un-ignore it here. -!dist/ -!dist/** diff --git a/.secretariat/ai-review/arbiter/action.yml b/.secretariat/ai-review/arbiter/action.yml deleted file mode 100644 index a4b9d6425..000000000 --- a/.secretariat/ai-review/arbiter/action.yml +++ /dev/null @@ -1,85 +0,0 @@ -name: 'AAO-SECRETARIAT v2 — Arbiter' -description: 'Decides approve/request-changes/comment/escalate from the reviewer findings and posts the PR review.' -author: 'Ad Context Protocol' - -inputs: - anthropic-api-key: - description: 'Anthropic API key' - required: true - github-token: - description: 'GitHub App installation token (AAO-SECRETARIAT app)' - required: true - findings-json: - description: 'Structured findings from the reviewer step' - required: true - aao-secretariat-md-body: - description: 'Repo Context section of AAO-SECRETARIAT.md' - required: false - default: '' - high-risk: - description: '"true" if setup flagged high-risk paths' - required: true - high-risk-reasons: - description: 'JSON array of high-risk reasons' - required: false - default: '[]' - gated-paths: - description: '"true" if setup flagged gated paths' - required: false - default: 'false' - gated-paths-reasons: - description: 'JSON array of gated-path reasons' - required: false - default: '[]' - review-decision: - description: 'Raw GitHub reviewDecision (APPROVED | CHANGES_REQUESTED | REVIEW_REQUIRED | "")' - required: false - default: '' - escalation-reviewers: - description: 'Comma-separated reviewers (GitHub user logins and/or org/team-slug) to request when escalating' - required: false - default: '' - no-auto-approve-teams: - description: 'Comma-separated team slugs' - required: false - default: '' - protected-branches: - description: 'Comma-separated branches' - required: false - default: '' - prior-decision: - description: 'JSON-serialized prior decision marker (or empty)' - required: false - default: '' - pr-number: - description: 'PR number' - required: true - head-sha: - description: 'Head SHA' - required: true - base-sha: - description: 'Base SHA' - required: true - diff-full-path: - description: 'Path to full PR diff (used to compute diff stats only)' - required: true - model: - description: 'Claude model for the decision call' - required: false - default: 'claude-sonnet-4-6' - decision-label: - description: 'Label applied on escalate' - required: false - default: 'aao-secretariat/needs-human-review' - -outputs: - outcome: - description: 'approve | request-changes | comment | escalate' - -runs: - using: 'node24' - main: 'dist/index.js' - -branding: - icon: 'shield' - color: 'purple' diff --git a/.secretariat/ai-review/arbiter/dist/33.index.js b/.secretariat/ai-review/arbiter/dist/33.index.js deleted file mode 100644 index 54a2319f0..000000000 --- a/.secretariat/ai-review/arbiter/dist/33.index.js +++ /dev/null @@ -1,148 +0,0 @@ -export const id = 33; -export const ids = [33]; -export const modules = { - -/***/ 7666: -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -/*! node-domexception. MIT License. Jimmy Wärting */ - -if (!globalThis.DOMException) { - try { - const { MessageChannel } = __webpack_require__(8167), - port = new MessageChannel().port1, - ab = new ArrayBuffer() - port.postMessage(ab, [ab, ab]) - } catch (err) { - err.constructor.name === 'DOMException' && ( - globalThis.DOMException = err.constructor - ) - } -} - -module.exports = globalThis.DOMException - - -/***/ }), - -/***/ 2033: -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - - -// EXPORTS -__webpack_require__.d(__webpack_exports__, { - fileFromPath: () => (/* binding */ fileFromPath) -}); - -// UNUSED EXPORTS: fileFromPathSync, isFile - -// EXTERNAL MODULE: external "fs" -var external_fs_ = __webpack_require__(9896); -// EXTERNAL MODULE: external "path" -var external_path_ = __webpack_require__(6928); -// EXTERNAL MODULE: ./node_modules/node-domexception/index.js -var node_domexception = __webpack_require__(7666); -// EXTERNAL MODULE: ./node_modules/formdata-node/lib/esm/File.js -var File = __webpack_require__(2928); -;// CONCATENATED MODULE: ./node_modules/formdata-node/lib/esm/isPlainObject.js -const getType = (value) => (Object.prototype.toString.call(value).slice(8, -1).toLowerCase()); -function isPlainObject(value) { - if (getType(value) !== "object") { - return false; - } - const pp = Object.getPrototypeOf(value); - if (pp === null || pp === undefined) { - return true; - } - const Ctor = pp.constructor && pp.constructor.toString(); - return Ctor === Object.toString(); -} -/* harmony default export */ const esm_isPlainObject = (isPlainObject); - -// EXTERNAL MODULE: ./node_modules/formdata-node/lib/esm/isFile.js -var isFile = __webpack_require__(928); -;// CONCATENATED MODULE: ./node_modules/formdata-node/lib/esm/fileFromPath.js -var __classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) { - if (kind === "m") throw new TypeError("Private method is not writable"); - if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter"); - if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it"); - return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value; -}; -var __classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) { - if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); - if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); - return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); -}; -var _FileFromPath_path, _FileFromPath_start; - - - - - - -const MESSAGE = "The requested file could not be read, " - + "typically due to permission problems that have occurred after a reference " - + "to a file was acquired."; -class FileFromPath { - constructor(input) { - _FileFromPath_path.set(this, void 0); - _FileFromPath_start.set(this, void 0); - __classPrivateFieldSet(this, _FileFromPath_path, input.path, "f"); - __classPrivateFieldSet(this, _FileFromPath_start, input.start || 0, "f"); - this.name = (0,external_path_.basename)(__classPrivateFieldGet(this, _FileFromPath_path, "f")); - this.size = input.size; - this.lastModified = input.lastModified; - } - slice(start, end) { - return new FileFromPath({ - path: __classPrivateFieldGet(this, _FileFromPath_path, "f"), - lastModified: this.lastModified, - size: end - start, - start - }); - } - async *stream() { - const { mtimeMs } = await external_fs_.promises.stat(__classPrivateFieldGet(this, _FileFromPath_path, "f")); - if (mtimeMs > this.lastModified) { - throw new node_domexception(MESSAGE, "NotReadableError"); - } - if (this.size) { - yield* (0,external_fs_.createReadStream)(__classPrivateFieldGet(this, _FileFromPath_path, "f"), { - start: __classPrivateFieldGet(this, _FileFromPath_start, "f"), - end: __classPrivateFieldGet(this, _FileFromPath_start, "f") + this.size - 1 - }); - } - } - get [(_FileFromPath_path = new WeakMap(), _FileFromPath_start = new WeakMap(), Symbol.toStringTag)]() { - return "File"; - } -} -function createFileFromPath(path, { mtimeMs, size }, filenameOrOptions, options = {}) { - let filename; - if (esm_isPlainObject(filenameOrOptions)) { - [options, filename] = [filenameOrOptions, undefined]; - } - else { - filename = filenameOrOptions; - } - const file = new FileFromPath({ path, size, lastModified: mtimeMs }); - if (!filename) { - filename = file.name; - } - return new File/* File */.Z([file], filename, { - ...options, lastModified: file.lastModified - }); -} -function fileFromPathSync(path, filenameOrOptions, options = {}) { - const stats = statSync(path); - return createFileFromPath(path, stats, filenameOrOptions, options); -} -async function fileFromPath(path, filenameOrOptions, options) { - const stats = await external_fs_.promises.stat(path); - return createFileFromPath(path, stats, filenameOrOptions, options); -} - - -/***/ }) - -}; diff --git a/.secretariat/ai-review/arbiter/dist/index.js b/.secretariat/ai-review/arbiter/dist/index.js deleted file mode 100644 index 9b52ad5bf..000000000 --- a/.secretariat/ai-review/arbiter/dist/index.js +++ /dev/null @@ -1,27 +0,0 @@ -import{createRequire as __WEBPACK_EXTERNAL_createRequire}from"module";var __webpack_modules__={4914:function(a,C,q){var re=this&&this.__createBinding||(Object.create?function(a,C,q,re){if(re===undefined)re=q;var ae=Object.getOwnPropertyDescriptor(C,q);if(!ae||("get"in ae?!C.__esModule:ae.writable||ae.configurable)){ae={enumerable:true,get:function(){return C[q]}}}Object.defineProperty(a,re,ae)}:function(a,C,q,re){if(re===undefined)re=q;a[re]=C[q]});var ae=this&&this.__setModuleDefault||(Object.create?function(a,C){Object.defineProperty(a,"default",{enumerable:true,value:C})}:function(a,C){a["default"]=C});var Ue=this&&this.__importStar||function(a){if(a&&a.__esModule)return a;var C={};if(a!=null)for(var q in a)if(q!=="default"&&Object.prototype.hasOwnProperty.call(a,q))re(C,a,q);ae(C,a);return C};Object.defineProperty(C,"__esModule",{value:true});C.issue=C.issueCommand=void 0;const lt=Ue(q(857));const Pt=q(302);function issueCommand(a,C,q){const re=new Command(a,C,q);process.stdout.write(re.toString()+lt.EOL)}C.issueCommand=issueCommand;function issue(a,C=""){issueCommand(a,{},C)}C.issue=issue;const Wt="::";class Command{constructor(a,C,q){if(!a){a="missing.command"}this.command=a;this.properties=C;this.message=q}toString(){let a=Wt+this.command;if(this.properties&&Object.keys(this.properties).length>0){a+=" ";let C=true;for(const q in this.properties){if(this.properties.hasOwnProperty(q)){const re=this.properties[q];if(re){if(C){C=false}else{a+=","}a+=`${q}=${escapeProperty(re)}`}}}}a+=`${Wt}${escapeData(this.message)}`;return a}}function escapeData(a){return(0,Pt.toCommandValue)(a).replace(/%/g,"%25").replace(/\r/g,"%0D").replace(/\n/g,"%0A")}function escapeProperty(a){return(0,Pt.toCommandValue)(a).replace(/%/g,"%25").replace(/\r/g,"%0D").replace(/\n/g,"%0A").replace(/:/g,"%3A").replace(/,/g,"%2C")}},7484:function(a,C,q){var re=this&&this.__createBinding||(Object.create?function(a,C,q,re){if(re===undefined)re=q;var ae=Object.getOwnPropertyDescriptor(C,q);if(!ae||("get"in ae?!C.__esModule:ae.writable||ae.configurable)){ae={enumerable:true,get:function(){return C[q]}}}Object.defineProperty(a,re,ae)}:function(a,C,q,re){if(re===undefined)re=q;a[re]=C[q]});var ae=this&&this.__setModuleDefault||(Object.create?function(a,C){Object.defineProperty(a,"default",{enumerable:true,value:C})}:function(a,C){a["default"]=C});var Ue=this&&this.__importStar||function(a){if(a&&a.__esModule)return a;var C={};if(a!=null)for(var q in a)if(q!=="default"&&Object.prototype.hasOwnProperty.call(a,q))re(C,a,q);ae(C,a);return C};var lt=this&&this.__awaiter||function(a,C,q,re){function adopt(a){return a instanceof q?a:new q((function(C){C(a)}))}return new(q||(q=Promise))((function(q,ae){function fulfilled(a){try{step(re.next(a))}catch(a){ae(a)}}function rejected(a){try{step(re["throw"](a))}catch(a){ae(a)}}function step(a){a.done?q(a.value):adopt(a.value).then(fulfilled,rejected)}step((re=re.apply(a,C||[])).next())}))};Object.defineProperty(C,"__esModule",{value:true});C.platform=C.toPlatformPath=C.toWin32Path=C.toPosixPath=C.markdownSummary=C.summary=C.getIDToken=C.getState=C.saveState=C.group=C.endGroup=C.startGroup=C.info=C.notice=C.warning=C.error=C.debug=C.isDebug=C.setFailed=C.setCommandEcho=C.setOutput=C.getBooleanInput=C.getMultilineInput=C.getInput=C.addPath=C.setSecret=C.exportVariable=C.ExitCode=void 0;const Pt=q(4914);const Wt=q(4753);const Ar=q(302);const Er=Ue(q(857));const Br=Ue(q(6928));const Qr=q(5306);var Ir;(function(a){a[a["Success"]=0]="Success";a[a["Failure"]=1]="Failure"})(Ir||(C.ExitCode=Ir={}));function exportVariable(a,C){const q=(0,Ar.toCommandValue)(C);process.env[a]=q;const re=process.env["GITHUB_ENV"]||"";if(re){return(0,Wt.issueFileCommand)("ENV",(0,Wt.prepareKeyValueMessage)(a,C))}(0,Pt.issueCommand)("set-env",{name:a},q)}C.exportVariable=exportVariable;function setSecret(a){(0,Pt.issueCommand)("add-mask",{},a)}C.setSecret=setSecret;function addPath(a){const C=process.env["GITHUB_PATH"]||"";if(C){(0,Wt.issueFileCommand)("PATH",a)}else{(0,Pt.issueCommand)("add-path",{},a)}process.env["PATH"]=`${a}${Br.delimiter}${process.env["PATH"]}`}C.addPath=addPath;function getInput(a,C){const q=process.env[`INPUT_${a.replace(/ /g,"_").toUpperCase()}`]||"";if(C&&C.required&&!q){throw new Error(`Input required and not supplied: ${a}`)}if(C&&C.trimWhitespace===false){return q}return q.trim()}C.getInput=getInput;function getMultilineInput(a,C){const q=getInput(a,C).split("\n").filter((a=>a!==""));if(C&&C.trimWhitespace===false){return q}return q.map((a=>a.trim()))}C.getMultilineInput=getMultilineInput;function getBooleanInput(a,C){const q=["true","True","TRUE"];const re=["false","False","FALSE"];const ae=getInput(a,C);if(q.includes(ae))return true;if(re.includes(ae))return false;throw new TypeError(`Input does not meet YAML 1.2 "Core Schema" specification: ${a}\n`+`Support boolean input list: \`true | True | TRUE | false | False | FALSE\``)}C.getBooleanInput=getBooleanInput;function setOutput(a,C){const q=process.env["GITHUB_OUTPUT"]||"";if(q){return(0,Wt.issueFileCommand)("OUTPUT",(0,Wt.prepareKeyValueMessage)(a,C))}process.stdout.write(Er.EOL);(0,Pt.issueCommand)("set-output",{name:a},(0,Ar.toCommandValue)(C))}C.setOutput=setOutput;function setCommandEcho(a){(0,Pt.issue)("echo",a?"on":"off")}C.setCommandEcho=setCommandEcho;function setFailed(a){process.exitCode=Ir.Failure;error(a)}C.setFailed=setFailed;function isDebug(){return process.env["RUNNER_DEBUG"]==="1"}C.isDebug=isDebug;function debug(a){(0,Pt.issueCommand)("debug",{},a)}C.debug=debug;function error(a,C={}){(0,Pt.issueCommand)("error",(0,Ar.toCommandProperties)(C),a instanceof Error?a.toString():a)}C.error=error;function warning(a,C={}){(0,Pt.issueCommand)("warning",(0,Ar.toCommandProperties)(C),a instanceof Error?a.toString():a)}C.warning=warning;function notice(a,C={}){(0,Pt.issueCommand)("notice",(0,Ar.toCommandProperties)(C),a instanceof Error?a.toString():a)}C.notice=notice;function info(a){process.stdout.write(a+Er.EOL)}C.info=info;function startGroup(a){(0,Pt.issue)("group",a)}C.startGroup=startGroup;function endGroup(){(0,Pt.issue)("endgroup")}C.endGroup=endGroup;function group(a,C){return lt(this,void 0,void 0,(function*(){startGroup(a);let q;try{q=yield C()}finally{endGroup()}return q}))}C.group=group;function saveState(a,C){const q=process.env["GITHUB_STATE"]||"";if(q){return(0,Wt.issueFileCommand)("STATE",(0,Wt.prepareKeyValueMessage)(a,C))}(0,Pt.issueCommand)("save-state",{name:a},(0,Ar.toCommandValue)(C))}C.saveState=saveState;function getState(a){return process.env[`STATE_${a}`]||""}C.getState=getState;function getIDToken(a){return lt(this,void 0,void 0,(function*(){return yield Qr.OidcClient.getIDToken(a)}))}C.getIDToken=getIDToken;var Dr=q(1847);Object.defineProperty(C,"summary",{enumerable:true,get:function(){return Dr.summary}});var kr=q(1847);Object.defineProperty(C,"markdownSummary",{enumerable:true,get:function(){return kr.markdownSummary}});var Fr=q(1976);Object.defineProperty(C,"toPosixPath",{enumerable:true,get:function(){return Fr.toPosixPath}});Object.defineProperty(C,"toWin32Path",{enumerable:true,get:function(){return Fr.toWin32Path}});Object.defineProperty(C,"toPlatformPath",{enumerable:true,get:function(){return Fr.toPlatformPath}});C.platform=Ue(q(8968))},4753:function(a,C,q){var re=this&&this.__createBinding||(Object.create?function(a,C,q,re){if(re===undefined)re=q;var ae=Object.getOwnPropertyDescriptor(C,q);if(!ae||("get"in ae?!C.__esModule:ae.writable||ae.configurable)){ae={enumerable:true,get:function(){return C[q]}}}Object.defineProperty(a,re,ae)}:function(a,C,q,re){if(re===undefined)re=q;a[re]=C[q]});var ae=this&&this.__setModuleDefault||(Object.create?function(a,C){Object.defineProperty(a,"default",{enumerable:true,value:C})}:function(a,C){a["default"]=C});var Ue=this&&this.__importStar||function(a){if(a&&a.__esModule)return a;var C={};if(a!=null)for(var q in a)if(q!=="default"&&Object.prototype.hasOwnProperty.call(a,q))re(C,a,q);ae(C,a);return C};Object.defineProperty(C,"__esModule",{value:true});C.prepareKeyValueMessage=C.issueFileCommand=void 0;const lt=Ue(q(6982));const Pt=Ue(q(9896));const Wt=Ue(q(857));const Ar=q(302);function issueFileCommand(a,C){const q=process.env[`GITHUB_${a}`];if(!q){throw new Error(`Unable to find environment variable for file command ${a}`)}if(!Pt.existsSync(q)){throw new Error(`Missing file at path: ${q}`)}Pt.appendFileSync(q,`${(0,Ar.toCommandValue)(C)}${Wt.EOL}`,{encoding:"utf8"})}C.issueFileCommand=issueFileCommand;function prepareKeyValueMessage(a,C){const q=`ghadelimiter_${lt.randomUUID()}`;const re=(0,Ar.toCommandValue)(C);if(a.includes(q)){throw new Error(`Unexpected input: name should not contain the delimiter "${q}"`)}if(re.includes(q)){throw new Error(`Unexpected input: value should not contain the delimiter "${q}"`)}return`${a}<<${q}${Wt.EOL}${re}${Wt.EOL}${q}`}C.prepareKeyValueMessage=prepareKeyValueMessage},5306:function(a,C,q){var re=this&&this.__awaiter||function(a,C,q,re){function adopt(a){return a instanceof q?a:new q((function(C){C(a)}))}return new(q||(q=Promise))((function(q,ae){function fulfilled(a){try{step(re.next(a))}catch(a){ae(a)}}function rejected(a){try{step(re["throw"](a))}catch(a){ae(a)}}function step(a){a.done?q(a.value):adopt(a.value).then(fulfilled,rejected)}step((re=re.apply(a,C||[])).next())}))};Object.defineProperty(C,"__esModule",{value:true});C.OidcClient=void 0;const ae=q(4844);const Ue=q(4552);const lt=q(7484);class OidcClient{static createHttpClient(a=true,C=10){const q={allowRetries:a,maxRetries:C};return new ae.HttpClient("actions/oidc-client",[new Ue.BearerCredentialHandler(OidcClient.getRequestToken())],q)}static getRequestToken(){const a=process.env["ACTIONS_ID_TOKEN_REQUEST_TOKEN"];if(!a){throw new Error("Unable to get ACTIONS_ID_TOKEN_REQUEST_TOKEN env variable")}return a}static getIDTokenUrl(){const a=process.env["ACTIONS_ID_TOKEN_REQUEST_URL"];if(!a){throw new Error("Unable to get ACTIONS_ID_TOKEN_REQUEST_URL env variable")}return a}static getCall(a){var C;return re(this,void 0,void 0,(function*(){const q=OidcClient.createHttpClient();const re=yield q.getJson(a).catch((a=>{throw new Error(`Failed to get ID Token. \n \n Error Code : ${a.statusCode}\n \n Error Message: ${a.message}`)}));const ae=(C=re.result)===null||C===void 0?void 0:C.value;if(!ae){throw new Error("Response json body do not have ID Token field")}return ae}))}static getIDToken(a){return re(this,void 0,void 0,(function*(){try{let C=OidcClient.getIDTokenUrl();if(a){const q=encodeURIComponent(a);C=`${C}&audience=${q}`}(0,lt.debug)(`ID token url is ${C}`);const q=yield OidcClient.getCall(C);(0,lt.setSecret)(q);return q}catch(a){throw new Error(`Error message: ${a.message}`)}}))}}C.OidcClient=OidcClient},1976:function(a,C,q){var re=this&&this.__createBinding||(Object.create?function(a,C,q,re){if(re===undefined)re=q;var ae=Object.getOwnPropertyDescriptor(C,q);if(!ae||("get"in ae?!C.__esModule:ae.writable||ae.configurable)){ae={enumerable:true,get:function(){return C[q]}}}Object.defineProperty(a,re,ae)}:function(a,C,q,re){if(re===undefined)re=q;a[re]=C[q]});var ae=this&&this.__setModuleDefault||(Object.create?function(a,C){Object.defineProperty(a,"default",{enumerable:true,value:C})}:function(a,C){a["default"]=C});var Ue=this&&this.__importStar||function(a){if(a&&a.__esModule)return a;var C={};if(a!=null)for(var q in a)if(q!=="default"&&Object.prototype.hasOwnProperty.call(a,q))re(C,a,q);ae(C,a);return C};Object.defineProperty(C,"__esModule",{value:true});C.toPlatformPath=C.toWin32Path=C.toPosixPath=void 0;const lt=Ue(q(6928));function toPosixPath(a){return a.replace(/[\\]/g,"/")}C.toPosixPath=toPosixPath;function toWin32Path(a){return a.replace(/[/]/g,"\\")}C.toWin32Path=toWin32Path;function toPlatformPath(a){return a.replace(/[/\\]/g,lt.sep)}C.toPlatformPath=toPlatformPath},8968:function(a,C,q){var re=this&&this.__createBinding||(Object.create?function(a,C,q,re){if(re===undefined)re=q;var ae=Object.getOwnPropertyDescriptor(C,q);if(!ae||("get"in ae?!C.__esModule:ae.writable||ae.configurable)){ae={enumerable:true,get:function(){return C[q]}}}Object.defineProperty(a,re,ae)}:function(a,C,q,re){if(re===undefined)re=q;a[re]=C[q]});var ae=this&&this.__setModuleDefault||(Object.create?function(a,C){Object.defineProperty(a,"default",{enumerable:true,value:C})}:function(a,C){a["default"]=C});var Ue=this&&this.__importStar||function(a){if(a&&a.__esModule)return a;var C={};if(a!=null)for(var q in a)if(q!=="default"&&Object.prototype.hasOwnProperty.call(a,q))re(C,a,q);ae(C,a);return C};var lt=this&&this.__awaiter||function(a,C,q,re){function adopt(a){return a instanceof q?a:new q((function(C){C(a)}))}return new(q||(q=Promise))((function(q,ae){function fulfilled(a){try{step(re.next(a))}catch(a){ae(a)}}function rejected(a){try{step(re["throw"](a))}catch(a){ae(a)}}function step(a){a.done?q(a.value):adopt(a.value).then(fulfilled,rejected)}step((re=re.apply(a,C||[])).next())}))};var Pt=this&&this.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(C,"__esModule",{value:true});C.getDetails=C.isLinux=C.isMacOS=C.isWindows=C.arch=C.platform=void 0;const Wt=Pt(q(857));const Ar=Ue(q(5236));const getWindowsInfo=()=>lt(void 0,void 0,void 0,(function*(){const{stdout:a}=yield Ar.getExecOutput('powershell -command "(Get-CimInstance -ClassName Win32_OperatingSystem).Version"',undefined,{silent:true});const{stdout:C}=yield Ar.getExecOutput('powershell -command "(Get-CimInstance -ClassName Win32_OperatingSystem).Caption"',undefined,{silent:true});return{name:C.trim(),version:a.trim()}}));const getMacOsInfo=()=>lt(void 0,void 0,void 0,(function*(){var a,C,q,re;const{stdout:ae}=yield Ar.getExecOutput("sw_vers",undefined,{silent:true});const Ue=(C=(a=ae.match(/ProductVersion:\s*(.+)/))===null||a===void 0?void 0:a[1])!==null&&C!==void 0?C:"";const lt=(re=(q=ae.match(/ProductName:\s*(.+)/))===null||q===void 0?void 0:q[1])!==null&&re!==void 0?re:"";return{name:lt,version:Ue}}));const getLinuxInfo=()=>lt(void 0,void 0,void 0,(function*(){const{stdout:a}=yield Ar.getExecOutput("lsb_release",["-i","-r","-s"],{silent:true});const[C,q]=a.trim().split("\n");return{name:C,version:q}}));C.platform=Wt.default.platform();C.arch=Wt.default.arch();C.isWindows=C.platform==="win32";C.isMacOS=C.platform==="darwin";C.isLinux=C.platform==="linux";function getDetails(){return lt(this,void 0,void 0,(function*(){return Object.assign(Object.assign({},yield C.isWindows?getWindowsInfo():C.isMacOS?getMacOsInfo():getLinuxInfo()),{platform:C.platform,arch:C.arch,isWindows:C.isWindows,isMacOS:C.isMacOS,isLinux:C.isLinux})}))}C.getDetails=getDetails},1847:function(a,C,q){var re=this&&this.__awaiter||function(a,C,q,re){function adopt(a){return a instanceof q?a:new q((function(C){C(a)}))}return new(q||(q=Promise))((function(q,ae){function fulfilled(a){try{step(re.next(a))}catch(a){ae(a)}}function rejected(a){try{step(re["throw"](a))}catch(a){ae(a)}}function step(a){a.done?q(a.value):adopt(a.value).then(fulfilled,rejected)}step((re=re.apply(a,C||[])).next())}))};Object.defineProperty(C,"__esModule",{value:true});C.summary=C.markdownSummary=C.SUMMARY_DOCS_URL=C.SUMMARY_ENV_VAR=void 0;const ae=q(857);const Ue=q(9896);const{access:lt,appendFile:Pt,writeFile:Wt}=Ue.promises;C.SUMMARY_ENV_VAR="GITHUB_STEP_SUMMARY";C.SUMMARY_DOCS_URL="https://docs.github.com/actions/using-workflows/workflow-commands-for-github-actions#adding-a-job-summary";class Summary{constructor(){this._buffer=""}filePath(){return re(this,void 0,void 0,(function*(){if(this._filePath){return this._filePath}const a=process.env[C.SUMMARY_ENV_VAR];if(!a){throw new Error(`Unable to find environment variable for $${C.SUMMARY_ENV_VAR}. Check if your runtime environment supports job summaries.`)}try{yield lt(a,Ue.constants.R_OK|Ue.constants.W_OK)}catch(C){throw new Error(`Unable to access summary file: '${a}'. Check if the file has correct read/write permissions.`)}this._filePath=a;return this._filePath}))}wrap(a,C,q={}){const re=Object.entries(q).map((([a,C])=>` ${a}="${C}"`)).join("");if(!C){return`<${a}${re}>`}return`<${a}${re}>${C}`}write(a){return re(this,void 0,void 0,(function*(){const C=!!(a===null||a===void 0?void 0:a.overwrite);const q=yield this.filePath();const re=C?Wt:Pt;yield re(q,this._buffer,{encoding:"utf8"});return this.emptyBuffer()}))}clear(){return re(this,void 0,void 0,(function*(){return this.emptyBuffer().write({overwrite:true})}))}stringify(){return this._buffer}isEmptyBuffer(){return this._buffer.length===0}emptyBuffer(){this._buffer="";return this}addRaw(a,C=false){this._buffer+=a;return C?this.addEOL():this}addEOL(){return this.addRaw(ae.EOL)}addCodeBlock(a,C){const q=Object.assign({},C&&{lang:C});const re=this.wrap("pre",this.wrap("code",a),q);return this.addRaw(re).addEOL()}addList(a,C=false){const q=C?"ol":"ul";const re=a.map((a=>this.wrap("li",a))).join("");const ae=this.wrap(q,re);return this.addRaw(ae).addEOL()}addTable(a){const C=a.map((a=>{const C=a.map((a=>{if(typeof a==="string"){return this.wrap("td",a)}const{header:C,data:q,colspan:re,rowspan:ae}=a;const Ue=C?"th":"td";const lt=Object.assign(Object.assign({},re&&{colspan:re}),ae&&{rowspan:ae});return this.wrap(Ue,q,lt)})).join("");return this.wrap("tr",C)})).join("");const q=this.wrap("table",C);return this.addRaw(q).addEOL()}addDetails(a,C){const q=this.wrap("details",this.wrap("summary",a)+C);return this.addRaw(q).addEOL()}addImage(a,C,q){const{width:re,height:ae}=q||{};const Ue=Object.assign(Object.assign({},re&&{width:re}),ae&&{height:ae});const lt=this.wrap("img",null,Object.assign({src:a,alt:C},Ue));return this.addRaw(lt).addEOL()}addHeading(a,C){const q=`h${C}`;const re=["h1","h2","h3","h4","h5","h6"].includes(q)?q:"h1";const ae=this.wrap(re,a);return this.addRaw(ae).addEOL()}addSeparator(){const a=this.wrap("hr",null);return this.addRaw(a).addEOL()}addBreak(){const a=this.wrap("br",null);return this.addRaw(a).addEOL()}addQuote(a,C){const q=Object.assign({},C&&{cite:C});const re=this.wrap("blockquote",a,q);return this.addRaw(re).addEOL()}addLink(a,C){const q=this.wrap("a",a,{href:C});return this.addRaw(q).addEOL()}}const Ar=new Summary;C.markdownSummary=Ar;C.summary=Ar},302:(a,C)=>{Object.defineProperty(C,"__esModule",{value:true});C.toCommandProperties=C.toCommandValue=void 0;function toCommandValue(a){if(a===null||a===undefined){return""}else if(typeof a==="string"||a instanceof String){return a}return JSON.stringify(a)}C.toCommandValue=toCommandValue;function toCommandProperties(a){if(!Object.keys(a).length){return{}}return{title:a.title,file:a.file,line:a.startLine,endLine:a.endLine,col:a.startColumn,endColumn:a.endColumn}}C.toCommandProperties=toCommandProperties},5236:function(a,C,q){var re=this&&this.__createBinding||(Object.create?function(a,C,q,re){if(re===undefined)re=q;Object.defineProperty(a,re,{enumerable:true,get:function(){return C[q]}})}:function(a,C,q,re){if(re===undefined)re=q;a[re]=C[q]});var ae=this&&this.__setModuleDefault||(Object.create?function(a,C){Object.defineProperty(a,"default",{enumerable:true,value:C})}:function(a,C){a["default"]=C});var Ue=this&&this.__importStar||function(a){if(a&&a.__esModule)return a;var C={};if(a!=null)for(var q in a)if(q!=="default"&&Object.hasOwnProperty.call(a,q))re(C,a,q);ae(C,a);return C};var lt=this&&this.__awaiter||function(a,C,q,re){function adopt(a){return a instanceof q?a:new q((function(C){C(a)}))}return new(q||(q=Promise))((function(q,ae){function fulfilled(a){try{step(re.next(a))}catch(a){ae(a)}}function rejected(a){try{step(re["throw"](a))}catch(a){ae(a)}}function step(a){a.done?q(a.value):adopt(a.value).then(fulfilled,rejected)}step((re=re.apply(a,C||[])).next())}))};Object.defineProperty(C,"__esModule",{value:true});C.getExecOutput=C.exec=void 0;const Pt=q(3193);const Wt=Ue(q(6665));function exec(a,C,q){return lt(this,void 0,void 0,(function*(){const re=Wt.argStringToArray(a);if(re.length===0){throw new Error(`Parameter 'commandLine' cannot be null or empty.`)}const ae=re[0];C=re.slice(1).concat(C||[]);const Ue=new Wt.ToolRunner(ae,C,q);return Ue.exec()}))}C.exec=exec;function getExecOutput(a,C,q){var re,ae;return lt(this,void 0,void 0,(function*(){let Ue="";let lt="";const Wt=new Pt.StringDecoder("utf8");const Ar=new Pt.StringDecoder("utf8");const Er=(re=q===null||q===void 0?void 0:q.listeners)===null||re===void 0?void 0:re.stdout;const Br=(ae=q===null||q===void 0?void 0:q.listeners)===null||ae===void 0?void 0:ae.stderr;const stdErrListener=a=>{lt+=Ar.write(a);if(Br){Br(a)}};const stdOutListener=a=>{Ue+=Wt.write(a);if(Er){Er(a)}};const Qr=Object.assign(Object.assign({},q===null||q===void 0?void 0:q.listeners),{stdout:stdOutListener,stderr:stdErrListener});const Ir=yield exec(a,C,Object.assign(Object.assign({},q),{listeners:Qr}));Ue+=Wt.end();lt+=Ar.end();return{exitCode:Ir,stdout:Ue,stderr:lt}}))}C.getExecOutput=getExecOutput},6665:function(a,C,q){var re=this&&this.__createBinding||(Object.create?function(a,C,q,re){if(re===undefined)re=q;Object.defineProperty(a,re,{enumerable:true,get:function(){return C[q]}})}:function(a,C,q,re){if(re===undefined)re=q;a[re]=C[q]});var ae=this&&this.__setModuleDefault||(Object.create?function(a,C){Object.defineProperty(a,"default",{enumerable:true,value:C})}:function(a,C){a["default"]=C});var Ue=this&&this.__importStar||function(a){if(a&&a.__esModule)return a;var C={};if(a!=null)for(var q in a)if(q!=="default"&&Object.hasOwnProperty.call(a,q))re(C,a,q);ae(C,a);return C};var lt=this&&this.__awaiter||function(a,C,q,re){function adopt(a){return a instanceof q?a:new q((function(C){C(a)}))}return new(q||(q=Promise))((function(q,ae){function fulfilled(a){try{step(re.next(a))}catch(a){ae(a)}}function rejected(a){try{step(re["throw"](a))}catch(a){ae(a)}}function step(a){a.done?q(a.value):adopt(a.value).then(fulfilled,rejected)}step((re=re.apply(a,C||[])).next())}))};Object.defineProperty(C,"__esModule",{value:true});C.argStringToArray=C.ToolRunner=void 0;const Pt=Ue(q(857));const Wt=Ue(q(4434));const Ar=Ue(q(5317));const Er=Ue(q(6928));const Br=Ue(q(4994));const Qr=Ue(q(5207));const Ir=q(3557);const Dr=process.platform==="win32";class ToolRunner extends Wt.EventEmitter{constructor(a,C,q){super();if(!a){throw new Error("Parameter 'toolPath' cannot be null or empty.")}this.toolPath=a;this.args=C||[];this.options=q||{}}_debug(a){if(this.options.listeners&&this.options.listeners.debug){this.options.listeners.debug(a)}}_getCommandString(a,C){const q=this._getSpawnFileName();const re=this._getSpawnArgs(a);let ae=C?"":"[command]";if(Dr){if(this._isCmdFile()){ae+=q;for(const a of re){ae+=` ${a}`}}else if(a.windowsVerbatimArguments){ae+=`"${q}"`;for(const a of re){ae+=` ${a}`}}else{ae+=this._windowsQuoteCmdArg(q);for(const a of re){ae+=` ${this._windowsQuoteCmdArg(a)}`}}}else{ae+=q;for(const a of re){ae+=` ${a}`}}return ae}_processLineBuffer(a,C,q){try{let re=C+a.toString();let ae=re.indexOf(Pt.EOL);while(ae>-1){const a=re.substring(0,ae);q(a);re=re.substring(ae+Pt.EOL.length);ae=re.indexOf(Pt.EOL)}return re}catch(a){this._debug(`error processing line. Failed with error ${a}`);return""}}_getSpawnFileName(){if(Dr){if(this._isCmdFile()){return process.env["COMSPEC"]||"cmd.exe"}}return this.toolPath}_getSpawnArgs(a){if(Dr){if(this._isCmdFile()){let C=`/D /S /C "${this._windowsQuoteCmdArg(this.toolPath)}`;for(const q of this.args){C+=" ";C+=a.windowsVerbatimArguments?q:this._windowsQuoteCmdArg(q)}C+='"';return[C]}}return this.args}_endsWith(a,C){return a.endsWith(C)}_isCmdFile(){const a=this.toolPath.toUpperCase();return this._endsWith(a,".CMD")||this._endsWith(a,".BAT")}_windowsQuoteCmdArg(a){if(!this._isCmdFile()){return this._uvQuoteCmdArg(a)}if(!a){return'""'}const C=[" ","\t","&","(",")","[","]","{","}","^","=",";","!","'","+",",","`","~","|","<",">",'"'];let q=false;for(const re of a){if(C.some((a=>a===re))){q=true;break}}if(!q){return a}let re='"';let ae=true;for(let C=a.length;C>0;C--){re+=a[C-1];if(ae&&a[C-1]==="\\"){re+="\\"}else if(a[C-1]==='"'){ae=true;re+='"'}else{ae=false}}re+='"';return re.split("").reverse().join("")}_uvQuoteCmdArg(a){if(!a){return'""'}if(!a.includes(" ")&&!a.includes("\t")&&!a.includes('"')){return a}if(!a.includes('"')&&!a.includes("\\")){return`"${a}"`}let C='"';let q=true;for(let re=a.length;re>0;re--){C+=a[re-1];if(q&&a[re-1]==="\\"){C+="\\"}else if(a[re-1]==='"'){q=true;C+="\\"}else{q=false}}C+='"';return C.split("").reverse().join("")}_cloneExecOptions(a){a=a||{};const C={cwd:a.cwd||process.cwd(),env:a.env||process.env,silent:a.silent||false,windowsVerbatimArguments:a.windowsVerbatimArguments||false,failOnStdErr:a.failOnStdErr||false,ignoreReturnCode:a.ignoreReturnCode||false,delay:a.delay||1e4};C.outStream=a.outStream||process.stdout;C.errStream=a.errStream||process.stderr;return C}_getSpawnOptions(a,C){a=a||{};const q={};q.cwd=a.cwd;q.env=a.env;q["windowsVerbatimArguments"]=a.windowsVerbatimArguments||this._isCmdFile();if(a.windowsVerbatimArguments){q.argv0=`"${C}"`}return q}exec(){return lt(this,void 0,void 0,(function*(){if(!Qr.isRooted(this.toolPath)&&(this.toolPath.includes("/")||Dr&&this.toolPath.includes("\\"))){this.toolPath=Er.resolve(process.cwd(),this.options.cwd||process.cwd(),this.toolPath)}this.toolPath=yield Br.which(this.toolPath,true);return new Promise(((a,C)=>lt(this,void 0,void 0,(function*(){this._debug(`exec tool: ${this.toolPath}`);this._debug("arguments:");for(const a of this.args){this._debug(` ${a}`)}const q=this._cloneExecOptions(this.options);if(!q.silent&&q.outStream){q.outStream.write(this._getCommandString(q)+Pt.EOL)}const re=new ExecState(q,this.toolPath);re.on("debug",(a=>{this._debug(a)}));if(this.options.cwd&&!(yield Qr.exists(this.options.cwd))){return C(new Error(`The cwd: ${this.options.cwd} does not exist!`))}const ae=this._getSpawnFileName();const Ue=Ar.spawn(ae,this._getSpawnArgs(q),this._getSpawnOptions(this.options,ae));let lt="";if(Ue.stdout){Ue.stdout.on("data",(a=>{if(this.options.listeners&&this.options.listeners.stdout){this.options.listeners.stdout(a)}if(!q.silent&&q.outStream){q.outStream.write(a)}lt=this._processLineBuffer(a,lt,(a=>{if(this.options.listeners&&this.options.listeners.stdline){this.options.listeners.stdline(a)}}))}))}let Wt="";if(Ue.stderr){Ue.stderr.on("data",(a=>{re.processStderr=true;if(this.options.listeners&&this.options.listeners.stderr){this.options.listeners.stderr(a)}if(!q.silent&&q.errStream&&q.outStream){const C=q.failOnStdErr?q.errStream:q.outStream;C.write(a)}Wt=this._processLineBuffer(a,Wt,(a=>{if(this.options.listeners&&this.options.listeners.errline){this.options.listeners.errline(a)}}))}))}Ue.on("error",(a=>{re.processError=a.message;re.processExited=true;re.processClosed=true;re.CheckComplete()}));Ue.on("exit",(a=>{re.processExitCode=a;re.processExited=true;this._debug(`Exit code ${a} received from tool '${this.toolPath}'`);re.CheckComplete()}));Ue.on("close",(a=>{re.processExitCode=a;re.processExited=true;re.processClosed=true;this._debug(`STDIO streams have closed for tool '${this.toolPath}'`);re.CheckComplete()}));re.on("done",((q,re)=>{if(lt.length>0){this.emit("stdline",lt)}if(Wt.length>0){this.emit("errline",Wt)}Ue.removeAllListeners();if(q){C(q)}else{a(re)}}));if(this.options.input){if(!Ue.stdin){throw new Error("child process missing stdin")}Ue.stdin.end(this.options.input)}}))))}))}}C.ToolRunner=ToolRunner;function argStringToArray(a){const C=[];let q=false;let re=false;let ae="";function append(a){if(re&&a!=='"'){ae+="\\"}ae+=a;re=false}for(let Ue=0;Ue0){C.push(ae);ae=""}continue}append(lt)}if(ae.length>0){C.push(ae.trim())}return C}C.argStringToArray=argStringToArray;class ExecState extends Wt.EventEmitter{constructor(a,C){super();this.processClosed=false;this.processError="";this.processExitCode=0;this.processExited=false;this.processStderr=false;this.delay=1e4;this.done=false;this.timeout=null;if(!C){throw new Error("toolPath must not be empty")}this.options=a;this.toolPath=C;if(a.delay){this.delay=a.delay}}CheckComplete(){if(this.done){return}if(this.processClosed){this._setResult()}else if(this.processExited){this.timeout=Ir.setTimeout(ExecState.HandleTimeout,this.delay,this)}}_debug(a){this.emit("debug",a)}_setResult(){let a;if(this.processExited){if(this.processError){a=new Error(`There was an error when attempting to execute the process '${this.toolPath}'. This may indicate the process failed to start. Error: ${this.processError}`)}else if(this.processExitCode!==0&&!this.options.ignoreReturnCode){a=new Error(`The process '${this.toolPath}' failed with exit code ${this.processExitCode}`)}else if(this.processStderr&&this.options.failOnStdErr){a=new Error(`The process '${this.toolPath}' failed because one or more lines were written to the STDERR stream`)}}if(this.timeout){clearTimeout(this.timeout);this.timeout=null}this.done=true;this.emit("done",a,this.processExitCode)}static HandleTimeout(a){if(a.done){return}if(!a.processClosed&&a.processExited){const C=`The STDIO streams did not close within ${a.delay/1e3} seconds of the exit event from process '${a.toolPath}'. This may indicate a child process inherited the STDIO streams and has not yet exited.`;a._debug(C)}a._setResult()}}},1648:(a,C,q)=>{Object.defineProperty(C,"__esModule",{value:true});C.Context=void 0;const re=q(9896);const ae=q(857);class Context{constructor(){var a,C,q;this.payload={};if(process.env.GITHUB_EVENT_PATH){if((0,re.existsSync)(process.env.GITHUB_EVENT_PATH)){this.payload=JSON.parse((0,re.readFileSync)(process.env.GITHUB_EVENT_PATH,{encoding:"utf8"}))}else{const a=process.env.GITHUB_EVENT_PATH;process.stdout.write(`GITHUB_EVENT_PATH ${a} does not exist${ae.EOL}`)}}this.eventName=process.env.GITHUB_EVENT_NAME;this.sha=process.env.GITHUB_SHA;this.ref=process.env.GITHUB_REF;this.workflow=process.env.GITHUB_WORKFLOW;this.action=process.env.GITHUB_ACTION;this.actor=process.env.GITHUB_ACTOR;this.job=process.env.GITHUB_JOB;this.runAttempt=parseInt(process.env.GITHUB_RUN_ATTEMPT,10);this.runNumber=parseInt(process.env.GITHUB_RUN_NUMBER,10);this.runId=parseInt(process.env.GITHUB_RUN_ID,10);this.apiUrl=(a=process.env.GITHUB_API_URL)!==null&&a!==void 0?a:`https://api.github.com`;this.serverUrl=(C=process.env.GITHUB_SERVER_URL)!==null&&C!==void 0?C:`https://github.com`;this.graphqlUrl=(q=process.env.GITHUB_GRAPHQL_URL)!==null&&q!==void 0?q:`https://api.github.com/graphql`}get issue(){const a=this.payload;return Object.assign(Object.assign({},this.repo),{number:(a.issue||a.pull_request||a).number})}get repo(){if(process.env.GITHUB_REPOSITORY){const[a,C]=process.env.GITHUB_REPOSITORY.split("/");return{owner:a,repo:C}}if(this.payload.repository){return{owner:this.payload.repository.owner.login,repo:this.payload.repository.name}}throw new Error("context.repo requires a GITHUB_REPOSITORY environment variable like 'owner/repo'")}}C.Context=Context},3228:function(a,C,q){var re=this&&this.__createBinding||(Object.create?function(a,C,q,re){if(re===undefined)re=q;var ae=Object.getOwnPropertyDescriptor(C,q);if(!ae||("get"in ae?!C.__esModule:ae.writable||ae.configurable)){ae={enumerable:true,get:function(){return C[q]}}}Object.defineProperty(a,re,ae)}:function(a,C,q,re){if(re===undefined)re=q;a[re]=C[q]});var ae=this&&this.__setModuleDefault||(Object.create?function(a,C){Object.defineProperty(a,"default",{enumerable:true,value:C})}:function(a,C){a["default"]=C});var Ue=this&&this.__importStar||function(a){if(a&&a.__esModule)return a;var C={};if(a!=null)for(var q in a)if(q!=="default"&&Object.prototype.hasOwnProperty.call(a,q))re(C,a,q);ae(C,a);return C};Object.defineProperty(C,"__esModule",{value:true});C.getOctokit=C.context=void 0;const lt=Ue(q(1648));const Pt=q(8006);C.context=new lt.Context;function getOctokit(a,C,...q){const re=Pt.GitHub.plugin(...q);return new re((0,Pt.getOctokitOptions)(a,C))}C.getOctokit=getOctokit},5156:function(a,C,q){var re=this&&this.__createBinding||(Object.create?function(a,C,q,re){if(re===undefined)re=q;var ae=Object.getOwnPropertyDescriptor(C,q);if(!ae||("get"in ae?!C.__esModule:ae.writable||ae.configurable)){ae={enumerable:true,get:function(){return C[q]}}}Object.defineProperty(a,re,ae)}:function(a,C,q,re){if(re===undefined)re=q;a[re]=C[q]});var ae=this&&this.__setModuleDefault||(Object.create?function(a,C){Object.defineProperty(a,"default",{enumerable:true,value:C})}:function(a,C){a["default"]=C});var Ue=this&&this.__importStar||function(a){if(a&&a.__esModule)return a;var C={};if(a!=null)for(var q in a)if(q!=="default"&&Object.prototype.hasOwnProperty.call(a,q))re(C,a,q);ae(C,a);return C};var lt=this&&this.__awaiter||function(a,C,q,re){function adopt(a){return a instanceof q?a:new q((function(C){C(a)}))}return new(q||(q=Promise))((function(q,ae){function fulfilled(a){try{step(re.next(a))}catch(a){ae(a)}}function rejected(a){try{step(re["throw"](a))}catch(a){ae(a)}}function step(a){a.done?q(a.value):adopt(a.value).then(fulfilled,rejected)}step((re=re.apply(a,C||[])).next())}))};Object.defineProperty(C,"__esModule",{value:true});C.getApiBaseUrl=C.getProxyFetch=C.getProxyAgentDispatcher=C.getProxyAgent=C.getAuthString=void 0;const Pt=Ue(q(4844));const Wt=q(6752);function getAuthString(a,C){if(!a&&!C.auth){throw new Error("Parameter token or opts.auth is required")}else if(a&&C.auth){throw new Error("Parameters token and opts.auth may not both be specified")}return typeof C.auth==="string"?C.auth:`token ${a}`}C.getAuthString=getAuthString;function getProxyAgent(a){const C=new Pt.HttpClient;return C.getAgent(a)}C.getProxyAgent=getProxyAgent;function getProxyAgentDispatcher(a){const C=new Pt.HttpClient;return C.getAgentDispatcher(a)}C.getProxyAgentDispatcher=getProxyAgentDispatcher;function getProxyFetch(a){const C=getProxyAgentDispatcher(a);const proxyFetch=(a,q)=>lt(this,void 0,void 0,(function*(){return(0,Wt.fetch)(a,Object.assign(Object.assign({},q),{dispatcher:C}))}));return proxyFetch}C.getProxyFetch=getProxyFetch;function getApiBaseUrl(){return process.env["GITHUB_API_URL"]||"https://api.github.com"}C.getApiBaseUrl=getApiBaseUrl},8006:function(a,C,q){var re=this&&this.__createBinding||(Object.create?function(a,C,q,re){if(re===undefined)re=q;var ae=Object.getOwnPropertyDescriptor(C,q);if(!ae||("get"in ae?!C.__esModule:ae.writable||ae.configurable)){ae={enumerable:true,get:function(){return C[q]}}}Object.defineProperty(a,re,ae)}:function(a,C,q,re){if(re===undefined)re=q;a[re]=C[q]});var ae=this&&this.__setModuleDefault||(Object.create?function(a,C){Object.defineProperty(a,"default",{enumerable:true,value:C})}:function(a,C){a["default"]=C});var Ue=this&&this.__importStar||function(a){if(a&&a.__esModule)return a;var C={};if(a!=null)for(var q in a)if(q!=="default"&&Object.prototype.hasOwnProperty.call(a,q))re(C,a,q);ae(C,a);return C};Object.defineProperty(C,"__esModule",{value:true});C.getOctokitOptions=C.GitHub=C.defaults=C.context=void 0;const lt=Ue(q(1648));const Pt=Ue(q(5156));const Wt=q(1897);const Ar=q(4935);const Er=q(8082);C.context=new lt.Context;const Br=Pt.getApiBaseUrl();C.defaults={baseUrl:Br,request:{agent:Pt.getProxyAgent(Br),fetch:Pt.getProxyFetch(Br)}};C.GitHub=Wt.Octokit.plugin(Ar.restEndpointMethods,Er.paginateRest).defaults(C.defaults);function getOctokitOptions(a,C){const q=Object.assign({},C||{});const re=Pt.getAuthString(a,q);if(re){q.auth=re}return q}C.getOctokitOptions=getOctokitOptions},4552:function(a,C){var q=this&&this.__awaiter||function(a,C,q,re){function adopt(a){return a instanceof q?a:new q((function(C){C(a)}))}return new(q||(q=Promise))((function(q,ae){function fulfilled(a){try{step(re.next(a))}catch(a){ae(a)}}function rejected(a){try{step(re["throw"](a))}catch(a){ae(a)}}function step(a){a.done?q(a.value):adopt(a.value).then(fulfilled,rejected)}step((re=re.apply(a,C||[])).next())}))};Object.defineProperty(C,"__esModule",{value:true});C.PersonalAccessTokenCredentialHandler=C.BearerCredentialHandler=C.BasicCredentialHandler=void 0;class BasicCredentialHandler{constructor(a,C){this.username=a;this.password=C}prepareRequest(a){if(!a.headers){throw Error("The request has no headers")}a.headers["Authorization"]=`Basic ${Buffer.from(`${this.username}:${this.password}`).toString("base64")}`}canHandleAuthentication(){return false}handleAuthentication(){return q(this,void 0,void 0,(function*(){throw new Error("not implemented")}))}}C.BasicCredentialHandler=BasicCredentialHandler;class BearerCredentialHandler{constructor(a){this.token=a}prepareRequest(a){if(!a.headers){throw Error("The request has no headers")}a.headers["Authorization"]=`Bearer ${this.token}`}canHandleAuthentication(){return false}handleAuthentication(){return q(this,void 0,void 0,(function*(){throw new Error("not implemented")}))}}C.BearerCredentialHandler=BearerCredentialHandler;class PersonalAccessTokenCredentialHandler{constructor(a){this.token=a}prepareRequest(a){if(!a.headers){throw Error("The request has no headers")}a.headers["Authorization"]=`Basic ${Buffer.from(`PAT:${this.token}`).toString("base64")}`}canHandleAuthentication(){return false}handleAuthentication(){return q(this,void 0,void 0,(function*(){throw new Error("not implemented")}))}}C.PersonalAccessTokenCredentialHandler=PersonalAccessTokenCredentialHandler},4844:function(a,C,q){var re=this&&this.__createBinding||(Object.create?function(a,C,q,re){if(re===undefined)re=q;var ae=Object.getOwnPropertyDescriptor(C,q);if(!ae||("get"in ae?!C.__esModule:ae.writable||ae.configurable)){ae={enumerable:true,get:function(){return C[q]}}}Object.defineProperty(a,re,ae)}:function(a,C,q,re){if(re===undefined)re=q;a[re]=C[q]});var ae=this&&this.__setModuleDefault||(Object.create?function(a,C){Object.defineProperty(a,"default",{enumerable:true,value:C})}:function(a,C){a["default"]=C});var Ue=this&&this.__importStar||function(a){if(a&&a.__esModule)return a;var C={};if(a!=null)for(var q in a)if(q!=="default"&&Object.prototype.hasOwnProperty.call(a,q))re(C,a,q);ae(C,a);return C};var lt=this&&this.__awaiter||function(a,C,q,re){function adopt(a){return a instanceof q?a:new q((function(C){C(a)}))}return new(q||(q=Promise))((function(q,ae){function fulfilled(a){try{step(re.next(a))}catch(a){ae(a)}}function rejected(a){try{step(re["throw"](a))}catch(a){ae(a)}}function step(a){a.done?q(a.value):adopt(a.value).then(fulfilled,rejected)}step((re=re.apply(a,C||[])).next())}))};Object.defineProperty(C,"__esModule",{value:true});C.HttpClient=C.isHttps=C.HttpClientResponse=C.HttpClientError=C.getProxyUrl=C.MediaTypes=C.Headers=C.HttpCodes=void 0;const Pt=Ue(q(8611));const Wt=Ue(q(5692));const Ar=Ue(q(4988));const Er=Ue(q(770));const Br=q(6752);var Qr;(function(a){a[a["OK"]=200]="OK";a[a["MultipleChoices"]=300]="MultipleChoices";a[a["MovedPermanently"]=301]="MovedPermanently";a[a["ResourceMoved"]=302]="ResourceMoved";a[a["SeeOther"]=303]="SeeOther";a[a["NotModified"]=304]="NotModified";a[a["UseProxy"]=305]="UseProxy";a[a["SwitchProxy"]=306]="SwitchProxy";a[a["TemporaryRedirect"]=307]="TemporaryRedirect";a[a["PermanentRedirect"]=308]="PermanentRedirect";a[a["BadRequest"]=400]="BadRequest";a[a["Unauthorized"]=401]="Unauthorized";a[a["PaymentRequired"]=402]="PaymentRequired";a[a["Forbidden"]=403]="Forbidden";a[a["NotFound"]=404]="NotFound";a[a["MethodNotAllowed"]=405]="MethodNotAllowed";a[a["NotAcceptable"]=406]="NotAcceptable";a[a["ProxyAuthenticationRequired"]=407]="ProxyAuthenticationRequired";a[a["RequestTimeout"]=408]="RequestTimeout";a[a["Conflict"]=409]="Conflict";a[a["Gone"]=410]="Gone";a[a["TooManyRequests"]=429]="TooManyRequests";a[a["InternalServerError"]=500]="InternalServerError";a[a["NotImplemented"]=501]="NotImplemented";a[a["BadGateway"]=502]="BadGateway";a[a["ServiceUnavailable"]=503]="ServiceUnavailable";a[a["GatewayTimeout"]=504]="GatewayTimeout"})(Qr||(C.HttpCodes=Qr={}));var Ir;(function(a){a["Accept"]="accept";a["ContentType"]="content-type"})(Ir||(C.Headers=Ir={}));var Dr;(function(a){a["ApplicationJson"]="application/json"})(Dr||(C.MediaTypes=Dr={}));function getProxyUrl(a){const C=Ar.getProxyUrl(new URL(a));return C?C.href:""}C.getProxyUrl=getProxyUrl;const kr=[Qr.MovedPermanently,Qr.ResourceMoved,Qr.SeeOther,Qr.TemporaryRedirect,Qr.PermanentRedirect];const Fr=[Qr.BadGateway,Qr.ServiceUnavailable,Qr.GatewayTimeout];const Nr=["OPTIONS","GET","DELETE","HEAD"];const Ur=10;const Lr=5;class HttpClientError extends Error{constructor(a,C){super(a);this.name="HttpClientError";this.statusCode=C;Object.setPrototypeOf(this,HttpClientError.prototype)}}C.HttpClientError=HttpClientError;class HttpClientResponse{constructor(a){this.message=a}readBody(){return lt(this,void 0,void 0,(function*(){return new Promise((a=>lt(this,void 0,void 0,(function*(){let C=Buffer.alloc(0);this.message.on("data",(a=>{C=Buffer.concat([C,a])}));this.message.on("end",(()=>{a(C.toString())}))}))))}))}readBodyBuffer(){return lt(this,void 0,void 0,(function*(){return new Promise((a=>lt(this,void 0,void 0,(function*(){const C=[];this.message.on("data",(a=>{C.push(a)}));this.message.on("end",(()=>{a(Buffer.concat(C))}))}))))}))}}C.HttpClientResponse=HttpClientResponse;function isHttps(a){const C=new URL(a);return C.protocol==="https:"}C.isHttps=isHttps;class HttpClient{constructor(a,C,q){this._ignoreSslError=false;this._allowRedirects=true;this._allowRedirectDowngrade=false;this._maxRedirects=50;this._allowRetries=false;this._maxRetries=1;this._keepAlive=false;this._disposed=false;this.userAgent=a;this.handlers=C||[];this.requestOptions=q;if(q){if(q.ignoreSslError!=null){this._ignoreSslError=q.ignoreSslError}this._socketTimeout=q.socketTimeout;if(q.allowRedirects!=null){this._allowRedirects=q.allowRedirects}if(q.allowRedirectDowngrade!=null){this._allowRedirectDowngrade=q.allowRedirectDowngrade}if(q.maxRedirects!=null){this._maxRedirects=Math.max(q.maxRedirects,0)}if(q.keepAlive!=null){this._keepAlive=q.keepAlive}if(q.allowRetries!=null){this._allowRetries=q.allowRetries}if(q.maxRetries!=null){this._maxRetries=q.maxRetries}}}options(a,C){return lt(this,void 0,void 0,(function*(){return this.request("OPTIONS",a,null,C||{})}))}get(a,C){return lt(this,void 0,void 0,(function*(){return this.request("GET",a,null,C||{})}))}del(a,C){return lt(this,void 0,void 0,(function*(){return this.request("DELETE",a,null,C||{})}))}post(a,C,q){return lt(this,void 0,void 0,(function*(){return this.request("POST",a,C,q||{})}))}patch(a,C,q){return lt(this,void 0,void 0,(function*(){return this.request("PATCH",a,C,q||{})}))}put(a,C,q){return lt(this,void 0,void 0,(function*(){return this.request("PUT",a,C,q||{})}))}head(a,C){return lt(this,void 0,void 0,(function*(){return this.request("HEAD",a,null,C||{})}))}sendStream(a,C,q,re){return lt(this,void 0,void 0,(function*(){return this.request(a,C,q,re)}))}getJson(a,C={}){return lt(this,void 0,void 0,(function*(){C[Ir.Accept]=this._getExistingOrDefaultHeader(C,Ir.Accept,Dr.ApplicationJson);const q=yield this.get(a,C);return this._processResponse(q,this.requestOptions)}))}postJson(a,C,q={}){return lt(this,void 0,void 0,(function*(){const re=JSON.stringify(C,null,2);q[Ir.Accept]=this._getExistingOrDefaultHeader(q,Ir.Accept,Dr.ApplicationJson);q[Ir.ContentType]=this._getExistingOrDefaultHeader(q,Ir.ContentType,Dr.ApplicationJson);const ae=yield this.post(a,re,q);return this._processResponse(ae,this.requestOptions)}))}putJson(a,C,q={}){return lt(this,void 0,void 0,(function*(){const re=JSON.stringify(C,null,2);q[Ir.Accept]=this._getExistingOrDefaultHeader(q,Ir.Accept,Dr.ApplicationJson);q[Ir.ContentType]=this._getExistingOrDefaultHeader(q,Ir.ContentType,Dr.ApplicationJson);const ae=yield this.put(a,re,q);return this._processResponse(ae,this.requestOptions)}))}patchJson(a,C,q={}){return lt(this,void 0,void 0,(function*(){const re=JSON.stringify(C,null,2);q[Ir.Accept]=this._getExistingOrDefaultHeader(q,Ir.Accept,Dr.ApplicationJson);q[Ir.ContentType]=this._getExistingOrDefaultHeader(q,Ir.ContentType,Dr.ApplicationJson);const ae=yield this.patch(a,re,q);return this._processResponse(ae,this.requestOptions)}))}request(a,C,q,re){return lt(this,void 0,void 0,(function*(){if(this._disposed){throw new Error("Client has already been disposed.")}const ae=new URL(C);let Ue=this._prepareRequest(a,ae,re);const lt=this._allowRetries&&Nr.includes(a)?this._maxRetries+1:1;let Pt=0;let Wt;do{Wt=yield this.requestRaw(Ue,q);if(Wt&&Wt.message&&Wt.message.statusCode===Qr.Unauthorized){let a;for(const C of this.handlers){if(C.canHandleAuthentication(Wt)){a=C;break}}if(a){return a.handleAuthentication(this,Ue,q)}else{return Wt}}let C=this._maxRedirects;while(Wt.message.statusCode&&kr.includes(Wt.message.statusCode)&&this._allowRedirects&&C>0){const lt=Wt.message.headers["location"];if(!lt){break}const Pt=new URL(lt);if(ae.protocol==="https:"&&ae.protocol!==Pt.protocol&&!this._allowRedirectDowngrade){throw new Error("Redirect from HTTPS to HTTP protocol. This downgrade is not allowed for security reasons. If you want to allow this behavior, set the allowRedirectDowngrade option to true.")}yield Wt.readBody();if(Pt.hostname!==ae.hostname){for(const a in re){if(a.toLowerCase()==="authorization"){delete re[a]}}}Ue=this._prepareRequest(a,Pt,re);Wt=yield this.requestRaw(Ue,q);C--}if(!Wt.message.statusCode||!Fr.includes(Wt.message.statusCode)){return Wt}Pt+=1;if(Pt{function callbackForResult(a,C){if(a){re(a)}else if(!C){re(new Error("Unknown error"))}else{q(C)}}this.requestRawWithCallback(a,C,callbackForResult)}))}))}requestRawWithCallback(a,C,q){if(typeof C==="string"){if(!a.options.headers){a.options.headers={}}a.options.headers["Content-Length"]=Buffer.byteLength(C,"utf8")}let re=false;function handleResult(a,C){if(!re){re=true;q(a,C)}}const ae=a.httpModule.request(a.options,(a=>{const C=new HttpClientResponse(a);handleResult(undefined,C)}));let Ue;ae.on("socket",(a=>{Ue=a}));ae.setTimeout(this._socketTimeout||3*6e4,(()=>{if(Ue){Ue.end()}handleResult(new Error(`Request timeout: ${a.options.path}`))}));ae.on("error",(function(a){handleResult(a)}));if(C&&typeof C==="string"){ae.write(C,"utf8")}if(C&&typeof C!=="string"){C.on("close",(function(){ae.end()}));C.pipe(ae)}else{ae.end()}}getAgent(a){const C=new URL(a);return this._getAgent(C)}getAgentDispatcher(a){const C=new URL(a);const q=Ar.getProxyUrl(C);const re=q&&q.hostname;if(!re){return}return this._getProxyAgentDispatcher(C,q)}_prepareRequest(a,C,q){const re={};re.parsedUrl=C;const ae=re.parsedUrl.protocol==="https:";re.httpModule=ae?Wt:Pt;const Ue=ae?443:80;re.options={};re.options.host=re.parsedUrl.hostname;re.options.port=re.parsedUrl.port?parseInt(re.parsedUrl.port):Ue;re.options.path=(re.parsedUrl.pathname||"")+(re.parsedUrl.search||"");re.options.method=a;re.options.headers=this._mergeHeaders(q);if(this.userAgent!=null){re.options.headers["user-agent"]=this.userAgent}re.options.agent=this._getAgent(re.parsedUrl);if(this.handlers){for(const a of this.handlers){a.prepareRequest(re.options)}}return re}_mergeHeaders(a){if(this.requestOptions&&this.requestOptions.headers){return Object.assign({},lowercaseKeys(this.requestOptions.headers),lowercaseKeys(a||{}))}return lowercaseKeys(a||{})}_getExistingOrDefaultHeader(a,C,q){let re;if(this.requestOptions&&this.requestOptions.headers){re=lowercaseKeys(this.requestOptions.headers)[C]}return a[C]||re||q}_getAgent(a){let C;const q=Ar.getProxyUrl(a);const re=q&&q.hostname;if(this._keepAlive&&re){C=this._proxyAgent}if(!re){C=this._agent}if(C){return C}const ae=a.protocol==="https:";let Ue=100;if(this.requestOptions){Ue=this.requestOptions.maxSockets||Pt.globalAgent.maxSockets}if(q&&q.hostname){const a={maxSockets:Ue,keepAlive:this._keepAlive,proxy:Object.assign(Object.assign({},(q.username||q.password)&&{proxyAuth:`${q.username}:${q.password}`}),{host:q.hostname,port:q.port})};let re;const lt=q.protocol==="https:";if(ae){re=lt?Er.httpsOverHttps:Er.httpsOverHttp}else{re=lt?Er.httpOverHttps:Er.httpOverHttp}C=re(a);this._proxyAgent=C}if(!C){const a={keepAlive:this._keepAlive,maxSockets:Ue};C=ae?new Wt.Agent(a):new Pt.Agent(a);this._agent=C}if(ae&&this._ignoreSslError){C.options=Object.assign(C.options||{},{rejectUnauthorized:false})}return C}_getProxyAgentDispatcher(a,C){let q;if(this._keepAlive){q=this._proxyAgentDispatcher}if(q){return q}const re=a.protocol==="https:";q=new Br.ProxyAgent(Object.assign({uri:C.href,pipelining:!this._keepAlive?0:1},(C.username||C.password)&&{token:`Basic ${Buffer.from(`${C.username}:${C.password}`).toString("base64")}`}));this._proxyAgentDispatcher=q;if(re&&this._ignoreSslError){q.options=Object.assign(q.options.requestTls||{},{rejectUnauthorized:false})}return q}_performExponentialBackoff(a){return lt(this,void 0,void 0,(function*(){a=Math.min(Ur,a);const C=Lr*Math.pow(2,a);return new Promise((a=>setTimeout((()=>a()),C)))}))}_processResponse(a,C){return lt(this,void 0,void 0,(function*(){return new Promise(((q,re)=>lt(this,void 0,void 0,(function*(){const ae=a.message.statusCode||0;const Ue={statusCode:ae,result:null,headers:{}};if(ae===Qr.NotFound){q(Ue)}function dateTimeDeserializer(a,C){if(typeof C==="string"){const a=new Date(C);if(!isNaN(a.valueOf())){return a}}return C}let lt;let Pt;try{Pt=yield a.readBody();if(Pt&&Pt.length>0){if(C&&C.deserializeDates){lt=JSON.parse(Pt,dateTimeDeserializer)}else{lt=JSON.parse(Pt)}Ue.result=lt}Ue.headers=a.message.headers}catch(a){}if(ae>299){let a;if(lt&<.message){a=lt.message}else if(Pt&&Pt.length>0){a=Pt}else{a=`Failed request: (${ae})`}const C=new HttpClientError(a,ae);C.result=Ue.result;re(C)}else{q(Ue)}}))))}))}}C.HttpClient=HttpClient;const lowercaseKeys=a=>Object.keys(a).reduce(((C,q)=>(C[q.toLowerCase()]=a[q],C)),{})},4988:(a,C)=>{Object.defineProperty(C,"__esModule",{value:true});C.checkBypass=C.getProxyUrl=void 0;function getProxyUrl(a){const C=a.protocol==="https:";if(checkBypass(a)){return undefined}const q=(()=>{if(C){return process.env["https_proxy"]||process.env["HTTPS_PROXY"]}else{return process.env["http_proxy"]||process.env["HTTP_PROXY"]}})();if(q){try{return new DecodedURL(q)}catch(a){if(!q.startsWith("http://")&&!q.startsWith("https://"))return new DecodedURL(`http://${q}`)}}else{return undefined}}C.getProxyUrl=getProxyUrl;function checkBypass(a){if(!a.hostname){return false}const C=a.hostname;if(isLoopbackAddress(C)){return true}const q=process.env["no_proxy"]||process.env["NO_PROXY"]||"";if(!q){return false}let re;if(a.port){re=Number(a.port)}else if(a.protocol==="http:"){re=80}else if(a.protocol==="https:"){re=443}const ae=[a.hostname.toUpperCase()];if(typeof re==="number"){ae.push(`${ae[0]}:${re}`)}for(const a of q.split(",").map((a=>a.trim().toUpperCase())).filter((a=>a))){if(a==="*"||ae.some((C=>C===a||C.endsWith(`.${a}`)||a.startsWith(".")&&C.endsWith(`${a}`)))){return true}}return false}C.checkBypass=checkBypass;function isLoopbackAddress(a){const C=a.toLowerCase();return C==="localhost"||C.startsWith("127.")||C.startsWith("[::1]")||C.startsWith("[0:0:0:0:0:0:0:1]")}class DecodedURL extends URL{constructor(a,C){super(a,C);this._decodedUsername=decodeURIComponent(super.username);this._decodedPassword=decodeURIComponent(super.password)}get username(){return this._decodedUsername}get password(){return this._decodedPassword}}},5207:function(a,C,q){var re=this&&this.__createBinding||(Object.create?function(a,C,q,re){if(re===undefined)re=q;Object.defineProperty(a,re,{enumerable:true,get:function(){return C[q]}})}:function(a,C,q,re){if(re===undefined)re=q;a[re]=C[q]});var ae=this&&this.__setModuleDefault||(Object.create?function(a,C){Object.defineProperty(a,"default",{enumerable:true,value:C})}:function(a,C){a["default"]=C});var Ue=this&&this.__importStar||function(a){if(a&&a.__esModule)return a;var C={};if(a!=null)for(var q in a)if(q!=="default"&&Object.hasOwnProperty.call(a,q))re(C,a,q);ae(C,a);return C};var lt=this&&this.__awaiter||function(a,C,q,re){function adopt(a){return a instanceof q?a:new q((function(C){C(a)}))}return new(q||(q=Promise))((function(q,ae){function fulfilled(a){try{step(re.next(a))}catch(a){ae(a)}}function rejected(a){try{step(re["throw"](a))}catch(a){ae(a)}}function step(a){a.done?q(a.value):adopt(a.value).then(fulfilled,rejected)}step((re=re.apply(a,C||[])).next())}))};var Pt;Object.defineProperty(C,"__esModule",{value:true});C.getCmdPath=C.tryGetExecutablePath=C.isRooted=C.isDirectory=C.exists=C.READONLY=C.UV_FS_O_EXLOCK=C.IS_WINDOWS=C.unlink=C.symlink=C.stat=C.rmdir=C.rm=C.rename=C.readlink=C.readdir=C.open=C.mkdir=C.lstat=C.copyFile=C.chmod=void 0;const Wt=Ue(q(9896));const Ar=Ue(q(6928));Pt=Wt.promises,C.chmod=Pt.chmod,C.copyFile=Pt.copyFile,C.lstat=Pt.lstat,C.mkdir=Pt.mkdir,C.open=Pt.open,C.readdir=Pt.readdir,C.readlink=Pt.readlink,C.rename=Pt.rename,C.rm=Pt.rm,C.rmdir=Pt.rmdir,C.stat=Pt.stat,C.symlink=Pt.symlink,C.unlink=Pt.unlink;C.IS_WINDOWS=process.platform==="win32";C.UV_FS_O_EXLOCK=268435456;C.READONLY=Wt.constants.O_RDONLY;function exists(a){return lt(this,void 0,void 0,(function*(){try{yield C.stat(a)}catch(a){if(a.code==="ENOENT"){return false}throw a}return true}))}C.exists=exists;function isDirectory(a,q=false){return lt(this,void 0,void 0,(function*(){const re=q?yield C.stat(a):yield C.lstat(a);return re.isDirectory()}))}C.isDirectory=isDirectory;function isRooted(a){a=normalizeSeparators(a);if(!a){throw new Error('isRooted() parameter "p" cannot be empty')}if(C.IS_WINDOWS){return a.startsWith("\\")||/^[A-Z]:/i.test(a)}return a.startsWith("/")}C.isRooted=isRooted;function tryGetExecutablePath(a,q){return lt(this,void 0,void 0,(function*(){let re=undefined;try{re=yield C.stat(a)}catch(C){if(C.code!=="ENOENT"){console.log(`Unexpected error attempting to determine if executable file exists '${a}': ${C}`)}}if(re&&re.isFile()){if(C.IS_WINDOWS){const C=Ar.extname(a).toUpperCase();if(q.some((a=>a.toUpperCase()===C))){return a}}else{if(isUnixExecutable(re)){return a}}}const ae=a;for(const Ue of q){a=ae+Ue;re=undefined;try{re=yield C.stat(a)}catch(C){if(C.code!=="ENOENT"){console.log(`Unexpected error attempting to determine if executable file exists '${a}': ${C}`)}}if(re&&re.isFile()){if(C.IS_WINDOWS){try{const q=Ar.dirname(a);const re=Ar.basename(a).toUpperCase();for(const ae of yield C.readdir(q)){if(re===ae.toUpperCase()){a=Ar.join(q,ae);break}}}catch(C){console.log(`Unexpected error attempting to determine the actual case of the file '${a}': ${C}`)}return a}else{if(isUnixExecutable(re)){return a}}}}return""}))}C.tryGetExecutablePath=tryGetExecutablePath;function normalizeSeparators(a){a=a||"";if(C.IS_WINDOWS){a=a.replace(/\//g,"\\");return a.replace(/\\\\+/g,"\\")}return a.replace(/\/\/+/g,"/")}function isUnixExecutable(a){return(a.mode&1)>0||(a.mode&8)>0&&a.gid===process.getgid()||(a.mode&64)>0&&a.uid===process.getuid()}function getCmdPath(){var a;return(a=process.env["COMSPEC"])!==null&&a!==void 0?a:`cmd.exe`}C.getCmdPath=getCmdPath},4994:function(a,C,q){var re=this&&this.__createBinding||(Object.create?function(a,C,q,re){if(re===undefined)re=q;Object.defineProperty(a,re,{enumerable:true,get:function(){return C[q]}})}:function(a,C,q,re){if(re===undefined)re=q;a[re]=C[q]});var ae=this&&this.__setModuleDefault||(Object.create?function(a,C){Object.defineProperty(a,"default",{enumerable:true,value:C})}:function(a,C){a["default"]=C});var Ue=this&&this.__importStar||function(a){if(a&&a.__esModule)return a;var C={};if(a!=null)for(var q in a)if(q!=="default"&&Object.hasOwnProperty.call(a,q))re(C,a,q);ae(C,a);return C};var lt=this&&this.__awaiter||function(a,C,q,re){function adopt(a){return a instanceof q?a:new q((function(C){C(a)}))}return new(q||(q=Promise))((function(q,ae){function fulfilled(a){try{step(re.next(a))}catch(a){ae(a)}}function rejected(a){try{step(re["throw"](a))}catch(a){ae(a)}}function step(a){a.done?q(a.value):adopt(a.value).then(fulfilled,rejected)}step((re=re.apply(a,C||[])).next())}))};Object.defineProperty(C,"__esModule",{value:true});C.findInPath=C.which=C.mkdirP=C.rmRF=C.mv=C.cp=void 0;const Pt=q(2613);const Wt=Ue(q(6928));const Ar=Ue(q(5207));function cp(a,C,q={}){return lt(this,void 0,void 0,(function*(){const{force:re,recursive:ae,copySourceDirectory:Ue}=readCopyOptions(q);const lt=(yield Ar.exists(C))?yield Ar.stat(C):null;if(lt&<.isFile()&&!re){return}const Pt=lt&<.isDirectory()&&Ue?Wt.join(C,Wt.basename(a)):C;if(!(yield Ar.exists(a))){throw new Error(`no such file or directory: ${a}`)}const Er=yield Ar.stat(a);if(Er.isDirectory()){if(!ae){throw new Error(`Failed to copy. ${a} is a directory, but tried to copy without recursive flag.`)}else{yield cpDirRecursive(a,Pt,0,re)}}else{if(Wt.relative(a,Pt)===""){throw new Error(`'${Pt}' and '${a}' are the same file`)}yield copyFile(a,Pt,re)}}))}C.cp=cp;function mv(a,C,q={}){return lt(this,void 0,void 0,(function*(){if(yield Ar.exists(C)){let re=true;if(yield Ar.isDirectory(C)){C=Wt.join(C,Wt.basename(a));re=yield Ar.exists(C)}if(re){if(q.force==null||q.force){yield rmRF(C)}else{throw new Error("Destination already exists")}}}yield mkdirP(Wt.dirname(C));yield Ar.rename(a,C)}))}C.mv=mv;function rmRF(a){return lt(this,void 0,void 0,(function*(){if(Ar.IS_WINDOWS){if(/[*"<>|]/.test(a)){throw new Error('File path must not contain `*`, `"`, `<`, `>` or `|` on Windows')}}try{yield Ar.rm(a,{force:true,maxRetries:3,recursive:true,retryDelay:300})}catch(a){throw new Error(`File was unable to be removed ${a}`)}}))}C.rmRF=rmRF;function mkdirP(a){return lt(this,void 0,void 0,(function*(){Pt.ok(a,"a path argument must be provided");yield Ar.mkdir(a,{recursive:true})}))}C.mkdirP=mkdirP;function which(a,C){return lt(this,void 0,void 0,(function*(){if(!a){throw new Error("parameter 'tool' is required")}if(C){const C=yield which(a,false);if(!C){if(Ar.IS_WINDOWS){throw new Error(`Unable to locate executable file: ${a}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also verify the file has a valid extension for an executable file.`)}else{throw new Error(`Unable to locate executable file: ${a}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also check the file mode to verify the file is executable.`)}}return C}const q=yield findInPath(a);if(q&&q.length>0){return q[0]}return""}))}C.which=which;function findInPath(a){return lt(this,void 0,void 0,(function*(){if(!a){throw new Error("parameter 'tool' is required")}const C=[];if(Ar.IS_WINDOWS&&process.env["PATHEXT"]){for(const a of process.env["PATHEXT"].split(Wt.delimiter)){if(a){C.push(a)}}}if(Ar.isRooted(a)){const q=yield Ar.tryGetExecutablePath(a,C);if(q){return[q]}return[]}if(a.includes(Wt.sep)){return[]}const q=[];if(process.env.PATH){for(const a of process.env.PATH.split(Wt.delimiter)){if(a){q.push(a)}}}const re=[];for(const ae of q){const q=yield Ar.tryGetExecutablePath(Wt.join(ae,a),C);if(q){re.push(q)}}return re}))}C.findInPath=findInPath;function readCopyOptions(a){const C=a.force==null?true:a.force;const q=Boolean(a.recursive);const re=a.copySourceDirectory==null?true:Boolean(a.copySourceDirectory);return{force:C,recursive:q,copySourceDirectory:re}}function cpDirRecursive(a,C,q,re){return lt(this,void 0,void 0,(function*(){if(q>=255)return;q++;yield mkdirP(C);const ae=yield Ar.readdir(a);for(const Ue of ae){const ae=`${a}/${Ue}`;const lt=`${C}/${Ue}`;const Pt=yield Ar.lstat(ae);if(Pt.isDirectory()){yield cpDirRecursive(ae,lt,q,re)}else{yield copyFile(ae,lt,re)}}yield Ar.chmod(C,(yield Ar.stat(a)).mode)}))}function copyFile(a,C,q){return lt(this,void 0,void 0,(function*(){if((yield Ar.lstat(a)).isSymbolicLink()){try{yield Ar.lstat(C);yield Ar.unlink(C)}catch(a){if(a.code==="EPERM"){yield Ar.chmod(C,"0666");yield Ar.unlink(C)}}const q=yield Ar.readlink(a);yield Ar.symlink(q,C,Ar.IS_WINDOWS?"junction":null)}else if(!(yield Ar.exists(C))||q){yield Ar.copyFile(a,C)}}))}},7864:a=>{var C=Object.defineProperty;var q=Object.getOwnPropertyDescriptor;var re=Object.getOwnPropertyNames;var ae=Object.prototype.hasOwnProperty;var __export=(a,q)=>{for(var re in q)C(a,re,{get:q[re],enumerable:true})};var __copyProps=(a,Ue,lt,Pt)=>{if(Ue&&typeof Ue==="object"||typeof Ue==="function"){for(let Wt of re(Ue))if(!ae.call(a,Wt)&&Wt!==lt)C(a,Wt,{get:()=>Ue[Wt],enumerable:!(Pt=q(Ue,Wt))||Pt.enumerable})}return a};var __toCommonJS=a=>__copyProps(C({},"__esModule",{value:true}),a);var Ue={};__export(Ue,{createTokenAuth:()=>Ar});a.exports=__toCommonJS(Ue);var lt=/^v1\./;var Pt=/^ghs_/;var Wt=/^ghu_/;async function auth(a){const C=a.split(/\./).length===3;const q=lt.test(a)||Pt.test(a);const re=Wt.test(a);const ae=C?"app":q?"installation":re?"user-to-server":"oauth";return{type:"token",token:a,tokenType:ae}}function withAuthorizationPrefix(a){if(a.split(/\./).length===3){return`bearer ${a}`}return`token ${a}`}async function hook(a,C,q,re){const ae=C.endpoint.merge(q,re);ae.headers.authorization=withAuthorizationPrefix(a);return C(ae)}var Ar=function createTokenAuth2(a){if(!a){throw new Error("[@octokit/auth-token] No token passed to createTokenAuth")}if(typeof a!=="string"){throw new Error("[@octokit/auth-token] Token passed to createTokenAuth is not a string")}a=a.replace(/^(token|bearer) +/i,"");return Object.assign(auth.bind(null,a),{hook:hook.bind(null,a)})};0&&0},1897:(a,C,q)=>{var re=Object.defineProperty;var ae=Object.getOwnPropertyDescriptor;var Ue=Object.getOwnPropertyNames;var lt=Object.prototype.hasOwnProperty;var __export=(a,C)=>{for(var q in C)re(a,q,{get:C[q],enumerable:true})};var __copyProps=(a,C,q,Pt)=>{if(C&&typeof C==="object"||typeof C==="function"){for(let Wt of Ue(C))if(!lt.call(a,Wt)&&Wt!==q)re(a,Wt,{get:()=>C[Wt],enumerable:!(Pt=ae(C,Wt))||Pt.enumerable})}return a};var __toCommonJS=a=>__copyProps(re({},"__esModule",{value:true}),a);var Pt={};__export(Pt,{Octokit:()=>Nr});a.exports=__toCommonJS(Pt);var Wt=q(3843);var Ar=q(2732);var Er=q(8636);var Br=q(7);var Qr=q(7864);var Ir="5.2.2";var noop=()=>{};var Dr=console.warn.bind(console);var kr=console.error.bind(console);function createLogger(a={}){if(typeof a.debug!=="function"){a.debug=noop}if(typeof a.info!=="function"){a.info=noop}if(typeof a.warn!=="function"){a.warn=Dr}if(typeof a.error!=="function"){a.error=kr}return a}var Fr=`octokit-core.js/${Ir} ${(0,Wt.getUserAgent)()}`;var Nr=class{static{this.VERSION=Ir}static defaults(a){const C=class extends(this){constructor(...C){const q=C[0]||{};if(typeof a==="function"){super(a(q));return}super(Object.assign({},a,q,q.userAgent&&a.userAgent?{userAgent:`${q.userAgent} ${a.userAgent}`}:null))}};return C}static{this.plugins=[]}static plugin(...a){const C=this.plugins;const q=class extends(this){static{this.plugins=C.concat(a.filter((a=>!C.includes(a))))}};return q}constructor(a={}){const C=new Ar.Collection;const q={baseUrl:Er.request.endpoint.DEFAULTS.baseUrl,headers:{},request:Object.assign({},a.request,{hook:C.bind(null,"request")}),mediaType:{previews:[],format:""}};q.headers["user-agent"]=a.userAgent?`${a.userAgent} ${Fr}`:Fr;if(a.baseUrl){q.baseUrl=a.baseUrl}if(a.previews){q.mediaType.previews=a.previews}if(a.timeZone){q.headers["time-zone"]=a.timeZone}this.request=Er.request.defaults(q);this.graphql=(0,Br.withCustomRequest)(this.request).defaults(q);this.log=createLogger(a.log);this.hook=C;if(!a.authStrategy){if(!a.auth){this.auth=async()=>({type:"unauthenticated"})}else{const q=(0,Qr.createTokenAuth)(a.auth);C.wrap("request",q.hook);this.auth=q}}else{const{authStrategy:q,...re}=a;const ae=q(Object.assign({request:this.request,log:this.log,octokit:this,octokitOptions:re},a.auth));C.wrap("request",ae.hook);this.auth=ae}const re=this.constructor;for(let C=0;C{var re=Object.defineProperty;var ae=Object.getOwnPropertyDescriptor;var Ue=Object.getOwnPropertyNames;var lt=Object.prototype.hasOwnProperty;var __export=(a,C)=>{for(var q in C)re(a,q,{get:C[q],enumerable:true})};var __copyProps=(a,C,q,Pt)=>{if(C&&typeof C==="object"||typeof C==="function"){for(let Wt of Ue(C))if(!lt.call(a,Wt)&&Wt!==q)re(a,Wt,{get:()=>C[Wt],enumerable:!(Pt=ae(C,Wt))||Pt.enumerable})}return a};var __toCommonJS=a=>__copyProps(re({},"__esModule",{value:true}),a);var Pt={};__export(Pt,{endpoint:()=>Ir});a.exports=__toCommonJS(Pt);var Wt=q(3843);var Ar="9.0.6";var Er=`octokit-endpoint.js/${Ar} ${(0,Wt.getUserAgent)()}`;var Br={method:"GET",baseUrl:"https://api.github.com",headers:{accept:"application/vnd.github.v3+json","user-agent":Er},mediaType:{format:""}};function lowercaseKeys(a){if(!a){return{}}return Object.keys(a).reduce(((C,q)=>{C[q.toLowerCase()]=a[q];return C}),{})}function isPlainObject(a){if(typeof a!=="object"||a===null)return false;if(Object.prototype.toString.call(a)!=="[object Object]")return false;const C=Object.getPrototypeOf(a);if(C===null)return true;const q=Object.prototype.hasOwnProperty.call(C,"constructor")&&C.constructor;return typeof q==="function"&&q instanceof q&&Function.prototype.call(q)===Function.prototype.call(a)}function mergeDeep(a,C){const q=Object.assign({},a);Object.keys(C).forEach((re=>{if(isPlainObject(C[re])){if(!(re in a))Object.assign(q,{[re]:C[re]});else q[re]=mergeDeep(a[re],C[re])}else{Object.assign(q,{[re]:C[re]})}}));return q}function removeUndefinedProperties(a){for(const C in a){if(a[C]===void 0){delete a[C]}}return a}function merge(a,C,q){if(typeof C==="string"){let[a,re]=C.split(" ");q=Object.assign(re?{method:a,url:re}:{url:a},q)}else{q=Object.assign({},C)}q.headers=lowercaseKeys(q.headers);removeUndefinedProperties(q);removeUndefinedProperties(q.headers);const re=mergeDeep(a||{},q);if(q.url==="/graphql"){if(a&&a.mediaType.previews?.length){re.mediaType.previews=a.mediaType.previews.filter((a=>!re.mediaType.previews.includes(a))).concat(re.mediaType.previews)}re.mediaType.previews=(re.mediaType.previews||[]).map((a=>a.replace(/-preview/,"")))}return re}function addQueryParameters(a,C){const q=/\?/.test(a)?"&":"?";const re=Object.keys(C);if(re.length===0){return a}return a+q+re.map((a=>{if(a==="q"){return"q="+C.q.split("+").map(encodeURIComponent).join("+")}return`${a}=${encodeURIComponent(C[a])}`})).join("&")}var Qr=/\{[^{}}]+\}/g;function removeNonChars(a){return a.replace(/(?:^\W+)|(?:(?a.concat(C)),[])}function omit(a,C){const q={__proto__:null};for(const re of Object.keys(a)){if(C.indexOf(re)===-1){q[re]=a[re]}}return q}function encodeReserved(a){return a.split(/(%[0-9A-Fa-f]{2})/g).map((function(a){if(!/%[0-9A-Fa-f]/.test(a)){a=encodeURI(a).replace(/%5B/g,"[").replace(/%5D/g,"]")}return a})).join("")}function encodeUnreserved(a){return encodeURIComponent(a).replace(/[!'()*]/g,(function(a){return"%"+a.charCodeAt(0).toString(16).toUpperCase()}))}function encodeValue(a,C,q){C=a==="+"||a==="#"?encodeReserved(C):encodeUnreserved(C);if(q){return encodeUnreserved(q)+"="+C}else{return C}}function isDefined(a){return a!==void 0&&a!==null}function isKeyOperator(a){return a===";"||a==="&"||a==="?"}function getValues(a,C,q,re){var ae=a[q],Ue=[];if(isDefined(ae)&&ae!==""){if(typeof ae==="string"||typeof ae==="number"||typeof ae==="boolean"){ae=ae.toString();if(re&&re!=="*"){ae=ae.substring(0,parseInt(re,10))}Ue.push(encodeValue(C,ae,isKeyOperator(C)?q:""))}else{if(re==="*"){if(Array.isArray(ae)){ae.filter(isDefined).forEach((function(a){Ue.push(encodeValue(C,a,isKeyOperator(C)?q:""))}))}else{Object.keys(ae).forEach((function(a){if(isDefined(ae[a])){Ue.push(encodeValue(C,ae[a],a))}}))}}else{const a=[];if(Array.isArray(ae)){ae.filter(isDefined).forEach((function(q){a.push(encodeValue(C,q))}))}else{Object.keys(ae).forEach((function(q){if(isDefined(ae[q])){a.push(encodeUnreserved(q));a.push(encodeValue(C,ae[q].toString()))}}))}if(isKeyOperator(C)){Ue.push(encodeUnreserved(q)+"="+a.join(","))}else if(a.length!==0){Ue.push(a.join(","))}}}}else{if(C===";"){if(isDefined(ae)){Ue.push(encodeUnreserved(q))}}else if(ae===""&&(C==="&"||C==="?")){Ue.push(encodeUnreserved(q)+"=")}else if(ae===""){Ue.push("")}}return Ue}function parseUrl(a){return{expand:expand.bind(null,a)}}function expand(a,C){var q=["+","#",".","/",";","?","&"];a=a.replace(/\{([^\{\}]+)\}|([^\{\}]+)/g,(function(a,re,ae){if(re){let a="";const ae=[];if(q.indexOf(re.charAt(0))!==-1){a=re.charAt(0);re=re.substr(1)}re.split(/,/g).forEach((function(q){var re=/([^:\*]*)(?::(\d+)|(\*))?/.exec(q);ae.push(getValues(C,a,re[1],re[2]||re[3]))}));if(a&&a!=="+"){var Ue=",";if(a==="?"){Ue="&"}else if(a!=="#"){Ue=a}return(ae.length!==0?a:"")+ae.join(Ue)}else{return ae.join(",")}}else{return encodeReserved(ae)}}));if(a==="/"){return a}else{return a.replace(/\/$/,"")}}function parse(a){let C=a.method.toUpperCase();let q=(a.url||"/").replace(/:([a-z]\w+)/g,"{$1}");let re=Object.assign({},a.headers);let ae;let Ue=omit(a,["method","baseUrl","url","headers","request","mediaType"]);const lt=extractUrlVariableNames(q);q=parseUrl(q).expand(Ue);if(!/^http/.test(q)){q=a.baseUrl+q}const Pt=Object.keys(a).filter((a=>lt.includes(a))).concat("baseUrl");const Wt=omit(Ue,Pt);const Ar=/application\/octet-stream/i.test(re.accept);if(!Ar){if(a.mediaType.format){re.accept=re.accept.split(/,/).map((C=>C.replace(/application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/,`application/vnd$1$2.${a.mediaType.format}`))).join(",")}if(q.endsWith("/graphql")){if(a.mediaType.previews?.length){const C=re.accept.match(/(?{const q=a.mediaType.format?`.${a.mediaType.format}`:"+json";return`application/vnd.github.${C}-preview${q}`})).join(",")}}}if(["GET","HEAD"].includes(C)){q=addQueryParameters(q,Wt)}else{if("data"in Wt){ae=Wt.data}else{if(Object.keys(Wt).length){ae=Wt}}}if(!re["content-type"]&&typeof ae!=="undefined"){re["content-type"]="application/json; charset=utf-8"}if(["PATCH","PUT"].includes(C)&&typeof ae==="undefined"){ae=""}return Object.assign({method:C,url:q,headers:re},typeof ae!=="undefined"?{body:ae}:null,a.request?{request:a.request}:null)}function endpointWithDefaults(a,C,q){return parse(merge(a,C,q))}function withDefaults(a,C){const q=merge(a,C);const re=endpointWithDefaults.bind(null,q);return Object.assign(re,{DEFAULTS:q,defaults:withDefaults.bind(null,q),merge:merge.bind(null,q),parse:parse})}var Ir=withDefaults(null,Br);0&&0},7:(a,C,q)=>{var re=Object.defineProperty;var ae=Object.getOwnPropertyDescriptor;var Ue=Object.getOwnPropertyNames;var lt=Object.prototype.hasOwnProperty;var __export=(a,C)=>{for(var q in C)re(a,q,{get:C[q],enumerable:true})};var __copyProps=(a,C,q,Pt)=>{if(C&&typeof C==="object"||typeof C==="function"){for(let Wt of Ue(C))if(!lt.call(a,Wt)&&Wt!==q)re(a,Wt,{get:()=>C[Wt],enumerable:!(Pt=ae(C,Wt))||Pt.enumerable})}return a};var __toCommonJS=a=>__copyProps(re({},"__esModule",{value:true}),a);var Pt={};__export(Pt,{GraphqlResponseError:()=>Ir,graphql:()=>Nr,withCustomRequest:()=>withCustomRequest});a.exports=__toCommonJS(Pt);var Wt=q(8636);var Ar=q(3843);var Er="7.1.1";var Br=q(8636);var Qr=q(8636);function _buildMessageForResponseErrors(a){return`Request failed due to following response errors:\n`+a.errors.map((a=>` - ${a.message}`)).join("\n")}var Ir=class extends Error{constructor(a,C,q){super(_buildMessageForResponseErrors(q));this.request=a;this.headers=C;this.response=q;this.name="GraphqlResponseError";this.errors=q.errors;this.data=q.data;if(Error.captureStackTrace){Error.captureStackTrace(this,this.constructor)}}};var Dr=["method","baseUrl","url","headers","request","query","mediaType"];var kr=["query","method","url"];var Fr=/\/api\/v3\/?$/;function graphql(a,C,q){if(q){if(typeof C==="string"&&"query"in q){return Promise.reject(new Error(`[@octokit/graphql] "query" cannot be used as variable name`))}for(const a in q){if(!kr.includes(a))continue;return Promise.reject(new Error(`[@octokit/graphql] "${a}" cannot be used as variable name`))}}const re=typeof C==="string"?Object.assign({query:C},q):C;const ae=Object.keys(re).reduce(((a,C)=>{if(Dr.includes(C)){a[C]=re[C];return a}if(!a.variables){a.variables={}}a.variables[C]=re[C];return a}),{});const Ue=re.baseUrl||a.endpoint.DEFAULTS.baseUrl;if(Fr.test(Ue)){ae.url=Ue.replace(Fr,"/api/graphql")}return a(ae).then((a=>{if(a.data.errors){const C={};for(const q of Object.keys(a.headers)){C[q]=a.headers[q]}throw new Ir(ae,C,a.data)}return a.data.data}))}function withDefaults(a,C){const q=a.defaults(C);const newApi=(a,C)=>graphql(q,a,C);return Object.assign(newApi,{defaults:withDefaults.bind(null,q),endpoint:q.endpoint})}var Nr=withDefaults(Wt.request,{headers:{"user-agent":`octokit-graphql.js/${Er} ${(0,Ar.getUserAgent)()}`},method:"POST",url:"/graphql"});function withCustomRequest(a){return withDefaults(a,{method:"POST",url:"/graphql"})}0&&0},8082:a=>{var C=Object.defineProperty;var q=Object.getOwnPropertyDescriptor;var re=Object.getOwnPropertyNames;var ae=Object.prototype.hasOwnProperty;var __export=(a,q)=>{for(var re in q)C(a,re,{get:q[re],enumerable:true})};var __copyProps=(a,Ue,lt,Pt)=>{if(Ue&&typeof Ue==="object"||typeof Ue==="function"){for(let Wt of re(Ue))if(!ae.call(a,Wt)&&Wt!==lt)C(a,Wt,{get:()=>Ue[Wt],enumerable:!(Pt=q(Ue,Wt))||Pt.enumerable})}return a};var __toCommonJS=a=>__copyProps(C({},"__esModule",{value:true}),a);var Ue={};__export(Ue,{composePaginateRest:()=>Pt,isPaginatingEndpoint:()=>isPaginatingEndpoint,paginateRest:()=>paginateRest,paginatingEndpoints:()=>Wt});a.exports=__toCommonJS(Ue);var lt="9.2.2";function normalizePaginatedListResponse(a){if(!a.data){return{...a,data:[]}}const C="total_count"in a.data&&!("url"in a.data);if(!C)return a;const q=a.data.incomplete_results;const re=a.data.repository_selection;const ae=a.data.total_count;delete a.data.incomplete_results;delete a.data.repository_selection;delete a.data.total_count;const Ue=Object.keys(a.data)[0];const lt=a.data[Ue];a.data=lt;if(typeof q!=="undefined"){a.data.incomplete_results=q}if(typeof re!=="undefined"){a.data.repository_selection=re}a.data.total_count=ae;return a}function iterator(a,C,q){const re=typeof C==="function"?C.endpoint(q):a.request.endpoint(C,q);const ae=typeof C==="function"?C:a.request;const Ue=re.method;const lt=re.headers;let Pt=re.url;return{[Symbol.asyncIterator]:()=>({async next(){if(!Pt)return{done:true};try{const a=await ae({method:Ue,url:Pt,headers:lt});const C=normalizePaginatedListResponse(a);Pt=((C.headers.link||"").match(/<([^<>]+)>;\s*rel="next"/)||[])[1];return{value:C}}catch(a){if(a.status!==409)throw a;Pt="";return{value:{status:200,headers:{},data:[]}}}}})}}function paginate(a,C,q,re){if(typeof q==="function"){re=q;q=void 0}return gather(a,[],iterator(a,C,q)[Symbol.asyncIterator](),re)}function gather(a,C,q,re){return q.next().then((ae=>{if(ae.done){return C}let Ue=false;function done(){Ue=true}C=C.concat(re?re(ae.value,done):ae.value.data);if(Ue){return C}return gather(a,C,q,re)}))}var Pt=Object.assign(paginate,{iterator:iterator});var Wt=["GET /advisories","GET /app/hook/deliveries","GET /app/installation-requests","GET /app/installations","GET /assignments/{assignment_id}/accepted_assignments","GET /classrooms","GET /classrooms/{classroom_id}/assignments","GET /enterprises/{enterprise}/dependabot/alerts","GET /enterprises/{enterprise}/secret-scanning/alerts","GET /events","GET /gists","GET /gists/public","GET /gists/starred","GET /gists/{gist_id}/comments","GET /gists/{gist_id}/commits","GET /gists/{gist_id}/forks","GET /installation/repositories","GET /issues","GET /licenses","GET /marketplace_listing/plans","GET /marketplace_listing/plans/{plan_id}/accounts","GET /marketplace_listing/stubbed/plans","GET /marketplace_listing/stubbed/plans/{plan_id}/accounts","GET /networks/{owner}/{repo}/events","GET /notifications","GET /organizations","GET /orgs/{org}/actions/cache/usage-by-repository","GET /orgs/{org}/actions/permissions/repositories","GET /orgs/{org}/actions/runners","GET /orgs/{org}/actions/secrets","GET /orgs/{org}/actions/secrets/{secret_name}/repositories","GET /orgs/{org}/actions/variables","GET /orgs/{org}/actions/variables/{name}/repositories","GET /orgs/{org}/blocks","GET /orgs/{org}/code-scanning/alerts","GET /orgs/{org}/codespaces","GET /orgs/{org}/codespaces/secrets","GET /orgs/{org}/codespaces/secrets/{secret_name}/repositories","GET /orgs/{org}/copilot/billing/seats","GET /orgs/{org}/dependabot/alerts","GET /orgs/{org}/dependabot/secrets","GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories","GET /orgs/{org}/events","GET /orgs/{org}/failed_invitations","GET /orgs/{org}/hooks","GET /orgs/{org}/hooks/{hook_id}/deliveries","GET /orgs/{org}/installations","GET /orgs/{org}/invitations","GET /orgs/{org}/invitations/{invitation_id}/teams","GET /orgs/{org}/issues","GET /orgs/{org}/members","GET /orgs/{org}/members/{username}/codespaces","GET /orgs/{org}/migrations","GET /orgs/{org}/migrations/{migration_id}/repositories","GET /orgs/{org}/organization-roles/{role_id}/teams","GET /orgs/{org}/organization-roles/{role_id}/users","GET /orgs/{org}/outside_collaborators","GET /orgs/{org}/packages","GET /orgs/{org}/packages/{package_type}/{package_name}/versions","GET /orgs/{org}/personal-access-token-requests","GET /orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories","GET /orgs/{org}/personal-access-tokens","GET /orgs/{org}/personal-access-tokens/{pat_id}/repositories","GET /orgs/{org}/projects","GET /orgs/{org}/properties/values","GET /orgs/{org}/public_members","GET /orgs/{org}/repos","GET /orgs/{org}/rulesets","GET /orgs/{org}/rulesets/rule-suites","GET /orgs/{org}/secret-scanning/alerts","GET /orgs/{org}/security-advisories","GET /orgs/{org}/teams","GET /orgs/{org}/teams/{team_slug}/discussions","GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments","GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions","GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions","GET /orgs/{org}/teams/{team_slug}/invitations","GET /orgs/{org}/teams/{team_slug}/members","GET /orgs/{org}/teams/{team_slug}/projects","GET /orgs/{org}/teams/{team_slug}/repos","GET /orgs/{org}/teams/{team_slug}/teams","GET /projects/columns/{column_id}/cards","GET /projects/{project_id}/collaborators","GET /projects/{project_id}/columns","GET /repos/{owner}/{repo}/actions/artifacts","GET /repos/{owner}/{repo}/actions/caches","GET /repos/{owner}/{repo}/actions/organization-secrets","GET /repos/{owner}/{repo}/actions/organization-variables","GET /repos/{owner}/{repo}/actions/runners","GET /repos/{owner}/{repo}/actions/runs","GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts","GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs","GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs","GET /repos/{owner}/{repo}/actions/secrets","GET /repos/{owner}/{repo}/actions/variables","GET /repos/{owner}/{repo}/actions/workflows","GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs","GET /repos/{owner}/{repo}/activity","GET /repos/{owner}/{repo}/assignees","GET /repos/{owner}/{repo}/branches","GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations","GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs","GET /repos/{owner}/{repo}/code-scanning/alerts","GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances","GET /repos/{owner}/{repo}/code-scanning/analyses","GET /repos/{owner}/{repo}/codespaces","GET /repos/{owner}/{repo}/codespaces/devcontainers","GET /repos/{owner}/{repo}/codespaces/secrets","GET /repos/{owner}/{repo}/collaborators","GET /repos/{owner}/{repo}/comments","GET /repos/{owner}/{repo}/comments/{comment_id}/reactions","GET /repos/{owner}/{repo}/commits","GET /repos/{owner}/{repo}/commits/{commit_sha}/comments","GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls","GET /repos/{owner}/{repo}/commits/{ref}/check-runs","GET /repos/{owner}/{repo}/commits/{ref}/check-suites","GET /repos/{owner}/{repo}/commits/{ref}/status","GET /repos/{owner}/{repo}/commits/{ref}/statuses","GET /repos/{owner}/{repo}/contributors","GET /repos/{owner}/{repo}/dependabot/alerts","GET /repos/{owner}/{repo}/dependabot/secrets","GET /repos/{owner}/{repo}/deployments","GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses","GET /repos/{owner}/{repo}/environments","GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies","GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/apps","GET /repos/{owner}/{repo}/events","GET /repos/{owner}/{repo}/forks","GET /repos/{owner}/{repo}/hooks","GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries","GET /repos/{owner}/{repo}/invitations","GET /repos/{owner}/{repo}/issues","GET /repos/{owner}/{repo}/issues/comments","GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions","GET /repos/{owner}/{repo}/issues/events","GET /repos/{owner}/{repo}/issues/{issue_number}/comments","GET /repos/{owner}/{repo}/issues/{issue_number}/events","GET /repos/{owner}/{repo}/issues/{issue_number}/labels","GET /repos/{owner}/{repo}/issues/{issue_number}/reactions","GET /repos/{owner}/{repo}/issues/{issue_number}/timeline","GET /repos/{owner}/{repo}/keys","GET /repos/{owner}/{repo}/labels","GET /repos/{owner}/{repo}/milestones","GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels","GET /repos/{owner}/{repo}/notifications","GET /repos/{owner}/{repo}/pages/builds","GET /repos/{owner}/{repo}/projects","GET /repos/{owner}/{repo}/pulls","GET /repos/{owner}/{repo}/pulls/comments","GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions","GET /repos/{owner}/{repo}/pulls/{pull_number}/comments","GET /repos/{owner}/{repo}/pulls/{pull_number}/commits","GET /repos/{owner}/{repo}/pulls/{pull_number}/files","GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews","GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments","GET /repos/{owner}/{repo}/releases","GET /repos/{owner}/{repo}/releases/{release_id}/assets","GET /repos/{owner}/{repo}/releases/{release_id}/reactions","GET /repos/{owner}/{repo}/rules/branches/{branch}","GET /repos/{owner}/{repo}/rulesets","GET /repos/{owner}/{repo}/rulesets/rule-suites","GET /repos/{owner}/{repo}/secret-scanning/alerts","GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations","GET /repos/{owner}/{repo}/security-advisories","GET /repos/{owner}/{repo}/stargazers","GET /repos/{owner}/{repo}/subscribers","GET /repos/{owner}/{repo}/tags","GET /repos/{owner}/{repo}/teams","GET /repos/{owner}/{repo}/topics","GET /repositories","GET /repositories/{repository_id}/environments/{environment_name}/secrets","GET /repositories/{repository_id}/environments/{environment_name}/variables","GET /search/code","GET /search/commits","GET /search/issues","GET /search/labels","GET /search/repositories","GET /search/topics","GET /search/users","GET /teams/{team_id}/discussions","GET /teams/{team_id}/discussions/{discussion_number}/comments","GET /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions","GET /teams/{team_id}/discussions/{discussion_number}/reactions","GET /teams/{team_id}/invitations","GET /teams/{team_id}/members","GET /teams/{team_id}/projects","GET /teams/{team_id}/repos","GET /teams/{team_id}/teams","GET /user/blocks","GET /user/codespaces","GET /user/codespaces/secrets","GET /user/emails","GET /user/followers","GET /user/following","GET /user/gpg_keys","GET /user/installations","GET /user/installations/{installation_id}/repositories","GET /user/issues","GET /user/keys","GET /user/marketplace_purchases","GET /user/marketplace_purchases/stubbed","GET /user/memberships/orgs","GET /user/migrations","GET /user/migrations/{migration_id}/repositories","GET /user/orgs","GET /user/packages","GET /user/packages/{package_type}/{package_name}/versions","GET /user/public_emails","GET /user/repos","GET /user/repository_invitations","GET /user/social_accounts","GET /user/ssh_signing_keys","GET /user/starred","GET /user/subscriptions","GET /user/teams","GET /users","GET /users/{username}/events","GET /users/{username}/events/orgs/{org}","GET /users/{username}/events/public","GET /users/{username}/followers","GET /users/{username}/following","GET /users/{username}/gists","GET /users/{username}/gpg_keys","GET /users/{username}/keys","GET /users/{username}/orgs","GET /users/{username}/packages","GET /users/{username}/projects","GET /users/{username}/received_events","GET /users/{username}/received_events/public","GET /users/{username}/repos","GET /users/{username}/social_accounts","GET /users/{username}/ssh_signing_keys","GET /users/{username}/starred","GET /users/{username}/subscriptions"];function isPaginatingEndpoint(a){if(typeof a==="string"){return Wt.includes(a)}else{return false}}function paginateRest(a){return{paginate:Object.assign(paginate.bind(null,a),{iterator:iterator.bind(null,a)})}}paginateRest.VERSION=lt;0&&0},4935:a=>{var C=Object.defineProperty;var q=Object.getOwnPropertyDescriptor;var re=Object.getOwnPropertyNames;var ae=Object.prototype.hasOwnProperty;var __export=(a,q)=>{for(var re in q)C(a,re,{get:q[re],enumerable:true})};var __copyProps=(a,Ue,lt,Pt)=>{if(Ue&&typeof Ue==="object"||typeof Ue==="function"){for(let Wt of re(Ue))if(!ae.call(a,Wt)&&Wt!==lt)C(a,Wt,{get:()=>Ue[Wt],enumerable:!(Pt=q(Ue,Wt))||Pt.enumerable})}return a};var __toCommonJS=a=>__copyProps(C({},"__esModule",{value:true}),a);var Ue={};__export(Ue,{legacyRestEndpointMethods:()=>legacyRestEndpointMethods,restEndpointMethods:()=>restEndpointMethods});a.exports=__toCommonJS(Ue);var lt="10.4.1";var Pt={actions:{addCustomLabelsToSelfHostedRunnerForOrg:["POST /orgs/{org}/actions/runners/{runner_id}/labels"],addCustomLabelsToSelfHostedRunnerForRepo:["POST /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],addSelectedRepoToOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"],addSelectedRepoToOrgVariable:["PUT /orgs/{org}/actions/variables/{name}/repositories/{repository_id}"],approveWorkflowRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/approve"],cancelWorkflowRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel"],createEnvironmentVariable:["POST /repositories/{repository_id}/environments/{environment_name}/variables"],createOrUpdateEnvironmentSecret:["PUT /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}"],createOrUpdateOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}"],createOrUpdateRepoSecret:["PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}"],createOrgVariable:["POST /orgs/{org}/actions/variables"],createRegistrationTokenForOrg:["POST /orgs/{org}/actions/runners/registration-token"],createRegistrationTokenForRepo:["POST /repos/{owner}/{repo}/actions/runners/registration-token"],createRemoveTokenForOrg:["POST /orgs/{org}/actions/runners/remove-token"],createRemoveTokenForRepo:["POST /repos/{owner}/{repo}/actions/runners/remove-token"],createRepoVariable:["POST /repos/{owner}/{repo}/actions/variables"],createWorkflowDispatch:["POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches"],deleteActionsCacheById:["DELETE /repos/{owner}/{repo}/actions/caches/{cache_id}"],deleteActionsCacheByKey:["DELETE /repos/{owner}/{repo}/actions/caches{?key,ref}"],deleteArtifact:["DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"],deleteEnvironmentSecret:["DELETE /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}"],deleteEnvironmentVariable:["DELETE /repositories/{repository_id}/environments/{environment_name}/variables/{name}"],deleteOrgSecret:["DELETE /orgs/{org}/actions/secrets/{secret_name}"],deleteOrgVariable:["DELETE /orgs/{org}/actions/variables/{name}"],deleteRepoSecret:["DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}"],deleteRepoVariable:["DELETE /repos/{owner}/{repo}/actions/variables/{name}"],deleteSelfHostedRunnerFromOrg:["DELETE /orgs/{org}/actions/runners/{runner_id}"],deleteSelfHostedRunnerFromRepo:["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}"],deleteWorkflowRun:["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}"],deleteWorkflowRunLogs:["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs"],disableSelectedRepositoryGithubActionsOrganization:["DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}"],disableWorkflow:["PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable"],downloadArtifact:["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}"],downloadJobLogsForWorkflowRun:["GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs"],downloadWorkflowRunAttemptLogs:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/logs"],downloadWorkflowRunLogs:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs"],enableSelectedRepositoryGithubActionsOrganization:["PUT /orgs/{org}/actions/permissions/repositories/{repository_id}"],enableWorkflow:["PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable"],forceCancelWorkflowRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/force-cancel"],generateRunnerJitconfigForOrg:["POST /orgs/{org}/actions/runners/generate-jitconfig"],generateRunnerJitconfigForRepo:["POST /repos/{owner}/{repo}/actions/runners/generate-jitconfig"],getActionsCacheList:["GET /repos/{owner}/{repo}/actions/caches"],getActionsCacheUsage:["GET /repos/{owner}/{repo}/actions/cache/usage"],getActionsCacheUsageByRepoForOrg:["GET /orgs/{org}/actions/cache/usage-by-repository"],getActionsCacheUsageForOrg:["GET /orgs/{org}/actions/cache/usage"],getAllowedActionsOrganization:["GET /orgs/{org}/actions/permissions/selected-actions"],getAllowedActionsRepository:["GET /repos/{owner}/{repo}/actions/permissions/selected-actions"],getArtifact:["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"],getCustomOidcSubClaimForRepo:["GET /repos/{owner}/{repo}/actions/oidc/customization/sub"],getEnvironmentPublicKey:["GET /repositories/{repository_id}/environments/{environment_name}/secrets/public-key"],getEnvironmentSecret:["GET /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}"],getEnvironmentVariable:["GET /repositories/{repository_id}/environments/{environment_name}/variables/{name}"],getGithubActionsDefaultWorkflowPermissionsOrganization:["GET /orgs/{org}/actions/permissions/workflow"],getGithubActionsDefaultWorkflowPermissionsRepository:["GET /repos/{owner}/{repo}/actions/permissions/workflow"],getGithubActionsPermissionsOrganization:["GET /orgs/{org}/actions/permissions"],getGithubActionsPermissionsRepository:["GET /repos/{owner}/{repo}/actions/permissions"],getJobForWorkflowRun:["GET /repos/{owner}/{repo}/actions/jobs/{job_id}"],getOrgPublicKey:["GET /orgs/{org}/actions/secrets/public-key"],getOrgSecret:["GET /orgs/{org}/actions/secrets/{secret_name}"],getOrgVariable:["GET /orgs/{org}/actions/variables/{name}"],getPendingDeploymentsForRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments"],getRepoPermissions:["GET /repos/{owner}/{repo}/actions/permissions",{},{renamed:["actions","getGithubActionsPermissionsRepository"]}],getRepoPublicKey:["GET /repos/{owner}/{repo}/actions/secrets/public-key"],getRepoSecret:["GET /repos/{owner}/{repo}/actions/secrets/{secret_name}"],getRepoVariable:["GET /repos/{owner}/{repo}/actions/variables/{name}"],getReviewsForRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/approvals"],getSelfHostedRunnerForOrg:["GET /orgs/{org}/actions/runners/{runner_id}"],getSelfHostedRunnerForRepo:["GET /repos/{owner}/{repo}/actions/runners/{runner_id}"],getWorkflow:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}"],getWorkflowAccessToRepository:["GET /repos/{owner}/{repo}/actions/permissions/access"],getWorkflowRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}"],getWorkflowRunAttempt:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}"],getWorkflowRunUsage:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing"],getWorkflowUsage:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing"],listArtifactsForRepo:["GET /repos/{owner}/{repo}/actions/artifacts"],listEnvironmentSecrets:["GET /repositories/{repository_id}/environments/{environment_name}/secrets"],listEnvironmentVariables:["GET /repositories/{repository_id}/environments/{environment_name}/variables"],listJobsForWorkflowRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs"],listJobsForWorkflowRunAttempt:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs"],listLabelsForSelfHostedRunnerForOrg:["GET /orgs/{org}/actions/runners/{runner_id}/labels"],listLabelsForSelfHostedRunnerForRepo:["GET /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],listOrgSecrets:["GET /orgs/{org}/actions/secrets"],listOrgVariables:["GET /orgs/{org}/actions/variables"],listRepoOrganizationSecrets:["GET /repos/{owner}/{repo}/actions/organization-secrets"],listRepoOrganizationVariables:["GET /repos/{owner}/{repo}/actions/organization-variables"],listRepoSecrets:["GET /repos/{owner}/{repo}/actions/secrets"],listRepoVariables:["GET /repos/{owner}/{repo}/actions/variables"],listRepoWorkflows:["GET /repos/{owner}/{repo}/actions/workflows"],listRunnerApplicationsForOrg:["GET /orgs/{org}/actions/runners/downloads"],listRunnerApplicationsForRepo:["GET /repos/{owner}/{repo}/actions/runners/downloads"],listSelectedReposForOrgSecret:["GET /orgs/{org}/actions/secrets/{secret_name}/repositories"],listSelectedReposForOrgVariable:["GET /orgs/{org}/actions/variables/{name}/repositories"],listSelectedRepositoriesEnabledGithubActionsOrganization:["GET /orgs/{org}/actions/permissions/repositories"],listSelfHostedRunnersForOrg:["GET /orgs/{org}/actions/runners"],listSelfHostedRunnersForRepo:["GET /repos/{owner}/{repo}/actions/runners"],listWorkflowRunArtifacts:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts"],listWorkflowRuns:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs"],listWorkflowRunsForRepo:["GET /repos/{owner}/{repo}/actions/runs"],reRunJobForWorkflowRun:["POST /repos/{owner}/{repo}/actions/jobs/{job_id}/rerun"],reRunWorkflow:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun"],reRunWorkflowFailedJobs:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun-failed-jobs"],removeAllCustomLabelsFromSelfHostedRunnerForOrg:["DELETE /orgs/{org}/actions/runners/{runner_id}/labels"],removeAllCustomLabelsFromSelfHostedRunnerForRepo:["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],removeCustomLabelFromSelfHostedRunnerForOrg:["DELETE /orgs/{org}/actions/runners/{runner_id}/labels/{name}"],removeCustomLabelFromSelfHostedRunnerForRepo:["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels/{name}"],removeSelectedRepoFromOrgSecret:["DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"],removeSelectedRepoFromOrgVariable:["DELETE /orgs/{org}/actions/variables/{name}/repositories/{repository_id}"],reviewCustomGatesForRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/deployment_protection_rule"],reviewPendingDeploymentsForRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments"],setAllowedActionsOrganization:["PUT /orgs/{org}/actions/permissions/selected-actions"],setAllowedActionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions/selected-actions"],setCustomLabelsForSelfHostedRunnerForOrg:["PUT /orgs/{org}/actions/runners/{runner_id}/labels"],setCustomLabelsForSelfHostedRunnerForRepo:["PUT /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],setCustomOidcSubClaimForRepo:["PUT /repos/{owner}/{repo}/actions/oidc/customization/sub"],setGithubActionsDefaultWorkflowPermissionsOrganization:["PUT /orgs/{org}/actions/permissions/workflow"],setGithubActionsDefaultWorkflowPermissionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions/workflow"],setGithubActionsPermissionsOrganization:["PUT /orgs/{org}/actions/permissions"],setGithubActionsPermissionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions"],setSelectedReposForOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories"],setSelectedReposForOrgVariable:["PUT /orgs/{org}/actions/variables/{name}/repositories"],setSelectedRepositoriesEnabledGithubActionsOrganization:["PUT /orgs/{org}/actions/permissions/repositories"],setWorkflowAccessToRepository:["PUT /repos/{owner}/{repo}/actions/permissions/access"],updateEnvironmentVariable:["PATCH /repositories/{repository_id}/environments/{environment_name}/variables/{name}"],updateOrgVariable:["PATCH /orgs/{org}/actions/variables/{name}"],updateRepoVariable:["PATCH /repos/{owner}/{repo}/actions/variables/{name}"]},activity:{checkRepoIsStarredByAuthenticatedUser:["GET /user/starred/{owner}/{repo}"],deleteRepoSubscription:["DELETE /repos/{owner}/{repo}/subscription"],deleteThreadSubscription:["DELETE /notifications/threads/{thread_id}/subscription"],getFeeds:["GET /feeds"],getRepoSubscription:["GET /repos/{owner}/{repo}/subscription"],getThread:["GET /notifications/threads/{thread_id}"],getThreadSubscriptionForAuthenticatedUser:["GET /notifications/threads/{thread_id}/subscription"],listEventsForAuthenticatedUser:["GET /users/{username}/events"],listNotificationsForAuthenticatedUser:["GET /notifications"],listOrgEventsForAuthenticatedUser:["GET /users/{username}/events/orgs/{org}"],listPublicEvents:["GET /events"],listPublicEventsForRepoNetwork:["GET /networks/{owner}/{repo}/events"],listPublicEventsForUser:["GET /users/{username}/events/public"],listPublicOrgEvents:["GET /orgs/{org}/events"],listReceivedEventsForUser:["GET /users/{username}/received_events"],listReceivedPublicEventsForUser:["GET /users/{username}/received_events/public"],listRepoEvents:["GET /repos/{owner}/{repo}/events"],listRepoNotificationsForAuthenticatedUser:["GET /repos/{owner}/{repo}/notifications"],listReposStarredByAuthenticatedUser:["GET /user/starred"],listReposStarredByUser:["GET /users/{username}/starred"],listReposWatchedByUser:["GET /users/{username}/subscriptions"],listStargazersForRepo:["GET /repos/{owner}/{repo}/stargazers"],listWatchedReposForAuthenticatedUser:["GET /user/subscriptions"],listWatchersForRepo:["GET /repos/{owner}/{repo}/subscribers"],markNotificationsAsRead:["PUT /notifications"],markRepoNotificationsAsRead:["PUT /repos/{owner}/{repo}/notifications"],markThreadAsDone:["DELETE /notifications/threads/{thread_id}"],markThreadAsRead:["PATCH /notifications/threads/{thread_id}"],setRepoSubscription:["PUT /repos/{owner}/{repo}/subscription"],setThreadSubscription:["PUT /notifications/threads/{thread_id}/subscription"],starRepoForAuthenticatedUser:["PUT /user/starred/{owner}/{repo}"],unstarRepoForAuthenticatedUser:["DELETE /user/starred/{owner}/{repo}"]},apps:{addRepoToInstallation:["PUT /user/installations/{installation_id}/repositories/{repository_id}",{},{renamed:["apps","addRepoToInstallationForAuthenticatedUser"]}],addRepoToInstallationForAuthenticatedUser:["PUT /user/installations/{installation_id}/repositories/{repository_id}"],checkToken:["POST /applications/{client_id}/token"],createFromManifest:["POST /app-manifests/{code}/conversions"],createInstallationAccessToken:["POST /app/installations/{installation_id}/access_tokens"],deleteAuthorization:["DELETE /applications/{client_id}/grant"],deleteInstallation:["DELETE /app/installations/{installation_id}"],deleteToken:["DELETE /applications/{client_id}/token"],getAuthenticated:["GET /app"],getBySlug:["GET /apps/{app_slug}"],getInstallation:["GET /app/installations/{installation_id}"],getOrgInstallation:["GET /orgs/{org}/installation"],getRepoInstallation:["GET /repos/{owner}/{repo}/installation"],getSubscriptionPlanForAccount:["GET /marketplace_listing/accounts/{account_id}"],getSubscriptionPlanForAccountStubbed:["GET /marketplace_listing/stubbed/accounts/{account_id}"],getUserInstallation:["GET /users/{username}/installation"],getWebhookConfigForApp:["GET /app/hook/config"],getWebhookDelivery:["GET /app/hook/deliveries/{delivery_id}"],listAccountsForPlan:["GET /marketplace_listing/plans/{plan_id}/accounts"],listAccountsForPlanStubbed:["GET /marketplace_listing/stubbed/plans/{plan_id}/accounts"],listInstallationReposForAuthenticatedUser:["GET /user/installations/{installation_id}/repositories"],listInstallationRequestsForAuthenticatedApp:["GET /app/installation-requests"],listInstallations:["GET /app/installations"],listInstallationsForAuthenticatedUser:["GET /user/installations"],listPlans:["GET /marketplace_listing/plans"],listPlansStubbed:["GET /marketplace_listing/stubbed/plans"],listReposAccessibleToInstallation:["GET /installation/repositories"],listSubscriptionsForAuthenticatedUser:["GET /user/marketplace_purchases"],listSubscriptionsForAuthenticatedUserStubbed:["GET /user/marketplace_purchases/stubbed"],listWebhookDeliveries:["GET /app/hook/deliveries"],redeliverWebhookDelivery:["POST /app/hook/deliveries/{delivery_id}/attempts"],removeRepoFromInstallation:["DELETE /user/installations/{installation_id}/repositories/{repository_id}",{},{renamed:["apps","removeRepoFromInstallationForAuthenticatedUser"]}],removeRepoFromInstallationForAuthenticatedUser:["DELETE /user/installations/{installation_id}/repositories/{repository_id}"],resetToken:["PATCH /applications/{client_id}/token"],revokeInstallationAccessToken:["DELETE /installation/token"],scopeToken:["POST /applications/{client_id}/token/scoped"],suspendInstallation:["PUT /app/installations/{installation_id}/suspended"],unsuspendInstallation:["DELETE /app/installations/{installation_id}/suspended"],updateWebhookConfigForApp:["PATCH /app/hook/config"]},billing:{getGithubActionsBillingOrg:["GET /orgs/{org}/settings/billing/actions"],getGithubActionsBillingUser:["GET /users/{username}/settings/billing/actions"],getGithubPackagesBillingOrg:["GET /orgs/{org}/settings/billing/packages"],getGithubPackagesBillingUser:["GET /users/{username}/settings/billing/packages"],getSharedStorageBillingOrg:["GET /orgs/{org}/settings/billing/shared-storage"],getSharedStorageBillingUser:["GET /users/{username}/settings/billing/shared-storage"]},checks:{create:["POST /repos/{owner}/{repo}/check-runs"],createSuite:["POST /repos/{owner}/{repo}/check-suites"],get:["GET /repos/{owner}/{repo}/check-runs/{check_run_id}"],getSuite:["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}"],listAnnotations:["GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations"],listForRef:["GET /repos/{owner}/{repo}/commits/{ref}/check-runs"],listForSuite:["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs"],listSuitesForRef:["GET /repos/{owner}/{repo}/commits/{ref}/check-suites"],rerequestRun:["POST /repos/{owner}/{repo}/check-runs/{check_run_id}/rerequest"],rerequestSuite:["POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest"],setSuitesPreferences:["PATCH /repos/{owner}/{repo}/check-suites/preferences"],update:["PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}"]},codeScanning:{deleteAnalysis:["DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}"],getAlert:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}",{},{renamedParameters:{alert_id:"alert_number"}}],getAnalysis:["GET /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}"],getCodeqlDatabase:["GET /repos/{owner}/{repo}/code-scanning/codeql/databases/{language}"],getDefaultSetup:["GET /repos/{owner}/{repo}/code-scanning/default-setup"],getSarif:["GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}"],listAlertInstances:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances"],listAlertsForOrg:["GET /orgs/{org}/code-scanning/alerts"],listAlertsForRepo:["GET /repos/{owner}/{repo}/code-scanning/alerts"],listAlertsInstances:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances",{},{renamed:["codeScanning","listAlertInstances"]}],listCodeqlDatabases:["GET /repos/{owner}/{repo}/code-scanning/codeql/databases"],listRecentAnalyses:["GET /repos/{owner}/{repo}/code-scanning/analyses"],updateAlert:["PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}"],updateDefaultSetup:["PATCH /repos/{owner}/{repo}/code-scanning/default-setup"],uploadSarif:["POST /repos/{owner}/{repo}/code-scanning/sarifs"]},codesOfConduct:{getAllCodesOfConduct:["GET /codes_of_conduct"],getConductCode:["GET /codes_of_conduct/{key}"]},codespaces:{addRepositoryForSecretForAuthenticatedUser:["PUT /user/codespaces/secrets/{secret_name}/repositories/{repository_id}"],addSelectedRepoToOrgSecret:["PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}"],checkPermissionsForDevcontainer:["GET /repos/{owner}/{repo}/codespaces/permissions_check"],codespaceMachinesForAuthenticatedUser:["GET /user/codespaces/{codespace_name}/machines"],createForAuthenticatedUser:["POST /user/codespaces"],createOrUpdateOrgSecret:["PUT /orgs/{org}/codespaces/secrets/{secret_name}"],createOrUpdateRepoSecret:["PUT /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"],createOrUpdateSecretForAuthenticatedUser:["PUT /user/codespaces/secrets/{secret_name}"],createWithPrForAuthenticatedUser:["POST /repos/{owner}/{repo}/pulls/{pull_number}/codespaces"],createWithRepoForAuthenticatedUser:["POST /repos/{owner}/{repo}/codespaces"],deleteForAuthenticatedUser:["DELETE /user/codespaces/{codespace_name}"],deleteFromOrganization:["DELETE /orgs/{org}/members/{username}/codespaces/{codespace_name}"],deleteOrgSecret:["DELETE /orgs/{org}/codespaces/secrets/{secret_name}"],deleteRepoSecret:["DELETE /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"],deleteSecretForAuthenticatedUser:["DELETE /user/codespaces/secrets/{secret_name}"],exportForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/exports"],getCodespacesForUserInOrg:["GET /orgs/{org}/members/{username}/codespaces"],getExportDetailsForAuthenticatedUser:["GET /user/codespaces/{codespace_name}/exports/{export_id}"],getForAuthenticatedUser:["GET /user/codespaces/{codespace_name}"],getOrgPublicKey:["GET /orgs/{org}/codespaces/secrets/public-key"],getOrgSecret:["GET /orgs/{org}/codespaces/secrets/{secret_name}"],getPublicKeyForAuthenticatedUser:["GET /user/codespaces/secrets/public-key"],getRepoPublicKey:["GET /repos/{owner}/{repo}/codespaces/secrets/public-key"],getRepoSecret:["GET /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"],getSecretForAuthenticatedUser:["GET /user/codespaces/secrets/{secret_name}"],listDevcontainersInRepositoryForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces/devcontainers"],listForAuthenticatedUser:["GET /user/codespaces"],listInOrganization:["GET /orgs/{org}/codespaces",{},{renamedParameters:{org_id:"org"}}],listInRepositoryForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces"],listOrgSecrets:["GET /orgs/{org}/codespaces/secrets"],listRepoSecrets:["GET /repos/{owner}/{repo}/codespaces/secrets"],listRepositoriesForSecretForAuthenticatedUser:["GET /user/codespaces/secrets/{secret_name}/repositories"],listSecretsForAuthenticatedUser:["GET /user/codespaces/secrets"],listSelectedReposForOrgSecret:["GET /orgs/{org}/codespaces/secrets/{secret_name}/repositories"],preFlightWithRepoForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces/new"],publishForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/publish"],removeRepositoryForSecretForAuthenticatedUser:["DELETE /user/codespaces/secrets/{secret_name}/repositories/{repository_id}"],removeSelectedRepoFromOrgSecret:["DELETE /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}"],repoMachinesForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces/machines"],setRepositoriesForSecretForAuthenticatedUser:["PUT /user/codespaces/secrets/{secret_name}/repositories"],setSelectedReposForOrgSecret:["PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories"],startForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/start"],stopForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/stop"],stopInOrganization:["POST /orgs/{org}/members/{username}/codespaces/{codespace_name}/stop"],updateForAuthenticatedUser:["PATCH /user/codespaces/{codespace_name}"]},copilot:{addCopilotSeatsForTeams:["POST /orgs/{org}/copilot/billing/selected_teams"],addCopilotSeatsForUsers:["POST /orgs/{org}/copilot/billing/selected_users"],cancelCopilotSeatAssignmentForTeams:["DELETE /orgs/{org}/copilot/billing/selected_teams"],cancelCopilotSeatAssignmentForUsers:["DELETE /orgs/{org}/copilot/billing/selected_users"],getCopilotOrganizationDetails:["GET /orgs/{org}/copilot/billing"],getCopilotSeatDetailsForUser:["GET /orgs/{org}/members/{username}/copilot"],listCopilotSeats:["GET /orgs/{org}/copilot/billing/seats"]},dependabot:{addSelectedRepoToOrgSecret:["PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}"],createOrUpdateOrgSecret:["PUT /orgs/{org}/dependabot/secrets/{secret_name}"],createOrUpdateRepoSecret:["PUT /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"],deleteOrgSecret:["DELETE /orgs/{org}/dependabot/secrets/{secret_name}"],deleteRepoSecret:["DELETE /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"],getAlert:["GET /repos/{owner}/{repo}/dependabot/alerts/{alert_number}"],getOrgPublicKey:["GET /orgs/{org}/dependabot/secrets/public-key"],getOrgSecret:["GET /orgs/{org}/dependabot/secrets/{secret_name}"],getRepoPublicKey:["GET /repos/{owner}/{repo}/dependabot/secrets/public-key"],getRepoSecret:["GET /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"],listAlertsForEnterprise:["GET /enterprises/{enterprise}/dependabot/alerts"],listAlertsForOrg:["GET /orgs/{org}/dependabot/alerts"],listAlertsForRepo:["GET /repos/{owner}/{repo}/dependabot/alerts"],listOrgSecrets:["GET /orgs/{org}/dependabot/secrets"],listRepoSecrets:["GET /repos/{owner}/{repo}/dependabot/secrets"],listSelectedReposForOrgSecret:["GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories"],removeSelectedRepoFromOrgSecret:["DELETE /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}"],setSelectedReposForOrgSecret:["PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories"],updateAlert:["PATCH /repos/{owner}/{repo}/dependabot/alerts/{alert_number}"]},dependencyGraph:{createRepositorySnapshot:["POST /repos/{owner}/{repo}/dependency-graph/snapshots"],diffRange:["GET /repos/{owner}/{repo}/dependency-graph/compare/{basehead}"],exportSbom:["GET /repos/{owner}/{repo}/dependency-graph/sbom"]},emojis:{get:["GET /emojis"]},gists:{checkIsStarred:["GET /gists/{gist_id}/star"],create:["POST /gists"],createComment:["POST /gists/{gist_id}/comments"],delete:["DELETE /gists/{gist_id}"],deleteComment:["DELETE /gists/{gist_id}/comments/{comment_id}"],fork:["POST /gists/{gist_id}/forks"],get:["GET /gists/{gist_id}"],getComment:["GET /gists/{gist_id}/comments/{comment_id}"],getRevision:["GET /gists/{gist_id}/{sha}"],list:["GET /gists"],listComments:["GET /gists/{gist_id}/comments"],listCommits:["GET /gists/{gist_id}/commits"],listForUser:["GET /users/{username}/gists"],listForks:["GET /gists/{gist_id}/forks"],listPublic:["GET /gists/public"],listStarred:["GET /gists/starred"],star:["PUT /gists/{gist_id}/star"],unstar:["DELETE /gists/{gist_id}/star"],update:["PATCH /gists/{gist_id}"],updateComment:["PATCH /gists/{gist_id}/comments/{comment_id}"]},git:{createBlob:["POST /repos/{owner}/{repo}/git/blobs"],createCommit:["POST /repos/{owner}/{repo}/git/commits"],createRef:["POST /repos/{owner}/{repo}/git/refs"],createTag:["POST /repos/{owner}/{repo}/git/tags"],createTree:["POST /repos/{owner}/{repo}/git/trees"],deleteRef:["DELETE /repos/{owner}/{repo}/git/refs/{ref}"],getBlob:["GET /repos/{owner}/{repo}/git/blobs/{file_sha}"],getCommit:["GET /repos/{owner}/{repo}/git/commits/{commit_sha}"],getRef:["GET /repos/{owner}/{repo}/git/ref/{ref}"],getTag:["GET /repos/{owner}/{repo}/git/tags/{tag_sha}"],getTree:["GET /repos/{owner}/{repo}/git/trees/{tree_sha}"],listMatchingRefs:["GET /repos/{owner}/{repo}/git/matching-refs/{ref}"],updateRef:["PATCH /repos/{owner}/{repo}/git/refs/{ref}"]},gitignore:{getAllTemplates:["GET /gitignore/templates"],getTemplate:["GET /gitignore/templates/{name}"]},interactions:{getRestrictionsForAuthenticatedUser:["GET /user/interaction-limits"],getRestrictionsForOrg:["GET /orgs/{org}/interaction-limits"],getRestrictionsForRepo:["GET /repos/{owner}/{repo}/interaction-limits"],getRestrictionsForYourPublicRepos:["GET /user/interaction-limits",{},{renamed:["interactions","getRestrictionsForAuthenticatedUser"]}],removeRestrictionsForAuthenticatedUser:["DELETE /user/interaction-limits"],removeRestrictionsForOrg:["DELETE /orgs/{org}/interaction-limits"],removeRestrictionsForRepo:["DELETE /repos/{owner}/{repo}/interaction-limits"],removeRestrictionsForYourPublicRepos:["DELETE /user/interaction-limits",{},{renamed:["interactions","removeRestrictionsForAuthenticatedUser"]}],setRestrictionsForAuthenticatedUser:["PUT /user/interaction-limits"],setRestrictionsForOrg:["PUT /orgs/{org}/interaction-limits"],setRestrictionsForRepo:["PUT /repos/{owner}/{repo}/interaction-limits"],setRestrictionsForYourPublicRepos:["PUT /user/interaction-limits",{},{renamed:["interactions","setRestrictionsForAuthenticatedUser"]}]},issues:{addAssignees:["POST /repos/{owner}/{repo}/issues/{issue_number}/assignees"],addLabels:["POST /repos/{owner}/{repo}/issues/{issue_number}/labels"],checkUserCanBeAssigned:["GET /repos/{owner}/{repo}/assignees/{assignee}"],checkUserCanBeAssignedToIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/assignees/{assignee}"],create:["POST /repos/{owner}/{repo}/issues"],createComment:["POST /repos/{owner}/{repo}/issues/{issue_number}/comments"],createLabel:["POST /repos/{owner}/{repo}/labels"],createMilestone:["POST /repos/{owner}/{repo}/milestones"],deleteComment:["DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}"],deleteLabel:["DELETE /repos/{owner}/{repo}/labels/{name}"],deleteMilestone:["DELETE /repos/{owner}/{repo}/milestones/{milestone_number}"],get:["GET /repos/{owner}/{repo}/issues/{issue_number}"],getComment:["GET /repos/{owner}/{repo}/issues/comments/{comment_id}"],getEvent:["GET /repos/{owner}/{repo}/issues/events/{event_id}"],getLabel:["GET /repos/{owner}/{repo}/labels/{name}"],getMilestone:["GET /repos/{owner}/{repo}/milestones/{milestone_number}"],list:["GET /issues"],listAssignees:["GET /repos/{owner}/{repo}/assignees"],listComments:["GET /repos/{owner}/{repo}/issues/{issue_number}/comments"],listCommentsForRepo:["GET /repos/{owner}/{repo}/issues/comments"],listEvents:["GET /repos/{owner}/{repo}/issues/{issue_number}/events"],listEventsForRepo:["GET /repos/{owner}/{repo}/issues/events"],listEventsForTimeline:["GET /repos/{owner}/{repo}/issues/{issue_number}/timeline"],listForAuthenticatedUser:["GET /user/issues"],listForOrg:["GET /orgs/{org}/issues"],listForRepo:["GET /repos/{owner}/{repo}/issues"],listLabelsForMilestone:["GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels"],listLabelsForRepo:["GET /repos/{owner}/{repo}/labels"],listLabelsOnIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/labels"],listMilestones:["GET /repos/{owner}/{repo}/milestones"],lock:["PUT /repos/{owner}/{repo}/issues/{issue_number}/lock"],removeAllLabels:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels"],removeAssignees:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees"],removeLabel:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}"],setLabels:["PUT /repos/{owner}/{repo}/issues/{issue_number}/labels"],unlock:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock"],update:["PATCH /repos/{owner}/{repo}/issues/{issue_number}"],updateComment:["PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}"],updateLabel:["PATCH /repos/{owner}/{repo}/labels/{name}"],updateMilestone:["PATCH /repos/{owner}/{repo}/milestones/{milestone_number}"]},licenses:{get:["GET /licenses/{license}"],getAllCommonlyUsed:["GET /licenses"],getForRepo:["GET /repos/{owner}/{repo}/license"]},markdown:{render:["POST /markdown"],renderRaw:["POST /markdown/raw",{headers:{"content-type":"text/plain; charset=utf-8"}}]},meta:{get:["GET /meta"],getAllVersions:["GET /versions"],getOctocat:["GET /octocat"],getZen:["GET /zen"],root:["GET /"]},migrations:{cancelImport:["DELETE /repos/{owner}/{repo}/import",{},{deprecated:"octokit.rest.migrations.cancelImport() is deprecated, see https://docs.github.com/rest/migrations/source-imports#cancel-an-import"}],deleteArchiveForAuthenticatedUser:["DELETE /user/migrations/{migration_id}/archive"],deleteArchiveForOrg:["DELETE /orgs/{org}/migrations/{migration_id}/archive"],downloadArchiveForOrg:["GET /orgs/{org}/migrations/{migration_id}/archive"],getArchiveForAuthenticatedUser:["GET /user/migrations/{migration_id}/archive"],getCommitAuthors:["GET /repos/{owner}/{repo}/import/authors",{},{deprecated:"octokit.rest.migrations.getCommitAuthors() is deprecated, see https://docs.github.com/rest/migrations/source-imports#get-commit-authors"}],getImportStatus:["GET /repos/{owner}/{repo}/import",{},{deprecated:"octokit.rest.migrations.getImportStatus() is deprecated, see https://docs.github.com/rest/migrations/source-imports#get-an-import-status"}],getLargeFiles:["GET /repos/{owner}/{repo}/import/large_files",{},{deprecated:"octokit.rest.migrations.getLargeFiles() is deprecated, see https://docs.github.com/rest/migrations/source-imports#get-large-files"}],getStatusForAuthenticatedUser:["GET /user/migrations/{migration_id}"],getStatusForOrg:["GET /orgs/{org}/migrations/{migration_id}"],listForAuthenticatedUser:["GET /user/migrations"],listForOrg:["GET /orgs/{org}/migrations"],listReposForAuthenticatedUser:["GET /user/migrations/{migration_id}/repositories"],listReposForOrg:["GET /orgs/{org}/migrations/{migration_id}/repositories"],listReposForUser:["GET /user/migrations/{migration_id}/repositories",{},{renamed:["migrations","listReposForAuthenticatedUser"]}],mapCommitAuthor:["PATCH /repos/{owner}/{repo}/import/authors/{author_id}",{},{deprecated:"octokit.rest.migrations.mapCommitAuthor() is deprecated, see https://docs.github.com/rest/migrations/source-imports#map-a-commit-author"}],setLfsPreference:["PATCH /repos/{owner}/{repo}/import/lfs",{},{deprecated:"octokit.rest.migrations.setLfsPreference() is deprecated, see https://docs.github.com/rest/migrations/source-imports#update-git-lfs-preference"}],startForAuthenticatedUser:["POST /user/migrations"],startForOrg:["POST /orgs/{org}/migrations"],startImport:["PUT /repos/{owner}/{repo}/import",{},{deprecated:"octokit.rest.migrations.startImport() is deprecated, see https://docs.github.com/rest/migrations/source-imports#start-an-import"}],unlockRepoForAuthenticatedUser:["DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock"],unlockRepoForOrg:["DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock"],updateImport:["PATCH /repos/{owner}/{repo}/import",{},{deprecated:"octokit.rest.migrations.updateImport() is deprecated, see https://docs.github.com/rest/migrations/source-imports#update-an-import"}]},oidc:{getOidcCustomSubTemplateForOrg:["GET /orgs/{org}/actions/oidc/customization/sub"],updateOidcCustomSubTemplateForOrg:["PUT /orgs/{org}/actions/oidc/customization/sub"]},orgs:{addSecurityManagerTeam:["PUT /orgs/{org}/security-managers/teams/{team_slug}"],assignTeamToOrgRole:["PUT /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}"],assignUserToOrgRole:["PUT /orgs/{org}/organization-roles/users/{username}/{role_id}"],blockUser:["PUT /orgs/{org}/blocks/{username}"],cancelInvitation:["DELETE /orgs/{org}/invitations/{invitation_id}"],checkBlockedUser:["GET /orgs/{org}/blocks/{username}"],checkMembershipForUser:["GET /orgs/{org}/members/{username}"],checkPublicMembershipForUser:["GET /orgs/{org}/public_members/{username}"],convertMemberToOutsideCollaborator:["PUT /orgs/{org}/outside_collaborators/{username}"],createCustomOrganizationRole:["POST /orgs/{org}/organization-roles"],createInvitation:["POST /orgs/{org}/invitations"],createOrUpdateCustomProperties:["PATCH /orgs/{org}/properties/schema"],createOrUpdateCustomPropertiesValuesForRepos:["PATCH /orgs/{org}/properties/values"],createOrUpdateCustomProperty:["PUT /orgs/{org}/properties/schema/{custom_property_name}"],createWebhook:["POST /orgs/{org}/hooks"],delete:["DELETE /orgs/{org}"],deleteCustomOrganizationRole:["DELETE /orgs/{org}/organization-roles/{role_id}"],deleteWebhook:["DELETE /orgs/{org}/hooks/{hook_id}"],enableOrDisableSecurityProductOnAllOrgRepos:["POST /orgs/{org}/{security_product}/{enablement}"],get:["GET /orgs/{org}"],getAllCustomProperties:["GET /orgs/{org}/properties/schema"],getCustomProperty:["GET /orgs/{org}/properties/schema/{custom_property_name}"],getMembershipForAuthenticatedUser:["GET /user/memberships/orgs/{org}"],getMembershipForUser:["GET /orgs/{org}/memberships/{username}"],getOrgRole:["GET /orgs/{org}/organization-roles/{role_id}"],getWebhook:["GET /orgs/{org}/hooks/{hook_id}"],getWebhookConfigForOrg:["GET /orgs/{org}/hooks/{hook_id}/config"],getWebhookDelivery:["GET /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}"],list:["GET /organizations"],listAppInstallations:["GET /orgs/{org}/installations"],listBlockedUsers:["GET /orgs/{org}/blocks"],listCustomPropertiesValuesForRepos:["GET /orgs/{org}/properties/values"],listFailedInvitations:["GET /orgs/{org}/failed_invitations"],listForAuthenticatedUser:["GET /user/orgs"],listForUser:["GET /users/{username}/orgs"],listInvitationTeams:["GET /orgs/{org}/invitations/{invitation_id}/teams"],listMembers:["GET /orgs/{org}/members"],listMembershipsForAuthenticatedUser:["GET /user/memberships/orgs"],listOrgRoleTeams:["GET /orgs/{org}/organization-roles/{role_id}/teams"],listOrgRoleUsers:["GET /orgs/{org}/organization-roles/{role_id}/users"],listOrgRoles:["GET /orgs/{org}/organization-roles"],listOrganizationFineGrainedPermissions:["GET /orgs/{org}/organization-fine-grained-permissions"],listOutsideCollaborators:["GET /orgs/{org}/outside_collaborators"],listPatGrantRepositories:["GET /orgs/{org}/personal-access-tokens/{pat_id}/repositories"],listPatGrantRequestRepositories:["GET /orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories"],listPatGrantRequests:["GET /orgs/{org}/personal-access-token-requests"],listPatGrants:["GET /orgs/{org}/personal-access-tokens"],listPendingInvitations:["GET /orgs/{org}/invitations"],listPublicMembers:["GET /orgs/{org}/public_members"],listSecurityManagerTeams:["GET /orgs/{org}/security-managers"],listWebhookDeliveries:["GET /orgs/{org}/hooks/{hook_id}/deliveries"],listWebhooks:["GET /orgs/{org}/hooks"],patchCustomOrganizationRole:["PATCH /orgs/{org}/organization-roles/{role_id}"],pingWebhook:["POST /orgs/{org}/hooks/{hook_id}/pings"],redeliverWebhookDelivery:["POST /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts"],removeCustomProperty:["DELETE /orgs/{org}/properties/schema/{custom_property_name}"],removeMember:["DELETE /orgs/{org}/members/{username}"],removeMembershipForUser:["DELETE /orgs/{org}/memberships/{username}"],removeOutsideCollaborator:["DELETE /orgs/{org}/outside_collaborators/{username}"],removePublicMembershipForAuthenticatedUser:["DELETE /orgs/{org}/public_members/{username}"],removeSecurityManagerTeam:["DELETE /orgs/{org}/security-managers/teams/{team_slug}"],reviewPatGrantRequest:["POST /orgs/{org}/personal-access-token-requests/{pat_request_id}"],reviewPatGrantRequestsInBulk:["POST /orgs/{org}/personal-access-token-requests"],revokeAllOrgRolesTeam:["DELETE /orgs/{org}/organization-roles/teams/{team_slug}"],revokeAllOrgRolesUser:["DELETE /orgs/{org}/organization-roles/users/{username}"],revokeOrgRoleTeam:["DELETE /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}"],revokeOrgRoleUser:["DELETE /orgs/{org}/organization-roles/users/{username}/{role_id}"],setMembershipForUser:["PUT /orgs/{org}/memberships/{username}"],setPublicMembershipForAuthenticatedUser:["PUT /orgs/{org}/public_members/{username}"],unblockUser:["DELETE /orgs/{org}/blocks/{username}"],update:["PATCH /orgs/{org}"],updateMembershipForAuthenticatedUser:["PATCH /user/memberships/orgs/{org}"],updatePatAccess:["POST /orgs/{org}/personal-access-tokens/{pat_id}"],updatePatAccesses:["POST /orgs/{org}/personal-access-tokens"],updateWebhook:["PATCH /orgs/{org}/hooks/{hook_id}"],updateWebhookConfigForOrg:["PATCH /orgs/{org}/hooks/{hook_id}/config"]},packages:{deletePackageForAuthenticatedUser:["DELETE /user/packages/{package_type}/{package_name}"],deletePackageForOrg:["DELETE /orgs/{org}/packages/{package_type}/{package_name}"],deletePackageForUser:["DELETE /users/{username}/packages/{package_type}/{package_name}"],deletePackageVersionForAuthenticatedUser:["DELETE /user/packages/{package_type}/{package_name}/versions/{package_version_id}"],deletePackageVersionForOrg:["DELETE /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}"],deletePackageVersionForUser:["DELETE /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}"],getAllPackageVersionsForAPackageOwnedByAnOrg:["GET /orgs/{org}/packages/{package_type}/{package_name}/versions",{},{renamed:["packages","getAllPackageVersionsForPackageOwnedByOrg"]}],getAllPackageVersionsForAPackageOwnedByTheAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}/versions",{},{renamed:["packages","getAllPackageVersionsForPackageOwnedByAuthenticatedUser"]}],getAllPackageVersionsForPackageOwnedByAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}/versions"],getAllPackageVersionsForPackageOwnedByOrg:["GET /orgs/{org}/packages/{package_type}/{package_name}/versions"],getAllPackageVersionsForPackageOwnedByUser:["GET /users/{username}/packages/{package_type}/{package_name}/versions"],getPackageForAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}"],getPackageForOrganization:["GET /orgs/{org}/packages/{package_type}/{package_name}"],getPackageForUser:["GET /users/{username}/packages/{package_type}/{package_name}"],getPackageVersionForAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}"],getPackageVersionForOrganization:["GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}"],getPackageVersionForUser:["GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}"],listDockerMigrationConflictingPackagesForAuthenticatedUser:["GET /user/docker/conflicts"],listDockerMigrationConflictingPackagesForOrganization:["GET /orgs/{org}/docker/conflicts"],listDockerMigrationConflictingPackagesForUser:["GET /users/{username}/docker/conflicts"],listPackagesForAuthenticatedUser:["GET /user/packages"],listPackagesForOrganization:["GET /orgs/{org}/packages"],listPackagesForUser:["GET /users/{username}/packages"],restorePackageForAuthenticatedUser:["POST /user/packages/{package_type}/{package_name}/restore{?token}"],restorePackageForOrg:["POST /orgs/{org}/packages/{package_type}/{package_name}/restore{?token}"],restorePackageForUser:["POST /users/{username}/packages/{package_type}/{package_name}/restore{?token}"],restorePackageVersionForAuthenticatedUser:["POST /user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"],restorePackageVersionForOrg:["POST /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"],restorePackageVersionForUser:["POST /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"]},projects:{addCollaborator:["PUT /projects/{project_id}/collaborators/{username}"],createCard:["POST /projects/columns/{column_id}/cards"],createColumn:["POST /projects/{project_id}/columns"],createForAuthenticatedUser:["POST /user/projects"],createForOrg:["POST /orgs/{org}/projects"],createForRepo:["POST /repos/{owner}/{repo}/projects"],delete:["DELETE /projects/{project_id}"],deleteCard:["DELETE /projects/columns/cards/{card_id}"],deleteColumn:["DELETE /projects/columns/{column_id}"],get:["GET /projects/{project_id}"],getCard:["GET /projects/columns/cards/{card_id}"],getColumn:["GET /projects/columns/{column_id}"],getPermissionForUser:["GET /projects/{project_id}/collaborators/{username}/permission"],listCards:["GET /projects/columns/{column_id}/cards"],listCollaborators:["GET /projects/{project_id}/collaborators"],listColumns:["GET /projects/{project_id}/columns"],listForOrg:["GET /orgs/{org}/projects"],listForRepo:["GET /repos/{owner}/{repo}/projects"],listForUser:["GET /users/{username}/projects"],moveCard:["POST /projects/columns/cards/{card_id}/moves"],moveColumn:["POST /projects/columns/{column_id}/moves"],removeCollaborator:["DELETE /projects/{project_id}/collaborators/{username}"],update:["PATCH /projects/{project_id}"],updateCard:["PATCH /projects/columns/cards/{card_id}"],updateColumn:["PATCH /projects/columns/{column_id}"]},pulls:{checkIfMerged:["GET /repos/{owner}/{repo}/pulls/{pull_number}/merge"],create:["POST /repos/{owner}/{repo}/pulls"],createReplyForReviewComment:["POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies"],createReview:["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews"],createReviewComment:["POST /repos/{owner}/{repo}/pulls/{pull_number}/comments"],deletePendingReview:["DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],deleteReviewComment:["DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}"],dismissReview:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals"],get:["GET /repos/{owner}/{repo}/pulls/{pull_number}"],getReview:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],getReviewComment:["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}"],list:["GET /repos/{owner}/{repo}/pulls"],listCommentsForReview:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments"],listCommits:["GET /repos/{owner}/{repo}/pulls/{pull_number}/commits"],listFiles:["GET /repos/{owner}/{repo}/pulls/{pull_number}/files"],listRequestedReviewers:["GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],listReviewComments:["GET /repos/{owner}/{repo}/pulls/{pull_number}/comments"],listReviewCommentsForRepo:["GET /repos/{owner}/{repo}/pulls/comments"],listReviews:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews"],merge:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge"],removeRequestedReviewers:["DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],requestReviewers:["POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],submitReview:["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events"],update:["PATCH /repos/{owner}/{repo}/pulls/{pull_number}"],updateBranch:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch"],updateReview:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],updateReviewComment:["PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}"]},rateLimit:{get:["GET /rate_limit"]},reactions:{createForCommitComment:["POST /repos/{owner}/{repo}/comments/{comment_id}/reactions"],createForIssue:["POST /repos/{owner}/{repo}/issues/{issue_number}/reactions"],createForIssueComment:["POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions"],createForPullRequestReviewComment:["POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions"],createForRelease:["POST /repos/{owner}/{repo}/releases/{release_id}/reactions"],createForTeamDiscussionCommentInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions"],createForTeamDiscussionInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions"],deleteForCommitComment:["DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}"],deleteForIssue:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}"],deleteForIssueComment:["DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}"],deleteForPullRequestComment:["DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}"],deleteForRelease:["DELETE /repos/{owner}/{repo}/releases/{release_id}/reactions/{reaction_id}"],deleteForTeamDiscussion:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}"],deleteForTeamDiscussionComment:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}"],listForCommitComment:["GET /repos/{owner}/{repo}/comments/{comment_id}/reactions"],listForIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/reactions"],listForIssueComment:["GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions"],listForPullRequestReviewComment:["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions"],listForRelease:["GET /repos/{owner}/{repo}/releases/{release_id}/reactions"],listForTeamDiscussionCommentInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions"],listForTeamDiscussionInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions"]},repos:{acceptInvitation:["PATCH /user/repository_invitations/{invitation_id}",{},{renamed:["repos","acceptInvitationForAuthenticatedUser"]}],acceptInvitationForAuthenticatedUser:["PATCH /user/repository_invitations/{invitation_id}"],addAppAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],addCollaborator:["PUT /repos/{owner}/{repo}/collaborators/{username}"],addStatusCheckContexts:["POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],addTeamAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],addUserAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],cancelPagesDeployment:["POST /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}/cancel"],checkAutomatedSecurityFixes:["GET /repos/{owner}/{repo}/automated-security-fixes"],checkCollaborator:["GET /repos/{owner}/{repo}/collaborators/{username}"],checkVulnerabilityAlerts:["GET /repos/{owner}/{repo}/vulnerability-alerts"],codeownersErrors:["GET /repos/{owner}/{repo}/codeowners/errors"],compareCommits:["GET /repos/{owner}/{repo}/compare/{base}...{head}"],compareCommitsWithBasehead:["GET /repos/{owner}/{repo}/compare/{basehead}"],createAutolink:["POST /repos/{owner}/{repo}/autolinks"],createCommitComment:["POST /repos/{owner}/{repo}/commits/{commit_sha}/comments"],createCommitSignatureProtection:["POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"],createCommitStatus:["POST /repos/{owner}/{repo}/statuses/{sha}"],createDeployKey:["POST /repos/{owner}/{repo}/keys"],createDeployment:["POST /repos/{owner}/{repo}/deployments"],createDeploymentBranchPolicy:["POST /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies"],createDeploymentProtectionRule:["POST /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules"],createDeploymentStatus:["POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"],createDispatchEvent:["POST /repos/{owner}/{repo}/dispatches"],createForAuthenticatedUser:["POST /user/repos"],createFork:["POST /repos/{owner}/{repo}/forks"],createInOrg:["POST /orgs/{org}/repos"],createOrUpdateCustomPropertiesValues:["PATCH /repos/{owner}/{repo}/properties/values"],createOrUpdateEnvironment:["PUT /repos/{owner}/{repo}/environments/{environment_name}"],createOrUpdateFileContents:["PUT /repos/{owner}/{repo}/contents/{path}"],createOrgRuleset:["POST /orgs/{org}/rulesets"],createPagesDeployment:["POST /repos/{owner}/{repo}/pages/deployments"],createPagesSite:["POST /repos/{owner}/{repo}/pages"],createRelease:["POST /repos/{owner}/{repo}/releases"],createRepoRuleset:["POST /repos/{owner}/{repo}/rulesets"],createTagProtection:["POST /repos/{owner}/{repo}/tags/protection"],createUsingTemplate:["POST /repos/{template_owner}/{template_repo}/generate"],createWebhook:["POST /repos/{owner}/{repo}/hooks"],declineInvitation:["DELETE /user/repository_invitations/{invitation_id}",{},{renamed:["repos","declineInvitationForAuthenticatedUser"]}],declineInvitationForAuthenticatedUser:["DELETE /user/repository_invitations/{invitation_id}"],delete:["DELETE /repos/{owner}/{repo}"],deleteAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"],deleteAdminBranchProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],deleteAnEnvironment:["DELETE /repos/{owner}/{repo}/environments/{environment_name}"],deleteAutolink:["DELETE /repos/{owner}/{repo}/autolinks/{autolink_id}"],deleteBranchProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection"],deleteCommitComment:["DELETE /repos/{owner}/{repo}/comments/{comment_id}"],deleteCommitSignatureProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"],deleteDeployKey:["DELETE /repos/{owner}/{repo}/keys/{key_id}"],deleteDeployment:["DELETE /repos/{owner}/{repo}/deployments/{deployment_id}"],deleteDeploymentBranchPolicy:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"],deleteFile:["DELETE /repos/{owner}/{repo}/contents/{path}"],deleteInvitation:["DELETE /repos/{owner}/{repo}/invitations/{invitation_id}"],deleteOrgRuleset:["DELETE /orgs/{org}/rulesets/{ruleset_id}"],deletePagesSite:["DELETE /repos/{owner}/{repo}/pages"],deletePullRequestReviewProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],deleteRelease:["DELETE /repos/{owner}/{repo}/releases/{release_id}"],deleteReleaseAsset:["DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}"],deleteRepoRuleset:["DELETE /repos/{owner}/{repo}/rulesets/{ruleset_id}"],deleteTagProtection:["DELETE /repos/{owner}/{repo}/tags/protection/{tag_protection_id}"],deleteWebhook:["DELETE /repos/{owner}/{repo}/hooks/{hook_id}"],disableAutomatedSecurityFixes:["DELETE /repos/{owner}/{repo}/automated-security-fixes"],disableDeploymentProtectionRule:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}"],disablePrivateVulnerabilityReporting:["DELETE /repos/{owner}/{repo}/private-vulnerability-reporting"],disableVulnerabilityAlerts:["DELETE /repos/{owner}/{repo}/vulnerability-alerts"],downloadArchive:["GET /repos/{owner}/{repo}/zipball/{ref}",{},{renamed:["repos","downloadZipballArchive"]}],downloadTarballArchive:["GET /repos/{owner}/{repo}/tarball/{ref}"],downloadZipballArchive:["GET /repos/{owner}/{repo}/zipball/{ref}"],enableAutomatedSecurityFixes:["PUT /repos/{owner}/{repo}/automated-security-fixes"],enablePrivateVulnerabilityReporting:["PUT /repos/{owner}/{repo}/private-vulnerability-reporting"],enableVulnerabilityAlerts:["PUT /repos/{owner}/{repo}/vulnerability-alerts"],generateReleaseNotes:["POST /repos/{owner}/{repo}/releases/generate-notes"],get:["GET /repos/{owner}/{repo}"],getAccessRestrictions:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"],getAdminBranchProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],getAllDeploymentProtectionRules:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules"],getAllEnvironments:["GET /repos/{owner}/{repo}/environments"],getAllStatusCheckContexts:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts"],getAllTopics:["GET /repos/{owner}/{repo}/topics"],getAppsWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps"],getAutolink:["GET /repos/{owner}/{repo}/autolinks/{autolink_id}"],getBranch:["GET /repos/{owner}/{repo}/branches/{branch}"],getBranchProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection"],getBranchRules:["GET /repos/{owner}/{repo}/rules/branches/{branch}"],getClones:["GET /repos/{owner}/{repo}/traffic/clones"],getCodeFrequencyStats:["GET /repos/{owner}/{repo}/stats/code_frequency"],getCollaboratorPermissionLevel:["GET /repos/{owner}/{repo}/collaborators/{username}/permission"],getCombinedStatusForRef:["GET /repos/{owner}/{repo}/commits/{ref}/status"],getCommit:["GET /repos/{owner}/{repo}/commits/{ref}"],getCommitActivityStats:["GET /repos/{owner}/{repo}/stats/commit_activity"],getCommitComment:["GET /repos/{owner}/{repo}/comments/{comment_id}"],getCommitSignatureProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"],getCommunityProfileMetrics:["GET /repos/{owner}/{repo}/community/profile"],getContent:["GET /repos/{owner}/{repo}/contents/{path}"],getContributorsStats:["GET /repos/{owner}/{repo}/stats/contributors"],getCustomDeploymentProtectionRule:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}"],getCustomPropertiesValues:["GET /repos/{owner}/{repo}/properties/values"],getDeployKey:["GET /repos/{owner}/{repo}/keys/{key_id}"],getDeployment:["GET /repos/{owner}/{repo}/deployments/{deployment_id}"],getDeploymentBranchPolicy:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"],getDeploymentStatus:["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}"],getEnvironment:["GET /repos/{owner}/{repo}/environments/{environment_name}"],getLatestPagesBuild:["GET /repos/{owner}/{repo}/pages/builds/latest"],getLatestRelease:["GET /repos/{owner}/{repo}/releases/latest"],getOrgRuleSuite:["GET /orgs/{org}/rulesets/rule-suites/{rule_suite_id}"],getOrgRuleSuites:["GET /orgs/{org}/rulesets/rule-suites"],getOrgRuleset:["GET /orgs/{org}/rulesets/{ruleset_id}"],getOrgRulesets:["GET /orgs/{org}/rulesets"],getPages:["GET /repos/{owner}/{repo}/pages"],getPagesBuild:["GET /repos/{owner}/{repo}/pages/builds/{build_id}"],getPagesDeployment:["GET /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}"],getPagesHealthCheck:["GET /repos/{owner}/{repo}/pages/health"],getParticipationStats:["GET /repos/{owner}/{repo}/stats/participation"],getPullRequestReviewProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],getPunchCardStats:["GET /repos/{owner}/{repo}/stats/punch_card"],getReadme:["GET /repos/{owner}/{repo}/readme"],getReadmeInDirectory:["GET /repos/{owner}/{repo}/readme/{dir}"],getRelease:["GET /repos/{owner}/{repo}/releases/{release_id}"],getReleaseAsset:["GET /repos/{owner}/{repo}/releases/assets/{asset_id}"],getReleaseByTag:["GET /repos/{owner}/{repo}/releases/tags/{tag}"],getRepoRuleSuite:["GET /repos/{owner}/{repo}/rulesets/rule-suites/{rule_suite_id}"],getRepoRuleSuites:["GET /repos/{owner}/{repo}/rulesets/rule-suites"],getRepoRuleset:["GET /repos/{owner}/{repo}/rulesets/{ruleset_id}"],getRepoRulesets:["GET /repos/{owner}/{repo}/rulesets"],getStatusChecksProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],getTeamsWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams"],getTopPaths:["GET /repos/{owner}/{repo}/traffic/popular/paths"],getTopReferrers:["GET /repos/{owner}/{repo}/traffic/popular/referrers"],getUsersWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users"],getViews:["GET /repos/{owner}/{repo}/traffic/views"],getWebhook:["GET /repos/{owner}/{repo}/hooks/{hook_id}"],getWebhookConfigForRepo:["GET /repos/{owner}/{repo}/hooks/{hook_id}/config"],getWebhookDelivery:["GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}"],listActivities:["GET /repos/{owner}/{repo}/activity"],listAutolinks:["GET /repos/{owner}/{repo}/autolinks"],listBranches:["GET /repos/{owner}/{repo}/branches"],listBranchesForHeadCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head"],listCollaborators:["GET /repos/{owner}/{repo}/collaborators"],listCommentsForCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/comments"],listCommitCommentsForRepo:["GET /repos/{owner}/{repo}/comments"],listCommitStatusesForRef:["GET /repos/{owner}/{repo}/commits/{ref}/statuses"],listCommits:["GET /repos/{owner}/{repo}/commits"],listContributors:["GET /repos/{owner}/{repo}/contributors"],listCustomDeploymentRuleIntegrations:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/apps"],listDeployKeys:["GET /repos/{owner}/{repo}/keys"],listDeploymentBranchPolicies:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies"],listDeploymentStatuses:["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"],listDeployments:["GET /repos/{owner}/{repo}/deployments"],listForAuthenticatedUser:["GET /user/repos"],listForOrg:["GET /orgs/{org}/repos"],listForUser:["GET /users/{username}/repos"],listForks:["GET /repos/{owner}/{repo}/forks"],listInvitations:["GET /repos/{owner}/{repo}/invitations"],listInvitationsForAuthenticatedUser:["GET /user/repository_invitations"],listLanguages:["GET /repos/{owner}/{repo}/languages"],listPagesBuilds:["GET /repos/{owner}/{repo}/pages/builds"],listPublic:["GET /repositories"],listPullRequestsAssociatedWithCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls"],listReleaseAssets:["GET /repos/{owner}/{repo}/releases/{release_id}/assets"],listReleases:["GET /repos/{owner}/{repo}/releases"],listTagProtection:["GET /repos/{owner}/{repo}/tags/protection"],listTags:["GET /repos/{owner}/{repo}/tags"],listTeams:["GET /repos/{owner}/{repo}/teams"],listWebhookDeliveries:["GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries"],listWebhooks:["GET /repos/{owner}/{repo}/hooks"],merge:["POST /repos/{owner}/{repo}/merges"],mergeUpstream:["POST /repos/{owner}/{repo}/merge-upstream"],pingWebhook:["POST /repos/{owner}/{repo}/hooks/{hook_id}/pings"],redeliverWebhookDelivery:["POST /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts"],removeAppAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],removeCollaborator:["DELETE /repos/{owner}/{repo}/collaborators/{username}"],removeStatusCheckContexts:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],removeStatusCheckProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],removeTeamAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],removeUserAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],renameBranch:["POST /repos/{owner}/{repo}/branches/{branch}/rename"],replaceAllTopics:["PUT /repos/{owner}/{repo}/topics"],requestPagesBuild:["POST /repos/{owner}/{repo}/pages/builds"],setAdminBranchProtection:["POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],setAppAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],setStatusCheckContexts:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],setTeamAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],setUserAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],testPushWebhook:["POST /repos/{owner}/{repo}/hooks/{hook_id}/tests"],transfer:["POST /repos/{owner}/{repo}/transfer"],update:["PATCH /repos/{owner}/{repo}"],updateBranchProtection:["PUT /repos/{owner}/{repo}/branches/{branch}/protection"],updateCommitComment:["PATCH /repos/{owner}/{repo}/comments/{comment_id}"],updateDeploymentBranchPolicy:["PUT /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"],updateInformationAboutPagesSite:["PUT /repos/{owner}/{repo}/pages"],updateInvitation:["PATCH /repos/{owner}/{repo}/invitations/{invitation_id}"],updateOrgRuleset:["PUT /orgs/{org}/rulesets/{ruleset_id}"],updatePullRequestReviewProtection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],updateRelease:["PATCH /repos/{owner}/{repo}/releases/{release_id}"],updateReleaseAsset:["PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}"],updateRepoRuleset:["PUT /repos/{owner}/{repo}/rulesets/{ruleset_id}"],updateStatusCheckPotection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks",{},{renamed:["repos","updateStatusCheckProtection"]}],updateStatusCheckProtection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],updateWebhook:["PATCH /repos/{owner}/{repo}/hooks/{hook_id}"],updateWebhookConfigForRepo:["PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config"],uploadReleaseAsset:["POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}",{baseUrl:"https://uploads.github.com"}]},search:{code:["GET /search/code"],commits:["GET /search/commits"],issuesAndPullRequests:["GET /search/issues"],labels:["GET /search/labels"],repos:["GET /search/repositories"],topics:["GET /search/topics"],users:["GET /search/users"]},secretScanning:{getAlert:["GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"],listAlertsForEnterprise:["GET /enterprises/{enterprise}/secret-scanning/alerts"],listAlertsForOrg:["GET /orgs/{org}/secret-scanning/alerts"],listAlertsForRepo:["GET /repos/{owner}/{repo}/secret-scanning/alerts"],listLocationsForAlert:["GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations"],updateAlert:["PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"]},securityAdvisories:{createFork:["POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/forks"],createPrivateVulnerabilityReport:["POST /repos/{owner}/{repo}/security-advisories/reports"],createRepositoryAdvisory:["POST /repos/{owner}/{repo}/security-advisories"],createRepositoryAdvisoryCveRequest:["POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/cve"],getGlobalAdvisory:["GET /advisories/{ghsa_id}"],getRepositoryAdvisory:["GET /repos/{owner}/{repo}/security-advisories/{ghsa_id}"],listGlobalAdvisories:["GET /advisories"],listOrgRepositoryAdvisories:["GET /orgs/{org}/security-advisories"],listRepositoryAdvisories:["GET /repos/{owner}/{repo}/security-advisories"],updateRepositoryAdvisory:["PATCH /repos/{owner}/{repo}/security-advisories/{ghsa_id}"]},teams:{addOrUpdateMembershipForUserInOrg:["PUT /orgs/{org}/teams/{team_slug}/memberships/{username}"],addOrUpdateProjectPermissionsInOrg:["PUT /orgs/{org}/teams/{team_slug}/projects/{project_id}"],addOrUpdateRepoPermissionsInOrg:["PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],checkPermissionsForProjectInOrg:["GET /orgs/{org}/teams/{team_slug}/projects/{project_id}"],checkPermissionsForRepoInOrg:["GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],create:["POST /orgs/{org}/teams"],createDiscussionCommentInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"],createDiscussionInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions"],deleteDiscussionCommentInOrg:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],deleteDiscussionInOrg:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],deleteInOrg:["DELETE /orgs/{org}/teams/{team_slug}"],getByName:["GET /orgs/{org}/teams/{team_slug}"],getDiscussionCommentInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],getDiscussionInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],getMembershipForUserInOrg:["GET /orgs/{org}/teams/{team_slug}/memberships/{username}"],list:["GET /orgs/{org}/teams"],listChildInOrg:["GET /orgs/{org}/teams/{team_slug}/teams"],listDiscussionCommentsInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"],listDiscussionsInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions"],listForAuthenticatedUser:["GET /user/teams"],listMembersInOrg:["GET /orgs/{org}/teams/{team_slug}/members"],listPendingInvitationsInOrg:["GET /orgs/{org}/teams/{team_slug}/invitations"],listProjectsInOrg:["GET /orgs/{org}/teams/{team_slug}/projects"],listReposInOrg:["GET /orgs/{org}/teams/{team_slug}/repos"],removeMembershipForUserInOrg:["DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}"],removeProjectInOrg:["DELETE /orgs/{org}/teams/{team_slug}/projects/{project_id}"],removeRepoInOrg:["DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],updateDiscussionCommentInOrg:["PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],updateDiscussionInOrg:["PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],updateInOrg:["PATCH /orgs/{org}/teams/{team_slug}"]},users:{addEmailForAuthenticated:["POST /user/emails",{},{renamed:["users","addEmailForAuthenticatedUser"]}],addEmailForAuthenticatedUser:["POST /user/emails"],addSocialAccountForAuthenticatedUser:["POST /user/social_accounts"],block:["PUT /user/blocks/{username}"],checkBlocked:["GET /user/blocks/{username}"],checkFollowingForUser:["GET /users/{username}/following/{target_user}"],checkPersonIsFollowedByAuthenticated:["GET /user/following/{username}"],createGpgKeyForAuthenticated:["POST /user/gpg_keys",{},{renamed:["users","createGpgKeyForAuthenticatedUser"]}],createGpgKeyForAuthenticatedUser:["POST /user/gpg_keys"],createPublicSshKeyForAuthenticated:["POST /user/keys",{},{renamed:["users","createPublicSshKeyForAuthenticatedUser"]}],createPublicSshKeyForAuthenticatedUser:["POST /user/keys"],createSshSigningKeyForAuthenticatedUser:["POST /user/ssh_signing_keys"],deleteEmailForAuthenticated:["DELETE /user/emails",{},{renamed:["users","deleteEmailForAuthenticatedUser"]}],deleteEmailForAuthenticatedUser:["DELETE /user/emails"],deleteGpgKeyForAuthenticated:["DELETE /user/gpg_keys/{gpg_key_id}",{},{renamed:["users","deleteGpgKeyForAuthenticatedUser"]}],deleteGpgKeyForAuthenticatedUser:["DELETE /user/gpg_keys/{gpg_key_id}"],deletePublicSshKeyForAuthenticated:["DELETE /user/keys/{key_id}",{},{renamed:["users","deletePublicSshKeyForAuthenticatedUser"]}],deletePublicSshKeyForAuthenticatedUser:["DELETE /user/keys/{key_id}"],deleteSocialAccountForAuthenticatedUser:["DELETE /user/social_accounts"],deleteSshSigningKeyForAuthenticatedUser:["DELETE /user/ssh_signing_keys/{ssh_signing_key_id}"],follow:["PUT /user/following/{username}"],getAuthenticated:["GET /user"],getByUsername:["GET /users/{username}"],getContextForUser:["GET /users/{username}/hovercard"],getGpgKeyForAuthenticated:["GET /user/gpg_keys/{gpg_key_id}",{},{renamed:["users","getGpgKeyForAuthenticatedUser"]}],getGpgKeyForAuthenticatedUser:["GET /user/gpg_keys/{gpg_key_id}"],getPublicSshKeyForAuthenticated:["GET /user/keys/{key_id}",{},{renamed:["users","getPublicSshKeyForAuthenticatedUser"]}],getPublicSshKeyForAuthenticatedUser:["GET /user/keys/{key_id}"],getSshSigningKeyForAuthenticatedUser:["GET /user/ssh_signing_keys/{ssh_signing_key_id}"],list:["GET /users"],listBlockedByAuthenticated:["GET /user/blocks",{},{renamed:["users","listBlockedByAuthenticatedUser"]}],listBlockedByAuthenticatedUser:["GET /user/blocks"],listEmailsForAuthenticated:["GET /user/emails",{},{renamed:["users","listEmailsForAuthenticatedUser"]}],listEmailsForAuthenticatedUser:["GET /user/emails"],listFollowedByAuthenticated:["GET /user/following",{},{renamed:["users","listFollowedByAuthenticatedUser"]}],listFollowedByAuthenticatedUser:["GET /user/following"],listFollowersForAuthenticatedUser:["GET /user/followers"],listFollowersForUser:["GET /users/{username}/followers"],listFollowingForUser:["GET /users/{username}/following"],listGpgKeysForAuthenticated:["GET /user/gpg_keys",{},{renamed:["users","listGpgKeysForAuthenticatedUser"]}],listGpgKeysForAuthenticatedUser:["GET /user/gpg_keys"],listGpgKeysForUser:["GET /users/{username}/gpg_keys"],listPublicEmailsForAuthenticated:["GET /user/public_emails",{},{renamed:["users","listPublicEmailsForAuthenticatedUser"]}],listPublicEmailsForAuthenticatedUser:["GET /user/public_emails"],listPublicKeysForUser:["GET /users/{username}/keys"],listPublicSshKeysForAuthenticated:["GET /user/keys",{},{renamed:["users","listPublicSshKeysForAuthenticatedUser"]}],listPublicSshKeysForAuthenticatedUser:["GET /user/keys"],listSocialAccountsForAuthenticatedUser:["GET /user/social_accounts"],listSocialAccountsForUser:["GET /users/{username}/social_accounts"],listSshSigningKeysForAuthenticatedUser:["GET /user/ssh_signing_keys"],listSshSigningKeysForUser:["GET /users/{username}/ssh_signing_keys"],setPrimaryEmailVisibilityForAuthenticated:["PATCH /user/email/visibility",{},{renamed:["users","setPrimaryEmailVisibilityForAuthenticatedUser"]}],setPrimaryEmailVisibilityForAuthenticatedUser:["PATCH /user/email/visibility"],unblock:["DELETE /user/blocks/{username}"],unfollow:["DELETE /user/following/{username}"],updateAuthenticated:["PATCH /user"]}};var Wt=Pt;var Ar=new Map;for(const[a,C]of Object.entries(Wt)){for(const[q,re]of Object.entries(C)){const[C,ae,Ue]=re;const[lt,Pt]=C.split(/ /);const Wt=Object.assign({method:lt,url:Pt},ae);if(!Ar.has(a)){Ar.set(a,new Map)}Ar.get(a).set(q,{scope:a,methodName:q,endpointDefaults:Wt,decorations:Ue})}}var Er={has({scope:a},C){return Ar.get(a).has(C)},getOwnPropertyDescriptor(a,C){return{value:this.get(a,C),configurable:true,writable:true,enumerable:true}},defineProperty(a,C,q){Object.defineProperty(a.cache,C,q);return true},deleteProperty(a,C){delete a.cache[C];return true},ownKeys({scope:a}){return[...Ar.get(a).keys()]},set(a,C,q){return a.cache[C]=q},get({octokit:a,scope:C,cache:q},re){if(q[re]){return q[re]}const ae=Ar.get(C).get(re);if(!ae){return void 0}const{endpointDefaults:Ue,decorations:lt}=ae;if(lt){q[re]=decorate(a,C,re,Ue,lt)}else{q[re]=a.request.defaults(Ue)}return q[re]}};function endpointsToMethods(a){const C={};for(const q of Ar.keys()){C[q]=new Proxy({octokit:a,scope:q,cache:{}},Er)}return C}function decorate(a,C,q,re,ae){const Ue=a.request.defaults(re);function withDecorations(...re){let lt=Ue.endpoint.merge(...re);if(ae.mapToData){lt=Object.assign({},lt,{data:lt[ae.mapToData],[ae.mapToData]:void 0});return Ue(lt)}if(ae.renamed){const[re,Ue]=ae.renamed;a.log.warn(`octokit.${C}.${q}() has been renamed to octokit.${re}.${Ue}()`)}if(ae.deprecated){a.log.warn(ae.deprecated)}if(ae.renamedParameters){const lt=Ue.endpoint.merge(...re);for(const[re,Ue]of Object.entries(ae.renamedParameters)){if(re in lt){a.log.warn(`"${re}" parameter is deprecated for "octokit.${C}.${q}()". Use "${Ue}" instead`);if(!(Ue in lt)){lt[Ue]=lt[re]}delete lt[re]}}return Ue(lt)}return Ue(...re)}return Object.assign(withDecorations,Ue)}function restEndpointMethods(a){const C=endpointsToMethods(a);return{rest:C}}restEndpointMethods.VERSION=lt;function legacyRestEndpointMethods(a){const C=endpointsToMethods(a);return{...C,rest:C}}legacyRestEndpointMethods.VERSION=lt;0&&0},3708:(a,C,q)=>{var re=Object.create;var ae=Object.defineProperty;var Ue=Object.getOwnPropertyDescriptor;var lt=Object.getOwnPropertyNames;var Pt=Object.getPrototypeOf;var Wt=Object.prototype.hasOwnProperty;var __export=(a,C)=>{for(var q in C)ae(a,q,{get:C[q],enumerable:true})};var __copyProps=(a,C,q,re)=>{if(C&&typeof C==="object"||typeof C==="function"){for(let Pt of lt(C))if(!Wt.call(a,Pt)&&Pt!==q)ae(a,Pt,{get:()=>C[Pt],enumerable:!(re=Ue(C,Pt))||re.enumerable})}return a};var __toESM=(a,C,q)=>(q=a!=null?re(Pt(a)):{},__copyProps(C||!a||!a.__esModule?ae(q,"default",{value:a,enumerable:true}):q,a));var __toCommonJS=a=>__copyProps(ae({},"__esModule",{value:true}),a);var Ar={};__export(Ar,{RequestError:()=>Dr});a.exports=__toCommonJS(Ar);var Er=q(4150);var Br=__toESM(q(5560));var Qr=(0,Br.default)((a=>console.warn(a)));var Ir=(0,Br.default)((a=>console.warn(a)));var Dr=class extends Error{constructor(a,C,q){super(a);if(Error.captureStackTrace){Error.captureStackTrace(this,this.constructor)}this.name="HttpError";this.status=C;let re;if("headers"in q&&typeof q.headers!=="undefined"){re=q.headers}if("response"in q){this.response=q.response;re=q.response.headers}const ae=Object.assign({},q.request);if(q.request.headers.authorization){ae.headers=Object.assign({},q.request.headers,{authorization:q.request.headers.authorization.replace(/(?{var re=Object.defineProperty;var ae=Object.getOwnPropertyDescriptor;var Ue=Object.getOwnPropertyNames;var lt=Object.prototype.hasOwnProperty;var __export=(a,C)=>{for(var q in C)re(a,q,{get:C[q],enumerable:true})};var __copyProps=(a,C,q,Pt)=>{if(C&&typeof C==="object"||typeof C==="function"){for(let Wt of Ue(C))if(!lt.call(a,Wt)&&Wt!==q)re(a,Wt,{get:()=>C[Wt],enumerable:!(Pt=ae(C,Wt))||Pt.enumerable})}return a};var __toCommonJS=a=>__copyProps(re({},"__esModule",{value:true}),a);var Pt={};__export(Pt,{request:()=>Qr});a.exports=__toCommonJS(Pt);var Wt=q(4471);var Ar=q(3843);var Er="8.4.1";function isPlainObject(a){if(typeof a!=="object"||a===null)return false;if(Object.prototype.toString.call(a)!=="[object Object]")return false;const C=Object.getPrototypeOf(a);if(C===null)return true;const q=Object.prototype.hasOwnProperty.call(C,"constructor")&&C.constructor;return typeof q==="function"&&q instanceof q&&Function.prototype.call(q)===Function.prototype.call(a)}var Br=q(3708);function getBufferResponse(a){return a.arrayBuffer()}function fetchWrapper(a){var C,q,re,ae;const Ue=a.request&&a.request.log?a.request.log:console;const lt=((C=a.request)==null?void 0:C.parseSuccessResponseBody)!==false;if(isPlainObject(a.body)||Array.isArray(a.body)){a.body=JSON.stringify(a.body)}let Pt={};let Wt;let Ar;let{fetch:Er}=globalThis;if((q=a.request)==null?void 0:q.fetch){Er=a.request.fetch}if(!Er){throw new Error("fetch is not set. Please pass a fetch implementation as new Octokit({ request: { fetch }}). Learn more at https://github.com/octokit/octokit.js/#fetch-missing")}return Er(a.url,{method:a.method,body:a.body,redirect:(re=a.request)==null?void 0:re.redirect,headers:a.headers,signal:(ae=a.request)==null?void 0:ae.signal,...a.body&&{duplex:"half"}}).then((async C=>{Ar=C.url;Wt=C.status;for(const a of C.headers){Pt[a[0]]=a[1]}if("deprecation"in Pt){const C=Pt.link&&Pt.link.match(/<([^<>]+)>; rel="deprecation"/);const q=C&&C.pop();Ue.warn(`[@octokit/request] "${a.method} ${a.url}" is deprecated. It is scheduled to be removed on ${Pt.sunset}${q?`. See ${q}`:""}`)}if(Wt===204||Wt===205){return}if(a.method==="HEAD"){if(Wt<400){return}throw new Br.RequestError(C.statusText,Wt,{response:{url:Ar,status:Wt,headers:Pt,data:void 0},request:a})}if(Wt===304){throw new Br.RequestError("Not modified",Wt,{response:{url:Ar,status:Wt,headers:Pt,data:await getResponseData(C)},request:a})}if(Wt>=400){const q=await getResponseData(C);const re=new Br.RequestError(toErrorMessage(q),Wt,{response:{url:Ar,status:Wt,headers:Pt,data:q},request:a});throw re}return lt?await getResponseData(C):C.body})).then((a=>({status:Wt,url:Ar,headers:Pt,data:a}))).catch((C=>{if(C instanceof Br.RequestError)throw C;else if(C.name==="AbortError")throw C;let q=C.message;if(C.name==="TypeError"&&"cause"in C){if(C.cause instanceof Error){q=C.cause.message}else if(typeof C.cause==="string"){q=C.cause}}throw new Br.RequestError(q,500,{request:a})}))}async function getResponseData(a){const C=a.headers.get("content-type");if(/application\/json/.test(C)){return a.json().catch((()=>a.text())).catch((()=>""))}if(!C||/^text\/|charset=utf-8$/.test(C)){return a.text()}return getBufferResponse(a)}function toErrorMessage(a){if(typeof a==="string")return a;let C;if("documentation_url"in a){C=` - ${a.documentation_url}`}else{C=""}if("message"in a){if(Array.isArray(a.errors)){return`${a.message}: ${a.errors.map(JSON.stringify).join(", ")}${C}`}return`${a.message}${C}`}return`Unknown error: ${JSON.stringify(a)}`}function withDefaults(a,C){const q=a.defaults(C);const newApi=function(a,C){const re=q.merge(a,C);if(!re.request||!re.request.hook){return fetchWrapper(q.parse(re))}const request2=(a,C)=>fetchWrapper(q.parse(q.merge(a,C)));Object.assign(request2,{endpoint:q,defaults:withDefaults.bind(null,q)});return re.request.hook(request2,re)};return Object.assign(newApi,{endpoint:q,defaults:withDefaults.bind(null,q)})}var Qr=withDefaults(Wt.endpoint,{headers:{"user-agent":`octokit-request.js/${Er} ${(0,Ar.getUserAgent)()}`}});0&&0},7413:(a,C,q)=>{Object.defineProperty(C,"__esModule",{value:true});var re=q(6577);class AbortSignal extends re.EventTarget{constructor(){super();throw new TypeError("AbortSignal cannot be constructed directly")}get aborted(){const a=ae.get(this);if(typeof a!=="boolean"){throw new TypeError(`Expected 'this' to be an 'AbortSignal' object, but got ${this===null?"null":typeof this}`)}return a}}re.defineEventAttribute(AbortSignal.prototype,"abort");function createAbortSignal(){const a=Object.create(AbortSignal.prototype);re.EventTarget.call(a);ae.set(a,false);return a}function abortSignal(a){if(ae.get(a)!==false){return}ae.set(a,true);a.dispatchEvent({type:"abort"})}const ae=new WeakMap;Object.defineProperties(AbortSignal.prototype,{aborted:{enumerable:true}});if(typeof Symbol==="function"&&typeof Symbol.toStringTag==="symbol"){Object.defineProperty(AbortSignal.prototype,Symbol.toStringTag,{configurable:true,value:"AbortSignal"})}class AbortController{constructor(){Ue.set(this,createAbortSignal())}get signal(){return getSignal(this)}abort(){abortSignal(getSignal(this))}}const Ue=new WeakMap;function getSignal(a){const C=Ue.get(a);if(C==null){throw new TypeError(`Expected 'this' to be an 'AbortController' object, but got ${a===null?"null":typeof a}`)}return C}Object.defineProperties(AbortController.prototype,{signal:{enumerable:true},abort:{enumerable:true}});if(typeof Symbol==="function"&&typeof Symbol.toStringTag==="symbol"){Object.defineProperty(AbortController.prototype,Symbol.toStringTag,{configurable:true,value:"AbortController"})}C.AbortController=AbortController;C.AbortSignal=AbortSignal;C["default"]=AbortController;a.exports=AbortController;a.exports.AbortController=a.exports["default"]=AbortController;a.exports.AbortSignal=AbortSignal},3873:(a,C,q)=>{const re=q(2532);a.exports=re;a.exports.HttpAgent=re;a.exports.HttpsAgent=q(414);a.exports.constants=q(6160)},2532:(a,C,q)=>{const re=q(8611).Agent;const ae=q(3724);const Ue=q(9023).debuglog("agentkeepalive");const{INIT_SOCKET:lt,CURRENT_ID:Pt,CREATE_ID:Wt,SOCKET_CREATED_TIME:Ar,SOCKET_NAME:Er,SOCKET_REQUEST_COUNT:Br,SOCKET_REQUEST_FINISHED_COUNT:Qr}=q(6160);let Ir=1;const Dr=parseInt(process.version.split(".",1)[0].substring(1));if(Dr>=11&&Dr<=12){Ir=2}else if(Dr>=13){Ir=3}function deprecate(a){console.log("[agentkeepalive:deprecated] %s",a)}class Agent extends re{constructor(a){a=a||{};a.keepAlive=a.keepAlive!==false;if(a.freeSocketTimeout===undefined){a.freeSocketTimeout=4e3}if(a.keepAliveTimeout){deprecate("options.keepAliveTimeout is deprecated, please use options.freeSocketTimeout instead");a.freeSocketTimeout=a.keepAliveTimeout;delete a.keepAliveTimeout}if(a.freeSocketKeepAliveTimeout){deprecate("options.freeSocketKeepAliveTimeout is deprecated, please use options.freeSocketTimeout instead");a.freeSocketTimeout=a.freeSocketKeepAliveTimeout;delete a.freeSocketKeepAliveTimeout}if(a.timeout===undefined){a.timeout=Math.max(a.freeSocketTimeout*2,8e3)}a.timeout=ae(a.timeout);a.freeSocketTimeout=ae(a.freeSocketTimeout);a.socketActiveTTL=a.socketActiveTTL?ae(a.socketActiveTTL):0;super(a);this[Pt]=0;this.createSocketCount=0;this.createSocketCountLastCheck=0;this.createSocketErrorCount=0;this.createSocketErrorCountLastCheck=0;this.closeSocketCount=0;this.closeSocketCountLastCheck=0;this.errorSocketCount=0;this.errorSocketCountLastCheck=0;this.requestCount=0;this.requestCountLastCheck=0;this.timeoutSocketCount=0;this.timeoutSocketCountLastCheck=0;this.on("free",(a=>{const C=this.calcSocketTimeout(a);if(C>0&&a.timeout!==C){a.setTimeout(C)}}))}get freeSocketKeepAliveTimeout(){deprecate("agent.freeSocketKeepAliveTimeout is deprecated, please use agent.options.freeSocketTimeout instead");return this.options.freeSocketTimeout}get timeout(){deprecate("agent.timeout is deprecated, please use agent.options.timeout instead");return this.options.timeout}get socketActiveTTL(){deprecate("agent.socketActiveTTL is deprecated, please use agent.options.socketActiveTTL instead");return this.options.socketActiveTTL}calcSocketTimeout(a){let C=this.options.freeSocketTimeout;const q=this.options.socketActiveTTL;if(q){const re=Date.now()-a[Ar];const ae=q-re;if(ae<=0){return ae}if(C&&ae{if(q)return;q=true;if(re){this.createSocketErrorCount++;return C(re)}this[lt](ae,a);C(re,ae)};const re=super.createConnection(a,onNewCreate);if(re)onNewCreate(null,re);return re}get statusChanged(){const a=this.createSocketCount!==this.createSocketCountLastCheck||this.createSocketErrorCount!==this.createSocketErrorCountLastCheck||this.closeSocketCount!==this.closeSocketCountLastCheck||this.errorSocketCount!==this.errorSocketCountLastCheck||this.timeoutSocketCount!==this.timeoutSocketCountLastCheck||this.requestCount!==this.requestCountLastCheck;if(a){this.createSocketCountLastCheck=this.createSocketCount;this.createSocketErrorCountLastCheck=this.createSocketErrorCount;this.closeSocketCountLastCheck=this.closeSocketCount;this.errorSocketCountLastCheck=this.errorSocketCount;this.timeoutSocketCountLastCheck=this.timeoutSocketCount;this.requestCountLastCheck=this.requestCount}return a}getCurrentStatus(){return{createSocketCount:this.createSocketCount,createSocketErrorCount:this.createSocketErrorCount,closeSocketCount:this.closeSocketCount,errorSocketCount:this.errorSocketCount,timeoutSocketCount:this.timeoutSocketCount,requestCount:this.requestCount,freeSockets:inspect(this.freeSockets),sockets:inspect(this.sockets),requests:inspect(this.requests)}}}function getSocketTimeout(a){return a.timeout||a._idleTimeout}function installListeners(a,C,q){Ue("%s create, timeout %sms",C[Er],getSocketTimeout(C));function onFree(){if(!C._httpMessage&&C[Br]===1)return;C[Qr]++;a.requestCount++;Ue("%s(requests: %s, finished: %s) free",C[Er],C[Br],C[Qr]);const re=a.getName(q);if(C.writable&&a.requests[re]&&a.requests[re].length){C[Br]++;Ue("%s(requests: %s, finished: %s) will be reuse on agent free event",C[Er],C[Br],C[Qr])}}C.on("free",onFree);function onClose(q){Ue("%s(requests: %s, finished: %s) close, isError: %s",C[Er],C[Br],C[Qr],q);a.closeSocketCount++}C.on("close",onClose);function onTimeout(){const re=C.listeners("timeout").length;const ae=getSocketTimeout(C);const lt=C._httpMessage;const Pt=lt&<.listeners("timeout").length||0;Ue("%s(requests: %s, finished: %s) timeout after %sms, listeners %s, defaultTimeoutListenerCount %s, hasHttpRequest %s, HttpRequest timeoutListenerCount %s",C[Er],C[Br],C[Qr],ae,re,Ir,!!lt,Pt);if(Ue.enabled){Ue("timeout listeners: %s",C.listeners("timeout").map((a=>a.name)).join(", "))}a.timeoutSocketCount++;const Wt=a.getName(q);if(a.freeSockets[Wt]&&a.freeSockets[Wt].indexOf(C)!==-1){C.destroy();a.removeSocket(C,q);Ue("%s is free, destroy quietly",C[Er])}else{if(Pt===0){const re=new Error("Socket timeout");re.code="ERR_SOCKET_TIMEOUT";re.timeout=ae;C.destroy(re);a.removeSocket(C,q);Ue("%s destroy with timeout error",C[Er])}}}C.on("timeout",onTimeout);function onError(q){const re=C.listeners("error").length;Ue("%s(requests: %s, finished: %s) error: %s, listenerCount: %s",C[Er],C[Br],C[Qr],q,re);a.errorSocketCount++;if(re===1){Ue("%s emit uncaught error event",C[Er]);C.removeListener("error",onError);C.emit("error",q)}}C.on("error",onError);function onRemove(){Ue("%s(requests: %s, finished: %s) agentRemove",C[Er],C[Br],C[Qr]);C.removeListener("close",onClose);C.removeListener("error",onError);C.removeListener("free",onFree);C.removeListener("timeout",onTimeout);C.removeListener("agentRemove",onRemove)}C.on("agentRemove",onRemove)}a.exports=Agent;function inspect(a){const C={};for(const q in a){C[q]=a[q].length}return C}},6160:a=>{a.exports={CURRENT_ID:Symbol("agentkeepalive#currentId"),CREATE_ID:Symbol("agentkeepalive#createId"),INIT_SOCKET:Symbol("agentkeepalive#initSocket"),CREATE_HTTPS_CONNECTION:Symbol("agentkeepalive#createHttpsConnection"),SOCKET_CREATED_TIME:Symbol("agentkeepalive#socketCreatedTime"),SOCKET_NAME:Symbol("agentkeepalive#socketName"),SOCKET_REQUEST_COUNT:Symbol("agentkeepalive#socketRequestCount"),SOCKET_REQUEST_FINISHED_COUNT:Symbol("agentkeepalive#socketRequestFinishedCount")}},414:(a,C,q)=>{const re=q(5692).Agent;const ae=q(2532);const{INIT_SOCKET:Ue,CREATE_HTTPS_CONNECTION:lt}=q(6160);class HttpsAgent extends ae{constructor(a){super(a);this.defaultPort=443;this.protocol="https:";this.maxCachedSessions=this.options.maxCachedSessions;if(this.maxCachedSessions===undefined){this.maxCachedSessions=100}this._sessionCache={map:{},list:[]}}createConnection(a,C){const q=this[lt](a,C);this[Ue](q,a);return q}}HttpsAgent.prototype[lt]=re.prototype.createConnection;["getName","_getSession","_cacheSession","_evictSession"].forEach((function(a){if(typeof re.prototype[a]==="function"){HttpsAgent.prototype[a]=re.prototype[a]}}));a.exports=HttpsAgent},2732:(a,C,q)=>{var re=q(1063);var ae=q(2027);var Ue=q(9934);var lt=Function.bind;var Pt=lt.bind(lt);function bindApi(a,C,q){var re=Pt(Ue,null).apply(null,q?[C,q]:[C]);a.api={remove:re};a.remove=re;["before","error","after","wrap"].forEach((function(re){var Ue=q?[C,re,q]:[C,re];a[re]=a.api[re]=Pt(ae,null).apply(null,Ue)}))}function HookSingular(){var a="h";var C={registry:{}};var q=re.bind(null,C,a);bindApi(q,C,a);return q}function HookCollection(){var a={registry:{}};var C=re.bind(null,a);bindApi(C,a);return C}var Wt=false;function Hook(){if(!Wt){console.warn('[before-after-hook]: "Hook()" repurposing warning, use "Hook.Collection()". Read more: https://git.io/upgrade-before-after-hook-to-1.4');Wt=true}return HookCollection()}Hook.Singular=HookSingular.bind();Hook.Collection=HookCollection.bind();a.exports=Hook;a.exports.Hook=Hook;a.exports.Singular=Hook.Singular;a.exports.Collection=Hook.Collection},2027:a=>{a.exports=addHook;function addHook(a,C,q,re){var ae=re;if(!a.registry[q]){a.registry[q]=[]}if(C==="before"){re=function(a,C){return Promise.resolve().then(ae.bind(null,C)).then(a.bind(null,C))}}if(C==="after"){re=function(a,C){var q;return Promise.resolve().then(a.bind(null,C)).then((function(a){q=a;return ae(q,C)})).then((function(){return q}))}}if(C==="error"){re=function(a,C){return Promise.resolve().then(a.bind(null,C)).catch((function(a){return ae(a,C)}))}}a.registry[q].push({hook:re,orig:ae})}},1063:a=>{a.exports=register;function register(a,C,q,re){if(typeof q!=="function"){throw new Error("method for before hook must be a function")}if(!re){re={}}if(Array.isArray(C)){return C.reverse().reduce((function(C,q){return register.bind(null,a,q,C,re)}),q)()}return Promise.resolve().then((function(){if(!a.registry[C]){return q(re)}return a.registry[C].reduce((function(a,C){return C.hook.bind(null,a,re)}),q)()}))}},9934:a=>{a.exports=removeHook;function removeHook(a,C,q){if(!a.registry[C]){return}var re=a.registry[C].map((function(a){return a.orig})).indexOf(q);if(re===-1){return}a.registry[C].splice(re,1)}},4150:(a,C)=>{Object.defineProperty(C,"__esModule",{value:true});class Deprecation extends Error{constructor(a){super(a);if(Error.captureStackTrace){Error.captureStackTrace(this,this.constructor)}this.name="Deprecation"}}C.Deprecation=Deprecation},6577:(a,C)=>{ -/** - * @author Toru Nagashima - * @copyright 2015 Toru Nagashima. All rights reserved. - * See LICENSE file in root directory for full license. - */ -Object.defineProperty(C,"__esModule",{value:true});const q=new WeakMap;const re=new WeakMap;function pd(a){const C=q.get(a);console.assert(C!=null,"'this' is expected an Event object, but got",a);return C}function setCancelFlag(a){if(a.passiveListener!=null){if(typeof console!=="undefined"&&typeof console.error==="function"){console.error("Unable to preventDefault inside passive event listener invocation.",a.passiveListener)}return}if(!a.event.cancelable){return}a.canceled=true;if(typeof a.event.preventDefault==="function"){a.event.preventDefault()}}function Event(a,C){q.set(this,{eventTarget:a,event:C,eventPhase:2,currentTarget:a,canceled:false,stopped:false,immediateStopped:false,passiveListener:null,timeStamp:C.timeStamp||Date.now()});Object.defineProperty(this,"isTrusted",{value:false,enumerable:true});const re=Object.keys(C);for(let a=0;a0){const a=new Array(arguments.length);for(let C=0;C{ -/*! - * humanize-ms - index.js - * Copyright(c) 2014 dead_horse - * MIT Licensed - */ -var re=q(9023);var ae=q(744);a.exports=function(a){if(typeof a==="number")return a;var C=ae(a);if(C===undefined){var q=new Error(re.format("humanize-ms(%j) result undefined",a));console.warn(q.stack)}return C}},744:a=>{var C=1e3;var q=C*60;var re=q*60;var ae=re*24;var Ue=ae*7;var lt=ae*365.25;a.exports=function(a,C){C=C||{};var q=typeof a;if(q==="string"&&a.length>0){return parse(a)}else if(q==="number"&&isFinite(a)){return C.long?fmtLong(a):fmtShort(a)}throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(a))};function parse(a){a=String(a);if(a.length>100){return}var Pt=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(a);if(!Pt){return}var Wt=parseFloat(Pt[1]);var Ar=(Pt[2]||"ms").toLowerCase();switch(Ar){case"years":case"year":case"yrs":case"yr":case"y":return Wt*lt;case"weeks":case"week":case"w":return Wt*Ue;case"days":case"day":case"d":return Wt*ae;case"hours":case"hour":case"hrs":case"hr":case"h":return Wt*re;case"minutes":case"minute":case"mins":case"min":case"m":return Wt*q;case"seconds":case"second":case"secs":case"sec":case"s":return Wt*C;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return Wt;default:return undefined}}function fmtShort(a){var Ue=Math.abs(a);if(Ue>=ae){return Math.round(a/ae)+"d"}if(Ue>=re){return Math.round(a/re)+"h"}if(Ue>=q){return Math.round(a/q)+"m"}if(Ue>=C){return Math.round(a/C)+"s"}return a+"ms"}function fmtLong(a){var Ue=Math.abs(a);if(Ue>=ae){return plural(a,Ue,ae,"day")}if(Ue>=re){return plural(a,Ue,re,"hour")}if(Ue>=q){return plural(a,Ue,q,"minute")}if(Ue>=C){return plural(a,Ue,C,"second")}return a+" ms"}function plural(a,C,q,re){var ae=C>=q*1.5;return Math.round(a/q)+" "+re+(ae?"s":"")}},6705:(a,C,q)=>{Object.defineProperty(C,"__esModule",{value:true});function _interopDefault(a){return a&&typeof a==="object"&&"default"in a?a["default"]:a}var re=_interopDefault(q(2203));var ae=_interopDefault(q(8611));var Ue=_interopDefault(q(7016));var lt=_interopDefault(q(2686));var Pt=_interopDefault(q(5692));var Wt=_interopDefault(q(3106));const Ar=re.Readable;const Er=Symbol("buffer");const Br=Symbol("type");class Blob{constructor(){this[Br]="";const a=arguments[0];const C=arguments[1];const q=[];let re=0;if(a){const C=a;const ae=Number(C.length);for(let a=0;a1&&arguments[1]!==undefined?arguments[1]:{},ae=q.size;let Ue=ae===undefined?0:ae;var lt=q.timeout;let Pt=lt===undefined?0:lt;if(a==null){a=null}else if(isURLSearchParams(a)){a=Buffer.from(a.toString())}else if(isBlob(a));else if(Buffer.isBuffer(a));else if(Object.prototype.toString.call(a)==="[object ArrayBuffer]"){a=Buffer.from(a)}else if(ArrayBuffer.isView(a)){a=Buffer.from(a.buffer,a.byteOffset,a.byteLength)}else if(a instanceof re);else{a=Buffer.from(String(a))}this[Ir]={body:a,disturbed:false,error:null};this.size=Ue;this.timeout=Pt;if(a instanceof re){a.on("error",(function(a){const q=a.name==="AbortError"?a:new FetchError(`Invalid response body while trying to fetch ${C.url}: ${a.message}`,"system",a);C[Ir].error=q}))}}Body.prototype={get body(){return this[Ir].body},get bodyUsed(){return this[Ir].disturbed},arrayBuffer(){return consumeBody.call(this).then((function(a){return a.buffer.slice(a.byteOffset,a.byteOffset+a.byteLength)}))},blob(){let a=this.headers&&this.headers.get("content-type")||"";return consumeBody.call(this).then((function(C){return Object.assign(new Blob([],{type:a.toLowerCase()}),{[Er]:C})}))},json(){var a=this;return consumeBody.call(this).then((function(C){try{return JSON.parse(C.toString())}catch(C){return Body.Promise.reject(new FetchError(`invalid json response body at ${a.url} reason: ${C.message}`,"invalid-json"))}}))},text(){return consumeBody.call(this).then((function(a){return a.toString()}))},buffer(){return consumeBody.call(this)},textConverted(){var a=this;return consumeBody.call(this).then((function(C){return convertBody(C,a.headers)}))}};Object.defineProperties(Body.prototype,{body:{enumerable:true},bodyUsed:{enumerable:true},arrayBuffer:{enumerable:true},blob:{enumerable:true},json:{enumerable:true},text:{enumerable:true}});Body.mixIn=function(a){for(const C of Object.getOwnPropertyNames(Body.prototype)){if(!(C in a)){const q=Object.getOwnPropertyDescriptor(Body.prototype,C);Object.defineProperty(a,C,q)}}};function consumeBody(){var a=this;if(this[Ir].disturbed){return Body.Promise.reject(new TypeError(`body used already for: ${this.url}`))}this[Ir].disturbed=true;if(this[Ir].error){return Body.Promise.reject(this[Ir].error)}let C=this.body;if(C===null){return Body.Promise.resolve(Buffer.alloc(0))}if(isBlob(C)){C=C.stream()}if(Buffer.isBuffer(C)){return Body.Promise.resolve(C)}if(!(C instanceof re)){return Body.Promise.resolve(Buffer.alloc(0))}let q=[];let ae=0;let Ue=false;return new Body.Promise((function(re,lt){let Pt;if(a.timeout){Pt=setTimeout((function(){Ue=true;lt(new FetchError(`Response timeout while trying to fetch ${a.url} (over ${a.timeout}ms)`,"body-timeout"))}),a.timeout)}C.on("error",(function(C){if(C.name==="AbortError"){Ue=true;lt(C)}else{lt(new FetchError(`Invalid response body while trying to fetch ${a.url}: ${C.message}`,"system",C))}}));C.on("data",(function(C){if(Ue||C===null){return}if(a.size&&ae+C.length>a.size){Ue=true;lt(new FetchError(`content size at ${a.url} over limit: ${a.size}`,"max-size"));return}ae+=C.length;q.push(C)}));C.on("end",(function(){if(Ue){return}clearTimeout(Pt);try{re(Buffer.concat(q,ae))}catch(C){lt(new FetchError(`Could not create Buffer from response body for ${a.url}: ${C.message}`,"system",C))}}))}))}function convertBody(a,C){if(typeof Qr!=="function"){throw new Error("The package `encoding` must be installed to use the textConverted() function")}const q=C.get("content-type");let re="utf-8";let ae,Ue;if(q){ae=/charset=([^;]*)/i.exec(q)}Ue=a.slice(0,1024).toString();if(!ae&&Ue){ae=/0&&arguments[0]!==undefined?arguments[0]:undefined;this[Nr]=Object.create(null);if(a instanceof Headers){const C=a.raw();const q=Object.keys(C);for(const a of q){for(const q of C[a]){this.append(a,q)}}return}if(a==null);else if(typeof a==="object"){const C=a[Symbol.iterator];if(C!=null){if(typeof C!=="function"){throw new TypeError("Header pairs must be iterable")}const q=[];for(const C of a){if(typeof C!=="object"||typeof C[Symbol.iterator]!=="function"){throw new TypeError("Each header pair must be iterable")}q.push(Array.from(C))}for(const a of q){if(a.length!==2){throw new TypeError("Each header pair must be a name/value tuple")}this.append(a[0],a[1])}}else{for(const C of Object.keys(a)){const q=a[C];this.append(C,q)}}}else{throw new TypeError("Provided initializer must be an object")}}get(a){a=`${a}`;validateName(a);const C=find(this[Nr],a);if(C===undefined){return null}return this[Nr][C].join(", ")}forEach(a){let C=arguments.length>1&&arguments[1]!==undefined?arguments[1]:undefined;let q=getHeaders(this);let re=0;while(re1&&arguments[1]!==undefined?arguments[1]:"key+value";const q=Object.keys(a[Nr]).sort();return q.map(C==="key"?function(a){return a.toLowerCase()}:C==="value"?function(C){return a[Nr][C].join(", ")}:function(C){return[C.toLowerCase(),a[Nr][C].join(", ")]})}const Ur=Symbol("internal");function createHeadersIterator(a,C){const q=Object.create(Lr);q[Ur]={target:a,kind:C,index:0};return q}const Lr=Object.setPrototypeOf({next(){if(!this||Object.getPrototypeOf(this)!==Lr){throw new TypeError("Value of `this` is not a HeadersIterator")}var a=this[Ur];const C=a.target,q=a.kind,re=a.index;const ae=getHeaders(C,q);const Ue=ae.length;if(re>=Ue){return{value:undefined,done:true}}this[Ur].index=re+1;return{value:ae[re],done:false}}},Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())));Object.defineProperty(Lr,Symbol.toStringTag,{value:"HeadersIterator",writable:false,enumerable:false,configurable:true});function exportNodeCompatibleHeaders(a){const C=Object.assign({__proto__:null},a[Nr]);const q=find(a[Nr],"Host");if(q!==undefined){C[q]=C[q][0]}return C}function createHeadersLenient(a){const C=new Headers;for(const q of Object.keys(a)){if(kr.test(q)){continue}if(Array.isArray(a[q])){for(const re of a[q]){if(Fr.test(re)){continue}if(C[Nr][q]===undefined){C[Nr][q]=[re]}else{C[Nr][q].push(re)}}}else if(!Fr.test(a[q])){C[Nr][q]=[a[q]]}}return C}const Mr=Symbol("Response internals");const Pr=ae.STATUS_CODES;class Response{constructor(){let a=arguments.length>0&&arguments[0]!==undefined?arguments[0]:null;let C=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};Body.call(this,a,C);const q=C.status||200;const re=new Headers(C.headers);if(a!=null&&!re.has("Content-Type")){const C=extractContentType(a);if(C){re.append("Content-Type",C)}}this[Mr]={url:C.url,status:q,statusText:C.statusText||Pr[q],headers:re,counter:C.counter}}get url(){return this[Mr].url||""}get status(){return this[Mr].status}get ok(){return this[Mr].status>=200&&this[Mr].status<300}get redirected(){return this[Mr].counter>0}get statusText(){return this[Mr].statusText}get headers(){return this[Mr].headers}clone(){return new Response(clone(this),{url:this.url,status:this.status,statusText:this.statusText,headers:this.headers,ok:this.ok,redirected:this.redirected})}}Body.mixIn(Response.prototype);Object.defineProperties(Response.prototype,{url:{enumerable:true},status:{enumerable:true},ok:{enumerable:true},redirected:{enumerable:true},statusText:{enumerable:true},headers:{enumerable:true},clone:{enumerable:true}});Object.defineProperty(Response.prototype,Symbol.toStringTag,{value:"Response",writable:false,enumerable:false,configurable:true});const Gr=Symbol("Request internals");const Or=Ue.URL||lt.URL;const Vr=Ue.parse;const Hr=Ue.format;function parseURL(a){if(/^[a-zA-Z][a-zA-Z\d+\-.]*:/.exec(a)){a=new Or(a).toString()}return Vr(a)}const xr="destroy"in re.Readable.prototype;function isRequest(a){return typeof a==="object"&&typeof a[Gr]==="object"}function isAbortSignal(a){const C=a&&typeof a==="object"&&Object.getPrototypeOf(a);return!!(C&&C.constructor.name==="AbortSignal")}class Request{constructor(a){let C=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};let q;if(!isRequest(a)){if(a&&a.href){q=parseURL(a.href)}else{q=parseURL(`${a}`)}a={}}else{q=parseURL(a.url)}let re=C.method||a.method||"GET";re=re.toUpperCase();if((C.body!=null||isRequest(a)&&a.body!==null)&&(re==="GET"||re==="HEAD")){throw new TypeError("Request with GET/HEAD method cannot have body")}let ae=C.body!=null?C.body:isRequest(a)&&a.body!==null?clone(a):null;Body.call(this,ae,{timeout:C.timeout||a.timeout||0,size:C.size||a.size||0});const Ue=new Headers(C.headers||a.headers||{});if(ae!=null&&!Ue.has("Content-Type")){const a=extractContentType(ae);if(a){Ue.append("Content-Type",a)}}let lt=isRequest(a)?a.signal:null;if("signal"in C)lt=C.signal;if(lt!=null&&!isAbortSignal(lt)){throw new TypeError("Expected signal to be an instanceof AbortSignal")}this[Gr]={method:re,redirect:C.redirect||a.redirect||"follow",headers:Ue,parsedURL:q,signal:lt};this.follow=C.follow!==undefined?C.follow:a.follow!==undefined?a.follow:20;this.compress=C.compress!==undefined?C.compress:a.compress!==undefined?a.compress:true;this.counter=C.counter||a.counter||0;this.agent=C.agent||a.agent}get method(){return this[Gr].method}get url(){return Hr(this[Gr].parsedURL)}get headers(){return this[Gr].headers}get redirect(){return this[Gr].redirect}get signal(){return this[Gr].signal}clone(){return new Request(this)}}Body.mixIn(Request.prototype);Object.defineProperty(Request.prototype,Symbol.toStringTag,{value:"Request",writable:false,enumerable:false,configurable:true});Object.defineProperties(Request.prototype,{method:{enumerable:true},url:{enumerable:true},headers:{enumerable:true},redirect:{enumerable:true},clone:{enumerable:true},signal:{enumerable:true}});function getNodeRequestOptions(a){const C=a[Gr].parsedURL;const q=new Headers(a[Gr].headers);if(!q.has("Accept")){q.set("Accept","*/*")}if(!C.protocol||!C.hostname){throw new TypeError("Only absolute URLs are supported")}if(!/^https?:$/.test(C.protocol)){throw new TypeError("Only HTTP(S) protocols are supported")}if(a.signal&&a.body instanceof re.Readable&&!xr){throw new Error("Cancellation of streamed requests with AbortSignal is not supported in node < 8")}let ae=null;if(a.body==null&&/^(POST|PUT)$/i.test(a.method)){ae="0"}if(a.body!=null){const C=getTotalBytes(a);if(typeof C==="number"){ae=String(C)}}if(ae){q.set("Content-Length",ae)}if(!q.has("User-Agent")){q.set("User-Agent","node-fetch/1.0 (+https://github.com/bitinn/node-fetch)")}if(a.compress&&!q.has("Accept-Encoding")){q.set("Accept-Encoding","gzip,deflate")}let Ue=a.agent;if(typeof Ue==="function"){Ue=Ue(C)}return Object.assign({},C,{method:a.method,headers:exportNodeCompatibleHeaders(q),agent:Ue})}function AbortError(a){Error.call(this,a);this.type="aborted";this.message=a;Error.captureStackTrace(this,this.constructor)}AbortError.prototype=Object.create(Error.prototype);AbortError.prototype.constructor=AbortError;AbortError.prototype.name="AbortError";const Yr=Ue.URL||lt.URL;const Jr=re.PassThrough;const Wr=function isDomainOrSubdomain(a,C){const q=new Yr(C).hostname;const re=new Yr(a).hostname;return q===re||q[q.length-re.length-1]==="."&&q.endsWith(re)};const jr=function isSameProtocol(a,C){const q=new Yr(C).protocol;const re=new Yr(a).protocol;return q===re};function fetch(a,C){if(!fetch.Promise){throw new Error("native promise missing, set fetch.Promise to your favorite alternative")}Body.Promise=fetch.Promise;return new fetch.Promise((function(q,Ue){const lt=new Request(a,C);const Ar=getNodeRequestOptions(lt);const Er=(Ar.protocol==="https:"?Pt:ae).request;const Br=lt.signal;let Qr=null;const Ir=function abort(){let a=new AbortError("The user aborted a request.");Ue(a);if(lt.body&<.body instanceof re.Readable){destroyStream(lt.body,a)}if(!Qr||!Qr.body)return;Qr.body.emit("error",a)};if(Br&&Br.aborted){Ir();return}const Dr=function abortAndFinalize(){Ir();finalize()};const kr=Er(Ar);let Fr;if(Br){Br.addEventListener("abort",Dr)}function finalize(){kr.abort();if(Br)Br.removeEventListener("abort",Dr);clearTimeout(Fr)}if(lt.timeout){kr.once("socket",(function(a){Fr=setTimeout((function(){Ue(new FetchError(`network timeout at: ${lt.url}`,"request-timeout"));finalize()}),lt.timeout)}))}kr.on("error",(function(a){Ue(new FetchError(`request to ${lt.url} failed, reason: ${a.message}`,"system",a));if(Qr&&Qr.body){destroyStream(Qr.body,a)}finalize()}));fixResponseChunkedTransferBadEnding(kr,(function(a){if(Br&&Br.aborted){return}if(Qr&&Qr.body){destroyStream(Qr.body,a)}}));if(parseInt(process.version.substring(1))<14){kr.on("socket",(function(a){a.addListener("close",(function(C){const q=a.listenerCount("data")>0;if(Qr&&q&&!C&&!(Br&&Br.aborted)){const a=new Error("Premature close");a.code="ERR_STREAM_PREMATURE_CLOSE";Qr.body.emit("error",a)}}))}))}kr.on("response",(function(a){clearTimeout(Fr);const C=createHeadersLenient(a.headers);if(fetch.isRedirect(a.statusCode)){const re=C.get("Location");let ae=null;try{ae=re===null?null:new Yr(re,lt.url).toString()}catch(a){if(lt.redirect!=="manual"){Ue(new FetchError(`uri requested responds with an invalid redirect URL: ${re}`,"invalid-redirect"));finalize();return}}switch(lt.redirect){case"error":Ue(new FetchError(`uri requested responds with a redirect, redirect mode is set to error: ${lt.url}`,"no-redirect"));finalize();return;case"manual":if(ae!==null){try{C.set("Location",ae)}catch(a){Ue(a)}}break;case"follow":if(ae===null){break}if(lt.counter>=lt.follow){Ue(new FetchError(`maximum redirect reached at: ${lt.url}`,"max-redirect"));finalize();return}const re={headers:new Headers(lt.headers),follow:lt.follow,counter:lt.counter+1,agent:lt.agent,compress:lt.compress,method:lt.method,body:lt.body,signal:lt.signal,timeout:lt.timeout,size:lt.size};if(!Wr(lt.url,ae)||!jr(lt.url,ae)){for(const a of["authorization","www-authenticate","cookie","cookie2"]){re.headers.delete(a)}}if(a.statusCode!==303&<.body&&getTotalBytes(lt)===null){Ue(new FetchError("Cannot follow redirect with body being a readable stream","unsupported-redirect"));finalize();return}if(a.statusCode===303||(a.statusCode===301||a.statusCode===302)&<.method==="POST"){re.method="GET";re.body=undefined;re.headers.delete("content-length")}q(fetch(new Request(ae,re)));finalize();return}}a.once("end",(function(){if(Br)Br.removeEventListener("abort",Dr)}));let re=a.pipe(new Jr);const ae={url:lt.url,status:a.statusCode,statusText:a.statusMessage,headers:C,size:lt.size,timeout:lt.timeout,counter:lt.counter};const Pt=C.get("Content-Encoding");if(!lt.compress||lt.method==="HEAD"||Pt===null||a.statusCode===204||a.statusCode===304){Qr=new Response(re,ae);q(Qr);return}const Ar={flush:Wt.Z_SYNC_FLUSH,finishFlush:Wt.Z_SYNC_FLUSH};if(Pt=="gzip"||Pt=="x-gzip"){re=re.pipe(Wt.createGunzip(Ar));Qr=new Response(re,ae);q(Qr);return}if(Pt=="deflate"||Pt=="x-deflate"){const C=a.pipe(new Jr);C.once("data",(function(a){if((a[0]&15)===8){re=re.pipe(Wt.createInflate())}else{re=re.pipe(Wt.createInflateRaw())}Qr=new Response(re,ae);q(Qr)}));C.on("end",(function(){if(!Qr){Qr=new Response(re,ae);q(Qr)}}));return}if(Pt=="br"&&typeof Wt.createBrotliDecompress==="function"){re=re.pipe(Wt.createBrotliDecompress());Qr=new Response(re,ae);q(Qr);return}Qr=new Response(re,ae);q(Qr)}));writeToStream(kr,lt)}))}function fixResponseChunkedTransferBadEnding(a,C){let q;a.on("socket",(function(a){q=a}));a.on("response",(function(a){const re=a.headers;if(re["transfer-encoding"]==="chunked"&&!re["content-length"]){a.once("close",(function(a){const re=q&&q.listenerCount("data")>0;if(re&&!a){const a=new Error("Premature close");a.code="ERR_STREAM_PREMATURE_CLOSE";C(a)}}))}}))}function destroyStream(a,C){if(a.destroy){a.destroy(C)}else{a.emit("error",C);a.end()}}fetch.isRedirect=function(a){return a===301||a===302||a===303||a===307||a===308};fetch.Promise=global.Promise;a.exports=C=fetch;Object.defineProperty(C,"__esModule",{value:true});C["default"]=C;C.Headers=Headers;C.Request=Request;C.Response=Response;C.FetchError=FetchError;C.AbortError=AbortError},5560:(a,C,q)=>{var re=q(8264);a.exports=re(once);a.exports.strict=re(onceStrict);once.proto=once((function(){Object.defineProperty(Function.prototype,"once",{value:function(){return once(this)},configurable:true});Object.defineProperty(Function.prototype,"onceStrict",{value:function(){return onceStrict(this)},configurable:true})}));function once(a){var f=function(){if(f.called)return f.value;f.called=true;return f.value=a.apply(this,arguments)};f.called=false;return f}function onceStrict(a){var f=function(){if(f.called)throw new Error(f.onceError);f.called=true;return f.value=a.apply(this,arguments)};var C=a.name||"Function wrapped with `once`";f.onceError=C+" shouldn't be called more than once";f.called=false;return f}},1552:(a,C,q)=>{var re=q(4876);var ae=q(2472);var Ue={TRANSITIONAL:0,NONTRANSITIONAL:1};function normalize(a){return a.split("\0").map((function(a){return a.normalize("NFC")})).join("\0")}function findStatus(a){var C=0;var q=ae.length-1;while(C<=q){var re=Math.floor((C+q)/2);var Ue=ae[re];if(Ue[0][0]<=a&&Ue[0][1]>=a){return Ue}else if(Ue[0][0]>a){q=re-1}else{C=re+1}}return null}var lt=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g;function countSymbols(a){return a.replace(lt,"_").length}function mapChars(a,C,q){var re=false;var ae="";var lt=countSymbols(a);for(var Pt=0;Pt253||Pt.length===0){Ue.error=true}for(var Wt=0;Wt63||lt.length===0){Ue.error=true;break}}}if(Ue.error)return null;return lt.join(".")};a.exports.toUnicode=function(a,C){var q=processing(a,C,Ue.NONTRANSITIONAL);return{domain:q.string,error:q.error}};a.exports.PROCESSING_OPTIONS=Ue},770:(a,C,q)=>{a.exports=q(218)},218:(a,C,q)=>{var re=q(9278);var ae=q(4756);var Ue=q(8611);var lt=q(5692);var Pt=q(4434);var Wt=q(2613);var Ar=q(9023);C.httpOverHttp=httpOverHttp;C.httpsOverHttp=httpsOverHttp;C.httpOverHttps=httpOverHttps;C.httpsOverHttps=httpsOverHttps;function httpOverHttp(a){var C=new TunnelingAgent(a);C.request=Ue.request;return C}function httpsOverHttp(a){var C=new TunnelingAgent(a);C.request=Ue.request;C.createSocket=createSecureSocket;C.defaultPort=443;return C}function httpOverHttps(a){var C=new TunnelingAgent(a);C.request=lt.request;return C}function httpsOverHttps(a){var C=new TunnelingAgent(a);C.request=lt.request;C.createSocket=createSecureSocket;C.defaultPort=443;return C}function TunnelingAgent(a){var C=this;C.options=a||{};C.proxyOptions=C.options.proxy||{};C.maxSockets=C.options.maxSockets||Ue.Agent.defaultMaxSockets;C.requests=[];C.sockets=[];C.on("free",(function onFree(a,q,re,ae){var Ue=toOptions(q,re,ae);for(var lt=0,Pt=C.requests.length;lt=this.maxSockets){ae.requests.push(Ue);return}ae.createSocket(Ue,(function(C){C.on("free",onFree);C.on("close",onCloseOrRemove);C.on("agentRemove",onCloseOrRemove);a.onSocket(C);function onFree(){ae.emit("free",C,Ue)}function onCloseOrRemove(a){ae.removeSocket(C);C.removeListener("free",onFree);C.removeListener("close",onCloseOrRemove);C.removeListener("agentRemove",onCloseOrRemove)}}))};TunnelingAgent.prototype.createSocket=function createSocket(a,C){var q=this;var re={};q.sockets.push(re);var ae=mergeOptions({},q.proxyOptions,{method:"CONNECT",path:a.host+":"+a.port,agent:false,headers:{host:a.host+":"+a.port}});if(a.localAddress){ae.localAddress=a.localAddress}if(ae.proxyAuth){ae.headers=ae.headers||{};ae.headers["Proxy-Authorization"]="Basic "+new Buffer(ae.proxyAuth).toString("base64")}Er("making CONNECT request");var Ue=q.request(ae);Ue.useChunkedEncodingByDefault=false;Ue.once("response",onResponse);Ue.once("upgrade",onUpgrade);Ue.once("connect",onConnect);Ue.once("error",onError);Ue.end();function onResponse(a){a.upgrade=true}function onUpgrade(a,C,q){process.nextTick((function(){onConnect(a,C,q)}))}function onConnect(ae,lt,Pt){Ue.removeAllListeners();lt.removeAllListeners();if(ae.statusCode!==200){Er("tunneling socket could not be established, statusCode=%d",ae.statusCode);lt.destroy();var Wt=new Error("tunneling socket could not be established, "+"statusCode="+ae.statusCode);Wt.code="ECONNRESET";a.request.emit("error",Wt);q.removeSocket(re);return}if(Pt.length>0){Er("got illegal response body from proxy");lt.destroy();var Wt=new Error("got illegal response body from proxy");Wt.code="ECONNRESET";a.request.emit("error",Wt);q.removeSocket(re);return}Er("tunneling connection has established");q.sockets[q.sockets.indexOf(re)]=lt;return C(lt)}function onError(C){Ue.removeAllListeners();Er("tunneling socket could not be established, cause=%s\n",C.message,C.stack);var ae=new Error("tunneling socket could not be established, "+"cause="+C.message);ae.code="ECONNRESET";a.request.emit("error",ae);q.removeSocket(re)}};TunnelingAgent.prototype.removeSocket=function removeSocket(a){var C=this.sockets.indexOf(a);if(C===-1){return}this.sockets.splice(C,1);var q=this.requests.shift();if(q){this.createSocket(q,(function(a){q.request.onSocket(a)}))}};function createSecureSocket(a,C){var q=this;TunnelingAgent.prototype.createSocket.call(q,a,(function(re){var Ue=a.request.getHeader("host");var lt=mergeOptions({},q.options,{socket:re,servername:Ue?Ue.replace(/:.*$/,""):a.host});var Pt=ae.connect(0,lt);q.sockets[q.sockets.indexOf(re)]=Pt;C(Pt)}))}function toOptions(a,C,q){if(typeof a==="string"){return{host:a,port:C,localAddress:q}}return a}function mergeOptions(a){for(var C=1,q=arguments.length;C{const re=q(6197);const ae=q(992);const Ue=q(8707);const lt=q(5076);const Pt=q(1093);const Wt=q(9965);const Ar=q(3440);const{InvalidArgumentError:Er}=Ue;const Br=q(6615);const Qr=q(9136);const Ir=q(7365);const Dr=q(7501);const kr=q(4004);const Fr=q(2429);const Nr=q(2720);const Ur=q(3573);const{getGlobalDispatcher:Lr,setGlobalDispatcher:Mr}=q(2581);const Pr=q(8840);const Gr=q(8299);const Or=q(4415);let Vr;try{q(6982);Vr=true}catch{Vr=false}Object.assign(ae.prototype,Br);a.exports.Dispatcher=ae;a.exports.Client=re;a.exports.Pool=lt;a.exports.BalancedPool=Pt;a.exports.Agent=Wt;a.exports.ProxyAgent=Nr;a.exports.RetryHandler=Ur;a.exports.DecoratorHandler=Pr;a.exports.RedirectHandler=Gr;a.exports.createRedirectInterceptor=Or;a.exports.buildConnector=Qr;a.exports.errors=Ue;function makeDispatcher(a){return(C,q,re)=>{if(typeof q==="function"){re=q;q=null}if(!C||typeof C!=="string"&&typeof C!=="object"&&!(C instanceof URL)){throw new Er("invalid url")}if(q!=null&&typeof q!=="object"){throw new Er("invalid opts")}if(q&&q.path!=null){if(typeof q.path!=="string"){throw new Er("invalid opts.path")}let a=q.path;if(!q.path.startsWith("/")){a=`/${a}`}C=new URL(Ar.parseOrigin(C).origin+a)}else{if(!q){q=typeof C==="object"?C:{}}C=Ar.parseURL(C)}const{agent:ae,dispatcher:Ue=Lr()}=q;if(ae){throw new Er("unsupported opts.agent. Did you mean opts.client?")}return a.call(Ue,{...q,origin:C.origin,path:C.search?`${C.pathname}${C.search}`:C.pathname,method:q.method||(q.body?"PUT":"GET")},re)}}a.exports.setGlobalDispatcher=Mr;a.exports.getGlobalDispatcher=Lr;if(Ar.nodeMajor>16||Ar.nodeMajor===16&&Ar.nodeMinor>=8){let C=null;a.exports.fetch=async function fetch(a){if(!C){C=q(2315).fetch}try{return await C(...arguments)}catch(a){if(typeof a==="object"){Error.captureStackTrace(a,this)}throw a}};a.exports.Headers=q(6349).Headers;a.exports.Response=q(8676).Response;a.exports.Request=q(5194).Request;a.exports.FormData=q(3073).FormData;a.exports.File=q(3041).File;a.exports.FileReader=q(2160).FileReader;const{setGlobalOrigin:re,getGlobalOrigin:ae}=q(5628);a.exports.setGlobalOrigin=re;a.exports.getGlobalOrigin=ae;const{CacheStorage:Ue}=q(4738);const{kConstruct:lt}=q(296);a.exports.caches=new Ue(lt)}if(Ar.nodeMajor>=16){const{deleteCookie:C,getCookies:re,getSetCookies:ae,setCookie:Ue}=q(3168);a.exports.deleteCookie=C;a.exports.getCookies=re;a.exports.getSetCookies=ae;a.exports.setCookie=Ue;const{parseMIMEType:lt,serializeAMimeType:Pt}=q(4322);a.exports.parseMIMEType=lt;a.exports.serializeAMimeType=Pt}if(Ar.nodeMajor>=18&&Vr){const{WebSocket:C}=q(5171);a.exports.WebSocket=C}a.exports.request=makeDispatcher(Br.request);a.exports.stream=makeDispatcher(Br.stream);a.exports.pipeline=makeDispatcher(Br.pipeline);a.exports.connect=makeDispatcher(Br.connect);a.exports.upgrade=makeDispatcher(Br.upgrade);a.exports.MockClient=Ir;a.exports.MockPool=kr;a.exports.MockAgent=Dr;a.exports.mockErrors=Fr},9965:(a,C,q)=>{const{InvalidArgumentError:re}=q(8707);const{kClients:ae,kRunning:Ue,kClose:lt,kDestroy:Pt,kDispatch:Wt,kInterceptors:Ar}=q(6443);const Er=q(1);const Br=q(5076);const Qr=q(6197);const Ir=q(3440);const Dr=q(4415);const{WeakRef:kr,FinalizationRegistry:Fr}=q(3194)();const Nr=Symbol("onConnect");const Ur=Symbol("onDisconnect");const Lr=Symbol("onConnectionError");const Mr=Symbol("maxRedirections");const Pr=Symbol("onDrain");const Gr=Symbol("factory");const Or=Symbol("finalizer");const Vr=Symbol("options");function defaultFactory(a,C){return C&&C.connections===1?new Qr(a,C):new Br(a,C)}class Agent extends Er{constructor({factory:a=defaultFactory,maxRedirections:C=0,connect:q,...Ue}={}){super();if(typeof a!=="function"){throw new re("factory must be a function.")}if(q!=null&&typeof q!=="function"&&typeof q!=="object"){throw new re("connect must be a function or an object")}if(!Number.isInteger(C)||C<0){throw new re("maxRedirections must be a positive number")}if(q&&typeof q!=="function"){q={...q}}this[Ar]=Ue.interceptors&&Ue.interceptors.Agent&&Array.isArray(Ue.interceptors.Agent)?Ue.interceptors.Agent:[Dr({maxRedirections:C})];this[Vr]={...Ir.deepClone(Ue),connect:q};this[Vr].interceptors=Ue.interceptors?{...Ue.interceptors}:undefined;this[Mr]=C;this[Gr]=a;this[ae]=new Map;this[Or]=new Fr((a=>{const C=this[ae].get(a);if(C!==undefined&&C.deref()===undefined){this[ae].delete(a)}}));const lt=this;this[Pr]=(a,C)=>{lt.emit("drain",a,[lt,...C])};this[Nr]=(a,C)=>{lt.emit("connect",a,[lt,...C])};this[Ur]=(a,C,q)=>{lt.emit("disconnect",a,[lt,...C],q)};this[Lr]=(a,C,q)=>{lt.emit("connectionError",a,[lt,...C],q)}}get[Ue](){let a=0;for(const C of this[ae].values()){const q=C.deref();if(q){a+=q[Ue]}}return a}[Wt](a,C){let q;if(a.origin&&(typeof a.origin==="string"||a.origin instanceof URL)){q=String(a.origin)}else{throw new re("opts.origin must be a non-empty string or URL.")}const Ue=this[ae].get(q);let lt=Ue?Ue.deref():null;if(!lt){lt=this[Gr](a.origin,this[Vr]).on("drain",this[Pr]).on("connect",this[Nr]).on("disconnect",this[Ur]).on("connectionError",this[Lr]);this[ae].set(q,new kr(lt));this[Or].register(lt,q)}return lt.dispatch(a,C)}async[lt](){const a=[];for(const C of this[ae].values()){const q=C.deref();if(q){a.push(q.close())}}await Promise.all(a)}async[Pt](a){const C=[];for(const q of this[ae].values()){const re=q.deref();if(re){C.push(re.destroy(a))}}await Promise.all(C)}}a.exports=Agent},158:(a,C,q)=>{const{addAbortListener:re}=q(3440);const{RequestAbortedError:ae}=q(8707);const Ue=Symbol("kListener");const lt=Symbol("kSignal");function abort(a){if(a.abort){a.abort()}else{a.onError(new ae)}}function addSignal(a,C){a[lt]=null;a[Ue]=null;if(!C){return}if(C.aborted){abort(a);return}a[lt]=C;a[Ue]=()=>{abort(a)};re(a[lt],a[Ue])}function removeSignal(a){if(!a[lt]){return}if("removeEventListener"in a[lt]){a[lt].removeEventListener("abort",a[Ue])}else{a[lt].removeListener("abort",a[Ue])}a[lt]=null;a[Ue]=null}a.exports={addSignal:addSignal,removeSignal:removeSignal}},4660:(a,C,q)=>{const{AsyncResource:re}=q(290);const{InvalidArgumentError:ae,RequestAbortedError:Ue,SocketError:lt}=q(8707);const Pt=q(3440);const{addSignal:Wt,removeSignal:Ar}=q(158);class ConnectHandler extends re{constructor(a,C){if(!a||typeof a!=="object"){throw new ae("invalid opts")}if(typeof C!=="function"){throw new ae("invalid callback")}const{signal:q,opaque:re,responseHeaders:Ue}=a;if(q&&typeof q.on!=="function"&&typeof q.addEventListener!=="function"){throw new ae("signal must be an EventEmitter or EventTarget")}super("UNDICI_CONNECT");this.opaque=re||null;this.responseHeaders=Ue||null;this.callback=C;this.abort=null;Wt(this,q)}onConnect(a,C){if(!this.callback){throw new Ue}this.abort=a;this.context=C}onHeaders(){throw new lt("bad connect",null)}onUpgrade(a,C,q){const{callback:re,opaque:ae,context:Ue}=this;Ar(this);this.callback=null;let lt=C;if(lt!=null){lt=this.responseHeaders==="raw"?Pt.parseRawHeaders(C):Pt.parseHeaders(C)}this.runInAsyncScope(re,null,null,{statusCode:a,headers:lt,socket:q,opaque:ae,context:Ue})}onError(a){const{callback:C,opaque:q}=this;Ar(this);if(C){this.callback=null;queueMicrotask((()=>{this.runInAsyncScope(C,null,a,{opaque:q})}))}}}function connect(a,C){if(C===undefined){return new Promise(((C,q)=>{connect.call(this,a,((a,re)=>a?q(a):C(re)))}))}try{const q=new ConnectHandler(a,C);this.dispatch({...a,method:"CONNECT"},q)}catch(q){if(typeof C!=="function"){throw q}const re=a&&a.opaque;queueMicrotask((()=>C(q,{opaque:re})))}}a.exports=connect},6862:(a,C,q)=>{const{Readable:re,Duplex:ae,PassThrough:Ue}=q(2203);const{InvalidArgumentError:lt,InvalidReturnValueError:Pt,RequestAbortedError:Wt}=q(8707);const Ar=q(3440);const{AsyncResource:Er}=q(290);const{addSignal:Br,removeSignal:Qr}=q(158);const Ir=q(2613);const Dr=Symbol("resume");class PipelineRequest extends re{constructor(){super({autoDestroy:true});this[Dr]=null}_read(){const{[Dr]:a}=this;if(a){this[Dr]=null;a()}}_destroy(a,C){this._read();C(a)}}class PipelineResponse extends re{constructor(a){super({autoDestroy:true});this[Dr]=a}_read(){this[Dr]()}_destroy(a,C){if(!a&&!this._readableState.endEmitted){a=new Wt}C(a)}}class PipelineHandler extends Er{constructor(a,C){if(!a||typeof a!=="object"){throw new lt("invalid opts")}if(typeof C!=="function"){throw new lt("invalid handler")}const{signal:q,method:re,opaque:Ue,onInfo:Pt,responseHeaders:Er}=a;if(q&&typeof q.on!=="function"&&typeof q.addEventListener!=="function"){throw new lt("signal must be an EventEmitter or EventTarget")}if(re==="CONNECT"){throw new lt("invalid method")}if(Pt&&typeof Pt!=="function"){throw new lt("invalid onInfo callback")}super("UNDICI_PIPELINE");this.opaque=Ue||null;this.responseHeaders=Er||null;this.handler=C;this.abort=null;this.context=null;this.onInfo=Pt||null;this.req=(new PipelineRequest).on("error",Ar.nop);this.ret=new ae({readableObjectMode:a.objectMode,autoDestroy:true,read:()=>{const{body:a}=this;if(a&&a.resume){a.resume()}},write:(a,C,q)=>{const{req:re}=this;if(re.push(a,C)||re._readableState.destroyed){q()}else{re[Dr]=q}},destroy:(a,C)=>{const{body:q,req:re,res:ae,ret:Ue,abort:lt}=this;if(!a&&!Ue._readableState.endEmitted){a=new Wt}if(lt&&a){lt()}Ar.destroy(q,a);Ar.destroy(re,a);Ar.destroy(ae,a);Qr(this);C(a)}}).on("prefinish",(()=>{const{req:a}=this;a.push(null)}));this.res=null;Br(this,q)}onConnect(a,C){const{ret:q,res:re}=this;Ir(!re,"pipeline cannot be retried");if(q.destroyed){throw new Wt}this.abort=a;this.context=C}onHeaders(a,C,q){const{opaque:re,handler:ae,context:Ue}=this;if(a<200){if(this.onInfo){const q=this.responseHeaders==="raw"?Ar.parseRawHeaders(C):Ar.parseHeaders(C);this.onInfo({statusCode:a,headers:q})}return}this.res=new PipelineResponse(q);let lt;try{this.handler=null;const q=this.responseHeaders==="raw"?Ar.parseRawHeaders(C):Ar.parseHeaders(C);lt=this.runInAsyncScope(ae,null,{statusCode:a,headers:q,opaque:re,body:this.res,context:Ue})}catch(a){this.res.on("error",Ar.nop);throw a}if(!lt||typeof lt.on!=="function"){throw new Pt("expected Readable")}lt.on("data",(a=>{const{ret:C,body:q}=this;if(!C.push(a)&&q.pause){q.pause()}})).on("error",(a=>{const{ret:C}=this;Ar.destroy(C,a)})).on("end",(()=>{const{ret:a}=this;a.push(null)})).on("close",(()=>{const{ret:a}=this;if(!a._readableState.ended){Ar.destroy(a,new Wt)}}));this.body=lt}onData(a){const{res:C}=this;return C.push(a)}onComplete(a){const{res:C}=this;C.push(null)}onError(a){const{ret:C}=this;this.handler=null;Ar.destroy(C,a)}}function pipeline(a,C){try{const q=new PipelineHandler(a,C);this.dispatch({...a,body:q.req},q);return q.ret}catch(a){return(new Ue).destroy(a)}}a.exports=pipeline},4043:(a,C,q)=>{const re=q(9927);const{InvalidArgumentError:ae,RequestAbortedError:Ue}=q(8707);const lt=q(3440);const{getResolveErrorBodyCallback:Pt}=q(7655);const{AsyncResource:Wt}=q(290);const{addSignal:Ar,removeSignal:Er}=q(158);class RequestHandler extends Wt{constructor(a,C){if(!a||typeof a!=="object"){throw new ae("invalid opts")}const{signal:q,method:re,opaque:Ue,body:Pt,onInfo:Wt,responseHeaders:Er,throwOnError:Br,highWaterMark:Qr}=a;try{if(typeof C!=="function"){throw new ae("invalid callback")}if(Qr&&(typeof Qr!=="number"||Qr<0)){throw new ae("invalid highWaterMark")}if(q&&typeof q.on!=="function"&&typeof q.addEventListener!=="function"){throw new ae("signal must be an EventEmitter or EventTarget")}if(re==="CONNECT"){throw new ae("invalid method")}if(Wt&&typeof Wt!=="function"){throw new ae("invalid onInfo callback")}super("UNDICI_REQUEST")}catch(a){if(lt.isStream(Pt)){lt.destroy(Pt.on("error",lt.nop),a)}throw a}this.responseHeaders=Er||null;this.opaque=Ue||null;this.callback=C;this.res=null;this.abort=null;this.body=Pt;this.trailers={};this.context=null;this.onInfo=Wt||null;this.throwOnError=Br;this.highWaterMark=Qr;if(lt.isStream(Pt)){Pt.on("error",(a=>{this.onError(a)}))}Ar(this,q)}onConnect(a,C){if(!this.callback){throw new Ue}this.abort=a;this.context=C}onHeaders(a,C,q,ae){const{callback:Ue,opaque:Wt,abort:Ar,context:Er,responseHeaders:Br,highWaterMark:Qr}=this;const Ir=Br==="raw"?lt.parseRawHeaders(C):lt.parseHeaders(C);if(a<200){if(this.onInfo){this.onInfo({statusCode:a,headers:Ir})}return}const Dr=Br==="raw"?lt.parseHeaders(C):Ir;const kr=Dr["content-type"];const Fr=new re({resume:q,abort:Ar,contentType:kr,highWaterMark:Qr});this.callback=null;this.res=Fr;if(Ue!==null){if(this.throwOnError&&a>=400){this.runInAsyncScope(Pt,null,{callback:Ue,body:Fr,contentType:kr,statusCode:a,statusMessage:ae,headers:Ir})}else{this.runInAsyncScope(Ue,null,null,{statusCode:a,headers:Ir,trailers:this.trailers,opaque:Wt,body:Fr,context:Er})}}}onData(a){const{res:C}=this;return C.push(a)}onComplete(a){const{res:C}=this;Er(this);lt.parseHeaders(a,this.trailers);C.push(null)}onError(a){const{res:C,callback:q,body:re,opaque:ae}=this;Er(this);if(q){this.callback=null;queueMicrotask((()=>{this.runInAsyncScope(q,null,a,{opaque:ae})}))}if(C){this.res=null;queueMicrotask((()=>{lt.destroy(C,a)}))}if(re){this.body=null;lt.destroy(re,a)}}}function request(a,C){if(C===undefined){return new Promise(((C,q)=>{request.call(this,a,((a,re)=>a?q(a):C(re)))}))}try{this.dispatch(a,new RequestHandler(a,C))}catch(q){if(typeof C!=="function"){throw q}const re=a&&a.opaque;queueMicrotask((()=>C(q,{opaque:re})))}}a.exports=request;a.exports.RequestHandler=RequestHandler},3560:(a,C,q)=>{const{finished:re,PassThrough:ae}=q(2203);const{InvalidArgumentError:Ue,InvalidReturnValueError:lt,RequestAbortedError:Pt}=q(8707);const Wt=q(3440);const{getResolveErrorBodyCallback:Ar}=q(7655);const{AsyncResource:Er}=q(290);const{addSignal:Br,removeSignal:Qr}=q(158);class StreamHandler extends Er{constructor(a,C,q){if(!a||typeof a!=="object"){throw new Ue("invalid opts")}const{signal:re,method:ae,opaque:lt,body:Pt,onInfo:Ar,responseHeaders:Er,throwOnError:Qr}=a;try{if(typeof q!=="function"){throw new Ue("invalid callback")}if(typeof C!=="function"){throw new Ue("invalid factory")}if(re&&typeof re.on!=="function"&&typeof re.addEventListener!=="function"){throw new Ue("signal must be an EventEmitter or EventTarget")}if(ae==="CONNECT"){throw new Ue("invalid method")}if(Ar&&typeof Ar!=="function"){throw new Ue("invalid onInfo callback")}super("UNDICI_STREAM")}catch(a){if(Wt.isStream(Pt)){Wt.destroy(Pt.on("error",Wt.nop),a)}throw a}this.responseHeaders=Er||null;this.opaque=lt||null;this.factory=C;this.callback=q;this.res=null;this.abort=null;this.context=null;this.trailers=null;this.body=Pt;this.onInfo=Ar||null;this.throwOnError=Qr||false;if(Wt.isStream(Pt)){Pt.on("error",(a=>{this.onError(a)}))}Br(this,re)}onConnect(a,C){if(!this.callback){throw new Pt}this.abort=a;this.context=C}onHeaders(a,C,q,Ue){const{factory:Pt,opaque:Er,context:Br,callback:Qr,responseHeaders:Ir}=this;const Dr=Ir==="raw"?Wt.parseRawHeaders(C):Wt.parseHeaders(C);if(a<200){if(this.onInfo){this.onInfo({statusCode:a,headers:Dr})}return}this.factory=null;let kr;if(this.throwOnError&&a>=400){const q=Ir==="raw"?Wt.parseHeaders(C):Dr;const re=q["content-type"];kr=new ae;this.callback=null;this.runInAsyncScope(Ar,null,{callback:Qr,body:kr,contentType:re,statusCode:a,statusMessage:Ue,headers:Dr})}else{if(Pt===null){return}kr=this.runInAsyncScope(Pt,null,{statusCode:a,headers:Dr,opaque:Er,context:Br});if(!kr||typeof kr.write!=="function"||typeof kr.end!=="function"||typeof kr.on!=="function"){throw new lt("expected Writable")}re(kr,{readable:false},(a=>{const{callback:C,res:q,opaque:re,trailers:ae,abort:Ue}=this;this.res=null;if(a||!q.readable){Wt.destroy(q,a)}this.callback=null;this.runInAsyncScope(C,null,a||null,{opaque:re,trailers:ae});if(a){Ue()}}))}kr.on("drain",q);this.res=kr;const Fr=kr.writableNeedDrain!==undefined?kr.writableNeedDrain:kr._writableState&&kr._writableState.needDrain;return Fr!==true}onData(a){const{res:C}=this;return C?C.write(a):true}onComplete(a){const{res:C}=this;Qr(this);if(!C){return}this.trailers=Wt.parseHeaders(a);C.end()}onError(a){const{res:C,callback:q,opaque:re,body:ae}=this;Qr(this);this.factory=null;if(C){this.res=null;Wt.destroy(C,a)}else if(q){this.callback=null;queueMicrotask((()=>{this.runInAsyncScope(q,null,a,{opaque:re})}))}if(ae){this.body=null;Wt.destroy(ae,a)}}}function stream(a,C,q){if(q===undefined){return new Promise(((q,re)=>{stream.call(this,a,C,((a,C)=>a?re(a):q(C)))}))}try{this.dispatch(a,new StreamHandler(a,C,q))}catch(C){if(typeof q!=="function"){throw C}const re=a&&a.opaque;queueMicrotask((()=>q(C,{opaque:re})))}}a.exports=stream},1882:(a,C,q)=>{const{InvalidArgumentError:re,RequestAbortedError:ae,SocketError:Ue}=q(8707);const{AsyncResource:lt}=q(290);const Pt=q(3440);const{addSignal:Wt,removeSignal:Ar}=q(158);const Er=q(2613);class UpgradeHandler extends lt{constructor(a,C){if(!a||typeof a!=="object"){throw new re("invalid opts")}if(typeof C!=="function"){throw new re("invalid callback")}const{signal:q,opaque:ae,responseHeaders:Ue}=a;if(q&&typeof q.on!=="function"&&typeof q.addEventListener!=="function"){throw new re("signal must be an EventEmitter or EventTarget")}super("UNDICI_UPGRADE");this.responseHeaders=Ue||null;this.opaque=ae||null;this.callback=C;this.abort=null;this.context=null;Wt(this,q)}onConnect(a,C){if(!this.callback){throw new ae}this.abort=a;this.context=null}onHeaders(){throw new Ue("bad upgrade",null)}onUpgrade(a,C,q){const{callback:re,opaque:ae,context:Ue}=this;Er.strictEqual(a,101);Ar(this);this.callback=null;const lt=this.responseHeaders==="raw"?Pt.parseRawHeaders(C):Pt.parseHeaders(C);this.runInAsyncScope(re,null,null,{headers:lt,socket:q,opaque:ae,context:Ue})}onError(a){const{callback:C,opaque:q}=this;Ar(this);if(C){this.callback=null;queueMicrotask((()=>{this.runInAsyncScope(C,null,a,{opaque:q})}))}}}function upgrade(a,C){if(C===undefined){return new Promise(((C,q)=>{upgrade.call(this,a,((a,re)=>a?q(a):C(re)))}))}try{const q=new UpgradeHandler(a,C);this.dispatch({...a,method:a.method||"GET",upgrade:a.protocol||"Websocket"},q)}catch(q){if(typeof C!=="function"){throw q}const re=a&&a.opaque;queueMicrotask((()=>C(q,{opaque:re})))}}a.exports=upgrade},6615:(a,C,q)=>{a.exports.request=q(4043);a.exports.stream=q(3560);a.exports.pipeline=q(6862);a.exports.upgrade=q(1882);a.exports.connect=q(4660)},9927:(a,C,q)=>{const re=q(2613);const{Readable:ae}=q(2203);const{RequestAbortedError:Ue,NotSupportedError:lt,InvalidArgumentError:Pt}=q(8707);const Wt=q(3440);const{ReadableStreamFrom:Ar,toUSVString:Er}=q(3440);let Br;const Qr=Symbol("kConsume");const Ir=Symbol("kReading");const Dr=Symbol("kBody");const kr=Symbol("abort");const Fr=Symbol("kContentType");const noop=()=>{};a.exports=class BodyReadable extends ae{constructor({resume:a,abort:C,contentType:q="",highWaterMark:re=64*1024}){super({autoDestroy:true,read:a,highWaterMark:re});this._readableState.dataEmitted=false;this[kr]=C;this[Qr]=null;this[Dr]=null;this[Fr]=q;this[Ir]=false}destroy(a){if(this.destroyed){return this}if(!a&&!this._readableState.endEmitted){a=new Ue}if(a){this[kr]()}return super.destroy(a)}emit(a,...C){if(a==="data"){this._readableState.dataEmitted=true}else if(a==="error"){this._readableState.errorEmitted=true}return super.emit(a,...C)}on(a,...C){if(a==="data"||a==="readable"){this[Ir]=true}return super.on(a,...C)}addListener(a,...C){return this.on(a,...C)}off(a,...C){const q=super.off(a,...C);if(a==="data"||a==="readable"){this[Ir]=this.listenerCount("data")>0||this.listenerCount("readable")>0}return q}removeListener(a,...C){return this.off(a,...C)}push(a){if(this[Qr]&&a!==null&&this.readableLength===0){consumePush(this[Qr],a);return this[Ir]?super.push(a):true}return super.push(a)}async text(){return consume(this,"text")}async json(){return consume(this,"json")}async blob(){return consume(this,"blob")}async arrayBuffer(){return consume(this,"arrayBuffer")}async formData(){throw new lt}get bodyUsed(){return Wt.isDisturbed(this)}get body(){if(!this[Dr]){this[Dr]=Ar(this);if(this[Qr]){this[Dr].getReader();re(this[Dr].locked)}}return this[Dr]}dump(a){let C=a&&Number.isFinite(a.limit)?a.limit:262144;const q=a&&a.signal;if(q){try{if(typeof q!=="object"||!("aborted"in q)){throw new Pt("signal must be an AbortSignal")}Wt.throwIfAborted(q)}catch(a){return Promise.reject(a)}}if(this.closed){return Promise.resolve(null)}return new Promise(((a,re)=>{const ae=q?Wt.addAbortListener(q,(()=>{this.destroy()})):noop;this.on("close",(function(){ae();if(q&&q.aborted){re(q.reason||Object.assign(new Error("The operation was aborted"),{name:"AbortError"}))}else{a(null)}})).on("error",noop).on("data",(function(a){C-=a.length;if(C<=0){this.destroy()}})).resume()}))}};function isLocked(a){return a[Dr]&&a[Dr].locked===true||a[Qr]}function isUnusable(a){return Wt.isDisturbed(a)||isLocked(a)}async function consume(a,C){if(isUnusable(a)){throw new TypeError("unusable")}re(!a[Qr]);return new Promise(((q,re)=>{a[Qr]={type:C,stream:a,resolve:q,reject:re,length:0,body:[]};a.on("error",(function(a){consumeFinish(this[Qr],a)})).on("close",(function(){if(this[Qr].body!==null){consumeFinish(this[Qr],new Ue)}}));process.nextTick(consumeStart,a[Qr])}))}function consumeStart(a){if(a.body===null){return}const{_readableState:C}=a.stream;for(const q of C.buffer){consumePush(a,q)}if(C.endEmitted){consumeEnd(this[Qr])}else{a.stream.on("end",(function(){consumeEnd(this[Qr])}))}a.stream.resume();while(a.stream.read()!=null){}}function consumeEnd(a){const{type:C,body:re,resolve:ae,stream:Ue,length:lt}=a;try{if(C==="text"){ae(Er(Buffer.concat(re)))}else if(C==="json"){ae(JSON.parse(Buffer.concat(re)))}else if(C==="arrayBuffer"){const a=new Uint8Array(lt);let C=0;for(const q of re){a.set(q,C);C+=q.byteLength}ae(a.buffer)}else if(C==="blob"){if(!Br){Br=q(181).Blob}ae(new Br(re,{type:Ue[Fr]}))}consumeFinish(a)}catch(a){Ue.destroy(a)}}function consumePush(a,C){a.length+=C.length;a.body.push(C)}function consumeFinish(a,C){if(a.body===null){return}if(C){a.reject(C)}else{a.resolve()}a.type=null;a.stream=null;a.resolve=null;a.reject=null;a.length=0;a.body=null}},7655:(a,C,q)=>{const re=q(2613);const{ResponseStatusCodeError:ae}=q(8707);const{toUSVString:Ue}=q(3440);async function getResolveErrorBodyCallback({callback:a,body:C,contentType:q,statusCode:lt,statusMessage:Pt,headers:Wt}){re(C);let Ar=[];let Er=0;for await(const a of C){Ar.push(a);Er+=a.length;if(Er>128*1024){Ar=null;break}}if(lt===204||!q||!Ar){process.nextTick(a,new ae(`Response status code ${lt}${Pt?`: ${Pt}`:""}`,lt,Wt));return}try{if(q.startsWith("application/json")){const C=JSON.parse(Ue(Buffer.concat(Ar)));process.nextTick(a,new ae(`Response status code ${lt}${Pt?`: ${Pt}`:""}`,lt,Wt,C));return}if(q.startsWith("text/")){const C=Ue(Buffer.concat(Ar));process.nextTick(a,new ae(`Response status code ${lt}${Pt?`: ${Pt}`:""}`,lt,Wt,C));return}}catch(a){}process.nextTick(a,new ae(`Response status code ${lt}${Pt?`: ${Pt}`:""}`,lt,Wt))}a.exports={getResolveErrorBodyCallback:getResolveErrorBodyCallback}},1093:(a,C,q)=>{const{BalancedPoolMissingUpstreamError:re,InvalidArgumentError:ae}=q(8707);const{PoolBase:Ue,kClients:lt,kNeedDrain:Pt,kAddClient:Wt,kRemoveClient:Ar,kGetDispatcher:Er}=q(8640);const Br=q(5076);const{kUrl:Qr,kInterceptors:Ir}=q(6443);const{parseOrigin:Dr}=q(3440);const kr=Symbol("factory");const Fr=Symbol("options");const Nr=Symbol("kGreatestCommonDivisor");const Ur=Symbol("kCurrentWeight");const Lr=Symbol("kIndex");const Mr=Symbol("kWeight");const Pr=Symbol("kMaxWeightPerServer");const Gr=Symbol("kErrorPenalty");function getGreatestCommonDivisor(a,C){if(C===0)return a;return getGreatestCommonDivisor(C,a%C)}function defaultFactory(a,C){return new Br(a,C)}class BalancedPool extends Ue{constructor(a=[],{factory:C=defaultFactory,...q}={}){super();this[Fr]=q;this[Lr]=-1;this[Ur]=0;this[Pr]=this[Fr].maxWeightPerServer||100;this[Gr]=this[Fr].errorPenalty||15;if(!Array.isArray(a)){a=[a]}if(typeof C!=="function"){throw new ae("factory must be a function.")}this[Ir]=q.interceptors&&q.interceptors.BalancedPool&&Array.isArray(q.interceptors.BalancedPool)?q.interceptors.BalancedPool:[];this[kr]=C;for(const C of a){this.addUpstream(C)}this._updateBalancedPoolStats()}addUpstream(a){const C=Dr(a).origin;if(this[lt].find((a=>a[Qr].origin===C&&a.closed!==true&&a.destroyed!==true))){return this}const q=this[kr](C,Object.assign({},this[Fr]));this[Wt](q);q.on("connect",(()=>{q[Mr]=Math.min(this[Pr],q[Mr]+this[Gr])}));q.on("connectionError",(()=>{q[Mr]=Math.max(1,q[Mr]-this[Gr]);this._updateBalancedPoolStats()}));q.on("disconnect",((...a)=>{const C=a[2];if(C&&C.code==="UND_ERR_SOCKET"){q[Mr]=Math.max(1,q[Mr]-this[Gr]);this._updateBalancedPoolStats()}}));for(const a of this[lt]){a[Mr]=this[Pr]}this._updateBalancedPoolStats();return this}_updateBalancedPoolStats(){this[Nr]=this[lt].map((a=>a[Mr])).reduce(getGreatestCommonDivisor,0)}removeUpstream(a){const C=Dr(a).origin;const q=this[lt].find((a=>a[Qr].origin===C&&a.closed!==true&&a.destroyed!==true));if(q){this[Ar](q)}return this}get upstreams(){return this[lt].filter((a=>a.closed!==true&&a.destroyed!==true)).map((a=>a[Qr].origin))}[Er](){if(this[lt].length===0){throw new re}const a=this[lt].find((a=>!a[Pt]&&a.closed!==true&&a.destroyed!==true));if(!a){return}const C=this[lt].map((a=>a[Pt])).reduce(((a,C)=>a&&C),true);if(C){return}let q=0;let ae=this[lt].findIndex((a=>!a[Pt]));while(q++this[lt][ae][Mr]&&!a[Pt]){ae=this[Lr]}if(this[Lr]===0){this[Ur]=this[Ur]-this[Nr];if(this[Ur]<=0){this[Ur]=this[Pr]}}if(a[Mr]>=this[Ur]&&!a[Pt]){return a}}this[Ur]=this[lt][ae][Mr];this[Lr]=ae;return this[lt][ae]}}a.exports=BalancedPool},479:(a,C,q)=>{const{kConstruct:re}=q(296);const{urlEquals:ae,fieldValues:Ue}=q(3993);const{kEnumerableProperty:lt,isDisturbed:Pt}=q(3440);const{kHeadersList:Wt}=q(6443);const{webidl:Ar}=q(4222);const{Response:Er,cloneResponse:Br}=q(8676);const{Request:Qr}=q(5194);const{kState:Ir,kHeaders:Dr,kGuard:kr,kRealm:Fr}=q(9710);const{fetching:Nr}=q(2315);const{urlIsHttpHttpsScheme:Ur,createDeferredPromise:Lr,readAllBytes:Mr}=q(5523);const Pr=q(2613);const{getGlobalDispatcher:Gr}=q(2581);class Cache{#e;constructor(){if(arguments[0]!==re){Ar.illegalConstructor()}this.#e=arguments[1]}async match(a,C={}){Ar.brandCheck(this,Cache);Ar.argumentLengthCheck(arguments,1,{header:"Cache.match"});a=Ar.converters.RequestInfo(a);C=Ar.converters.CacheQueryOptions(C);const q=await this.matchAll(a,C);if(q.length===0){return}return q[0]}async matchAll(a=undefined,C={}){Ar.brandCheck(this,Cache);if(a!==undefined)a=Ar.converters.RequestInfo(a);C=Ar.converters.CacheQueryOptions(C);let q=null;if(a!==undefined){if(a instanceof Qr){q=a[Ir];if(q.method!=="GET"&&!C.ignoreMethod){return[]}}else if(typeof a==="string"){q=new Qr(a)[Ir]}}const re=[];if(a===undefined){for(const a of this.#e){re.push(a[1])}}else{const a=this.#t(q,C);for(const C of a){re.push(C[1])}}const ae=[];for(const a of re){const C=new Er(a.body?.source??null);const q=C[Ir].body;C[Ir]=a;C[Ir].body=q;C[Dr][Wt]=a.headersList;C[Dr][kr]="immutable";ae.push(C)}return Object.freeze(ae)}async add(a){Ar.brandCheck(this,Cache);Ar.argumentLengthCheck(arguments,1,{header:"Cache.add"});a=Ar.converters.RequestInfo(a);const C=[a];const q=this.addAll(C);return await q}async addAll(a){Ar.brandCheck(this,Cache);Ar.argumentLengthCheck(arguments,1,{header:"Cache.addAll"});a=Ar.converters["sequence"](a);const C=[];const q=[];for(const C of a){if(typeof C==="string"){continue}const a=C[Ir];if(!Ur(a.url)||a.method!=="GET"){throw Ar.errors.exception({header:"Cache.addAll",message:"Expected http/s scheme when method is not GET."})}}const re=[];for(const ae of a){const a=new Qr(ae)[Ir];if(!Ur(a.url)){throw Ar.errors.exception({header:"Cache.addAll",message:"Expected http/s scheme."})}a.initiator="fetch";a.destination="subresource";q.push(a);const lt=Lr();re.push(Nr({request:a,dispatcher:Gr(),processResponse(a){if(a.type==="error"||a.status===206||a.status<200||a.status>299){lt.reject(Ar.errors.exception({header:"Cache.addAll",message:"Received an invalid status code or the request failed."}))}else if(a.headersList.contains("vary")){const C=Ue(a.headersList.get("vary"));for(const a of C){if(a==="*"){lt.reject(Ar.errors.exception({header:"Cache.addAll",message:"invalid vary field value"}));for(const a of re){a.abort()}return}}}},processResponseEndOfBody(a){if(a.aborted){lt.reject(new DOMException("aborted","AbortError"));return}lt.resolve(a)}}));C.push(lt.promise)}const ae=Promise.all(C);const lt=await ae;const Pt=[];let Wt=0;for(const a of lt){const C={type:"put",request:q[Wt],response:a};Pt.push(C);Wt++}const Er=Lr();let Br=null;try{this.#r(Pt)}catch(a){Br=a}queueMicrotask((()=>{if(Br===null){Er.resolve(undefined)}else{Er.reject(Br)}}));return Er.promise}async put(a,C){Ar.brandCheck(this,Cache);Ar.argumentLengthCheck(arguments,2,{header:"Cache.put"});a=Ar.converters.RequestInfo(a);C=Ar.converters.Response(C);let q=null;if(a instanceof Qr){q=a[Ir]}else{q=new Qr(a)[Ir]}if(!Ur(q.url)||q.method!=="GET"){throw Ar.errors.exception({header:"Cache.put",message:"Expected an http/s scheme when method is not GET"})}const re=C[Ir];if(re.status===206){throw Ar.errors.exception({header:"Cache.put",message:"Got 206 status"})}if(re.headersList.contains("vary")){const a=Ue(re.headersList.get("vary"));for(const C of a){if(C==="*"){throw Ar.errors.exception({header:"Cache.put",message:"Got * vary field value"})}}}if(re.body&&(Pt(re.body.stream)||re.body.stream.locked)){throw Ar.errors.exception({header:"Cache.put",message:"Response body is locked or disturbed"})}const ae=Br(re);const lt=Lr();if(re.body!=null){const a=re.body.stream;const C=a.getReader();Mr(C).then(lt.resolve,lt.reject)}else{lt.resolve(undefined)}const Wt=[];const Er={type:"put",request:q,response:ae};Wt.push(Er);const Dr=await lt.promise;if(ae.body!=null){ae.body.source=Dr}const kr=Lr();let Fr=null;try{this.#r(Wt)}catch(a){Fr=a}queueMicrotask((()=>{if(Fr===null){kr.resolve()}else{kr.reject(Fr)}}));return kr.promise}async delete(a,C={}){Ar.brandCheck(this,Cache);Ar.argumentLengthCheck(arguments,1,{header:"Cache.delete"});a=Ar.converters.RequestInfo(a);C=Ar.converters.CacheQueryOptions(C);let q=null;if(a instanceof Qr){q=a[Ir];if(q.method!=="GET"&&!C.ignoreMethod){return false}}else{Pr(typeof a==="string");q=new Qr(a)[Ir]}const re=[];const ae={type:"delete",request:q,options:C};re.push(ae);const Ue=Lr();let lt=null;let Pt;try{Pt=this.#r(re)}catch(a){lt=a}queueMicrotask((()=>{if(lt===null){Ue.resolve(!!Pt?.length)}else{Ue.reject(lt)}}));return Ue.promise}async keys(a=undefined,C={}){Ar.brandCheck(this,Cache);if(a!==undefined)a=Ar.converters.RequestInfo(a);C=Ar.converters.CacheQueryOptions(C);let q=null;if(a!==undefined){if(a instanceof Qr){q=a[Ir];if(q.method!=="GET"&&!C.ignoreMethod){return[]}}else if(typeof a==="string"){q=new Qr(a)[Ir]}}const re=Lr();const ae=[];if(a===undefined){for(const a of this.#e){ae.push(a[0])}}else{const a=this.#t(q,C);for(const C of a){ae.push(C[0])}}queueMicrotask((()=>{const a=[];for(const C of ae){const q=new Qr("https://a");q[Ir]=C;q[Dr][Wt]=C.headersList;q[Dr][kr]="immutable";q[Fr]=C.client;a.push(q)}re.resolve(Object.freeze(a))}));return re.promise}#r(a){const C=this.#e;const q=[...C];const re=[];const ae=[];try{for(const q of a){if(q.type!=="delete"&&q.type!=="put"){throw Ar.errors.exception({header:"Cache.#batchCacheOperations",message:'operation type does not match "delete" or "put"'})}if(q.type==="delete"&&q.response!=null){throw Ar.errors.exception({header:"Cache.#batchCacheOperations",message:"delete operation should not have an associated response"})}if(this.#t(q.request,q.options,re).length){throw new DOMException("???","InvalidStateError")}let a;if(q.type==="delete"){a=this.#t(q.request,q.options);if(a.length===0){return[]}for(const q of a){const a=C.indexOf(q);Pr(a!==-1);C.splice(a,1)}}else if(q.type==="put"){if(q.response==null){throw Ar.errors.exception({header:"Cache.#batchCacheOperations",message:"put operation should have an associated response"})}const ae=q.request;if(!Ur(ae.url)){throw Ar.errors.exception({header:"Cache.#batchCacheOperations",message:"expected http or https scheme"})}if(ae.method!=="GET"){throw Ar.errors.exception({header:"Cache.#batchCacheOperations",message:"not get method"})}if(q.options!=null){throw Ar.errors.exception({header:"Cache.#batchCacheOperations",message:"options must not be defined"})}a=this.#t(q.request);for(const q of a){const a=C.indexOf(q);Pr(a!==-1);C.splice(a,1)}C.push([q.request,q.response]);re.push([q.request,q.response])}ae.push([q.request,q.response])}return ae}catch(a){this.#e.length=0;this.#e=q;throw a}}#t(a,C,q){const re=[];const ae=q??this.#e;for(const q of ae){const[ae,Ue]=q;if(this.#A(a,ae,Ue,C)){re.push(q)}}return re}#A(a,C,q=null,re){const lt=new URL(a.url);const Pt=new URL(C.url);if(re?.ignoreSearch){Pt.search="";lt.search=""}if(!ae(lt,Pt,true)){return false}if(q==null||re?.ignoreVary||!q.headersList.contains("vary")){return true}const Wt=Ue(q.headersList.get("vary"));for(const q of Wt){if(q==="*"){return false}const re=C.headersList.get(q);const ae=a.headersList.get(q);if(re!==ae){return false}}return true}}Object.defineProperties(Cache.prototype,{[Symbol.toStringTag]:{value:"Cache",configurable:true},match:lt,matchAll:lt,add:lt,addAll:lt,put:lt,delete:lt,keys:lt});const Or=[{key:"ignoreSearch",converter:Ar.converters.boolean,defaultValue:false},{key:"ignoreMethod",converter:Ar.converters.boolean,defaultValue:false},{key:"ignoreVary",converter:Ar.converters.boolean,defaultValue:false}];Ar.converters.CacheQueryOptions=Ar.dictionaryConverter(Or);Ar.converters.MultiCacheQueryOptions=Ar.dictionaryConverter([...Or,{key:"cacheName",converter:Ar.converters.DOMString}]);Ar.converters.Response=Ar.interfaceConverter(Er);Ar.converters["sequence"]=Ar.sequenceConverter(Ar.converters.RequestInfo);a.exports={Cache:Cache}},4738:(a,C,q)=>{const{kConstruct:re}=q(296);const{Cache:ae}=q(479);const{webidl:Ue}=q(4222);const{kEnumerableProperty:lt}=q(3440);class CacheStorage{#s=new Map;constructor(){if(arguments[0]!==re){Ue.illegalConstructor()}}async match(a,C={}){Ue.brandCheck(this,CacheStorage);Ue.argumentLengthCheck(arguments,1,{header:"CacheStorage.match"});a=Ue.converters.RequestInfo(a);C=Ue.converters.MultiCacheQueryOptions(C);if(C.cacheName!=null){if(this.#s.has(C.cacheName)){const q=this.#s.get(C.cacheName);const Ue=new ae(re,q);return await Ue.match(a,C)}}else{for(const q of this.#s.values()){const Ue=new ae(re,q);const lt=await Ue.match(a,C);if(lt!==undefined){return lt}}}}async has(a){Ue.brandCheck(this,CacheStorage);Ue.argumentLengthCheck(arguments,1,{header:"CacheStorage.has"});a=Ue.converters.DOMString(a);return this.#s.has(a)}async open(a){Ue.brandCheck(this,CacheStorage);Ue.argumentLengthCheck(arguments,1,{header:"CacheStorage.open"});a=Ue.converters.DOMString(a);if(this.#s.has(a)){const C=this.#s.get(a);return new ae(re,C)}const C=[];this.#s.set(a,C);return new ae(re,C)}async delete(a){Ue.brandCheck(this,CacheStorage);Ue.argumentLengthCheck(arguments,1,{header:"CacheStorage.delete"});a=Ue.converters.DOMString(a);return this.#s.delete(a)}async keys(){Ue.brandCheck(this,CacheStorage);const a=this.#s.keys();return[...a]}}Object.defineProperties(CacheStorage.prototype,{[Symbol.toStringTag]:{value:"CacheStorage",configurable:true},match:lt,has:lt,open:lt,delete:lt,keys:lt});a.exports={CacheStorage:CacheStorage}},296:(a,C,q)=>{a.exports={kConstruct:q(6443).kConstruct}},3993:(a,C,q)=>{const re=q(2613);const{URLSerializer:ae}=q(4322);const{isValidHeaderName:Ue}=q(5523);function urlEquals(a,C,q=false){const re=ae(a,q);const Ue=ae(C,q);return re===Ue}function fieldValues(a){re(a!==null);const C=[];for(let q of a.split(",")){q=q.trim();if(!q.length){continue}else if(!Ue(q)){continue}C.push(q)}return C}a.exports={urlEquals:urlEquals,fieldValues:fieldValues}},6197:(a,C,q)=>{const re=q(2613);const ae=q(9278);const Ue=q(8611);const{pipeline:lt}=q(2203);const Pt=q(3440);const Wt=q(8804);const Ar=q(4655);const Er=q(1);const{RequestContentLengthMismatchError:Br,ResponseContentLengthMismatchError:Qr,InvalidArgumentError:Ir,RequestAbortedError:Dr,HeadersTimeoutError:kr,HeadersOverflowError:Fr,SocketError:Nr,InformationalError:Ur,BodyTimeoutError:Lr,HTTPParserError:Mr,ResponseExceededMaxSizeError:Pr,ClientDestroyedError:Gr}=q(8707);const Or=q(9136);const{kUrl:Vr,kReset:Hr,kServerName:xr,kClient:Yr,kBusy:Jr,kParser:Wr,kConnect:jr,kBlocking:zr,kResuming:Xr,kRunning:Kr,kPending:Zr,kSize:$r,kWriting:eA,kQueue:tA,kConnected:rA,kConnecting:AA,kNeedDrain:sA,kNoRef:aA,kKeepAliveDefaultTimeout:oA,kHostHeader:iA,kPendingIdx:nA,kRunningIdx:dA,kError:pA,kPipelining:lA,kSocket:cA,kKeepAliveTimeoutValue:uA,kMaxHeadersSize:gA,kKeepAliveMaxTimeout:mA,kKeepAliveTimeoutThreshold:hA,kHeadersTimeout:EA,kBodyTimeout:fA,kStrictContentLength:CA,kConnector:BA,kMaxRedirections:QA,kMaxRequests:IA,kCounter:wA,kClose:yA,kDestroy:bA,kDispatch:vA,kInterceptors:SA,kLocalAddress:RA,kMaxResponseSize:_A,kHTTPConnVersion:DA,kHost:kA,kHTTP2Session:TA,kHTTP2SessionState:FA,kHTTP2BuildRequest:NA,kHTTP2CopyHeaders:UA,kHTTP1BuildRequest:LA}=q(6443);let MA;try{MA=q(5675)}catch{MA={constants:{}}}const{constants:{HTTP2_HEADER_AUTHORITY:PA,HTTP2_HEADER_METHOD:GA,HTTP2_HEADER_PATH:OA,HTTP2_HEADER_SCHEME:VA,HTTP2_HEADER_CONTENT_LENGTH:HA,HTTP2_HEADER_EXPECT:xA,HTTP2_HEADER_STATUS:YA}}=MA;let JA=false;const qA=Buffer[Symbol.species];const WA=Symbol("kClosedResolve");const jA={};try{const a=q(1637);jA.sendHeaders=a.channel("undici:client:sendHeaders");jA.beforeConnect=a.channel("undici:client:beforeConnect");jA.connectError=a.channel("undici:client:connectError");jA.connected=a.channel("undici:client:connected")}catch{jA.sendHeaders={hasSubscribers:false};jA.beforeConnect={hasSubscribers:false};jA.connectError={hasSubscribers:false};jA.connected={hasSubscribers:false}}class Client extends Er{constructor(a,{interceptors:C,maxHeaderSize:q,headersTimeout:re,socketTimeout:lt,requestTimeout:Wt,connectTimeout:Ar,bodyTimeout:Er,idleTimeout:Br,keepAlive:Qr,keepAliveTimeout:Dr,maxKeepAliveTimeout:kr,keepAliveMaxTimeout:Fr,keepAliveTimeoutThreshold:Nr,socketPath:Ur,pipelining:Lr,tls:Mr,strictContentLength:Pr,maxCachedSessions:Gr,maxRedirections:Hr,connect:Yr,maxRequestsPerClient:Jr,localAddress:Wr,maxResponseSize:jr,autoSelectFamily:zr,autoSelectFamilyAttemptTimeout:Kr,allowH2:Zr,maxConcurrentStreams:$r}={}){super();if(Qr!==undefined){throw new Ir("unsupported keepAlive, use pipelining=0 instead")}if(lt!==undefined){throw new Ir("unsupported socketTimeout, use headersTimeout & bodyTimeout instead")}if(Wt!==undefined){throw new Ir("unsupported requestTimeout, use headersTimeout & bodyTimeout instead")}if(Br!==undefined){throw new Ir("unsupported idleTimeout, use keepAliveTimeout instead")}if(kr!==undefined){throw new Ir("unsupported maxKeepAliveTimeout, use keepAliveMaxTimeout instead")}if(q!=null&&!Number.isFinite(q)){throw new Ir("invalid maxHeaderSize")}if(Ur!=null&&typeof Ur!=="string"){throw new Ir("invalid socketPath")}if(Ar!=null&&(!Number.isFinite(Ar)||Ar<0)){throw new Ir("invalid connectTimeout")}if(Dr!=null&&(!Number.isFinite(Dr)||Dr<=0)){throw new Ir("invalid keepAliveTimeout")}if(Fr!=null&&(!Number.isFinite(Fr)||Fr<=0)){throw new Ir("invalid keepAliveMaxTimeout")}if(Nr!=null&&!Number.isFinite(Nr)){throw new Ir("invalid keepAliveTimeoutThreshold")}if(re!=null&&(!Number.isInteger(re)||re<0)){throw new Ir("headersTimeout must be a positive integer or zero")}if(Er!=null&&(!Number.isInteger(Er)||Er<0)){throw new Ir("bodyTimeout must be a positive integer or zero")}if(Yr!=null&&typeof Yr!=="function"&&typeof Yr!=="object"){throw new Ir("connect must be a function or an object")}if(Hr!=null&&(!Number.isInteger(Hr)||Hr<0)){throw new Ir("maxRedirections must be a positive number")}if(Jr!=null&&(!Number.isInteger(Jr)||Jr<0)){throw new Ir("maxRequestsPerClient must be a positive number")}if(Wr!=null&&(typeof Wr!=="string"||ae.isIP(Wr)===0)){throw new Ir("localAddress must be valid string IP address")}if(jr!=null&&(!Number.isInteger(jr)||jr<-1)){throw new Ir("maxResponseSize must be a positive number")}if(Kr!=null&&(!Number.isInteger(Kr)||Kr<-1)){throw new Ir("autoSelectFamilyAttemptTimeout must be a positive number")}if(Zr!=null&&typeof Zr!=="boolean"){throw new Ir("allowH2 must be a valid boolean value")}if($r!=null&&(typeof $r!=="number"||$r<1)){throw new Ir("maxConcurrentStreams must be a possitive integer, greater than 0")}if(typeof Yr!=="function"){Yr=Or({...Mr,maxCachedSessions:Gr,allowH2:Zr,socketPath:Ur,timeout:Ar,...Pt.nodeHasAutoSelectFamily&&zr?{autoSelectFamily:zr,autoSelectFamilyAttemptTimeout:Kr}:undefined,...Yr})}this[SA]=C&&C.Client&&Array.isArray(C.Client)?C.Client:[XA({maxRedirections:Hr})];this[Vr]=Pt.parseOrigin(a);this[BA]=Yr;this[cA]=null;this[lA]=Lr!=null?Lr:1;this[gA]=q||Ue.maxHeaderSize;this[oA]=Dr==null?4e3:Dr;this[mA]=Fr==null?6e5:Fr;this[hA]=Nr==null?1e3:Nr;this[uA]=this[oA];this[xr]=null;this[RA]=Wr!=null?Wr:null;this[Xr]=0;this[sA]=0;this[iA]=`host: ${this[Vr].hostname}${this[Vr].port?`:${this[Vr].port}`:""}\r\n`;this[fA]=Er!=null?Er:3e5;this[EA]=re!=null?re:3e5;this[CA]=Pr==null?true:Pr;this[QA]=Hr;this[IA]=Jr;this[WA]=null;this[_A]=jr>-1?jr:-1;this[DA]="h1";this[TA]=null;this[FA]=!Zr?null:{openStreams:0,maxConcurrentStreams:$r!=null?$r:100};this[kA]=`${this[Vr].hostname}${this[Vr].port?`:${this[Vr].port}`:""}`;this[tA]=[];this[dA]=0;this[nA]=0}get pipelining(){return this[lA]}set pipelining(a){this[lA]=a;resume(this,true)}get[Zr](){return this[tA].length-this[nA]}get[Kr](){return this[nA]-this[dA]}get[$r](){return this[tA].length-this[dA]}get[rA](){return!!this[cA]&&!this[AA]&&!this[cA].destroyed}get[Jr](){const a=this[cA];return a&&(a[Hr]||a[eA]||a[zr])||this[$r]>=(this[lA]||1)||this[Zr]>0}[jr](a){connect(this);this.once("connect",a)}[vA](a,C){const q=a.origin||this[Vr].origin;const re=this[DA]==="h2"?Ar[NA](q,a,C):Ar[LA](q,a,C);this[tA].push(re);if(this[Xr]){}else if(Pt.bodyLength(re.body)==null&&Pt.isIterable(re.body)){this[Xr]=1;process.nextTick(resume,this)}else{resume(this,true)}if(this[Xr]&&this[sA]!==2&&this[Jr]){this[sA]=2}return this[sA]<2}async[yA](){return new Promise((a=>{if(!this[$r]){a(null)}else{this[WA]=a}}))}async[bA](a){return new Promise((C=>{const q=this[tA].splice(this[nA]);for(let C=0;C{if(this[WA]){this[WA]();this[WA]=null}C()};if(this[TA]!=null){Pt.destroy(this[TA],a);this[TA]=null;this[FA]=null}if(!this[cA]){queueMicrotask(callback)}else{Pt.destroy(this[cA].on("close",callback),a)}resume(this)}))}}function onHttp2SessionError(a){re(a.code!=="ERR_TLS_CERT_ALTNAME_INVALID");this[cA][pA]=a;onError(this[Yr],a)}function onHttp2FrameError(a,C,q){const re=new Ur(`HTTP/2: "frameError" received - type ${a}, code ${C}`);if(q===0){this[cA][pA]=re;onError(this[Yr],re)}}function onHttp2SessionEnd(){Pt.destroy(this,new Nr("other side closed"));Pt.destroy(this[cA],new Nr("other side closed"))}function onHTTP2GoAway(a){const C=this[Yr];const q=new Ur(`HTTP/2: "GOAWAY" frame received with code ${a}`);C[cA]=null;C[TA]=null;if(C.destroyed){re(this[Zr]===0);const a=C[tA].splice(C[dA]);for(let C=0;C0){const a=C[tA][C[dA]];C[tA][C[dA]++]=null;errorRequest(C,a,q)}C[nA]=C[dA];re(C[Kr]===0);C.emit("disconnect",C[Vr],[C],q);resume(C)}const zA=q(2824);const XA=q(4415);const KA=Buffer.alloc(0);async function lazyllhttp(){const a=process.env.JEST_WORKER_ID?q(3870):undefined;let C;try{C=await WebAssembly.compile(Buffer.from(q(3434),"base64"))}catch(re){C=await WebAssembly.compile(Buffer.from(a||q(3870),"base64"))}return await WebAssembly.instantiate(C,{env:{wasm_on_url:(a,C,q)=>0,wasm_on_status:(a,C,q)=>{re.strictEqual(es.ptr,a);const ae=C-As+ts.byteOffset;return es.onStatus(new qA(ts.buffer,ae,q))||0},wasm_on_message_begin:a=>{re.strictEqual(es.ptr,a);return es.onMessageBegin()||0},wasm_on_header_field:(a,C,q)=>{re.strictEqual(es.ptr,a);const ae=C-As+ts.byteOffset;return es.onHeaderField(new qA(ts.buffer,ae,q))||0},wasm_on_header_value:(a,C,q)=>{re.strictEqual(es.ptr,a);const ae=C-As+ts.byteOffset;return es.onHeaderValue(new qA(ts.buffer,ae,q))||0},wasm_on_headers_complete:(a,C,q,ae)=>{re.strictEqual(es.ptr,a);return es.onHeadersComplete(C,Boolean(q),Boolean(ae))||0},wasm_on_body:(a,C,q)=>{re.strictEqual(es.ptr,a);const ae=C-As+ts.byteOffset;return es.onBody(new qA(ts.buffer,ae,q))||0},wasm_on_message_complete:a=>{re.strictEqual(es.ptr,a);return es.onMessageComplete()||0}}})}let ZA=null;let $A=lazyllhttp();$A.catch();let es=null;let ts=null;let rs=0;let As=null;const ss=1;const as=2;const os=3;class Parser{constructor(a,C,{exports:q}){re(Number.isFinite(a[gA])&&a[gA]>0);this.llhttp=q;this.ptr=this.llhttp.llhttp_alloc(zA.TYPE.RESPONSE);this.client=a;this.socket=C;this.timeout=null;this.timeoutValue=null;this.timeoutType=null;this.statusCode=null;this.statusText="";this.upgrade=false;this.headers=[];this.headersSize=0;this.headersMaxSize=a[gA];this.shouldKeepAlive=false;this.paused=false;this.resume=this.resume.bind(this);this.bytesRead=0;this.keepAlive="";this.contentLength="";this.connection="";this.maxResponseSize=a[_A]}setTimeout(a,C){this.timeoutType=C;if(a!==this.timeoutValue){Wt.clearTimeout(this.timeout);if(a){this.timeout=Wt.setTimeout(onParserTimeout,a,this);if(this.timeout.unref){this.timeout.unref()}}else{this.timeout=null}this.timeoutValue=a}else if(this.timeout){if(this.timeout.refresh){this.timeout.refresh()}}}resume(){if(this.socket.destroyed||!this.paused){return}re(this.ptr!=null);re(es==null);this.llhttp.llhttp_resume(this.ptr);re(this.timeoutType===as);if(this.timeout){if(this.timeout.refresh){this.timeout.refresh()}}this.paused=false;this.execute(this.socket.read()||KA);this.readMore()}readMore(){while(!this.paused&&this.ptr){const a=this.socket.read();if(a===null){break}this.execute(a)}}execute(a){re(this.ptr!=null);re(es==null);re(!this.paused);const{socket:C,llhttp:q}=this;if(a.length>rs){if(As){q.free(As)}rs=Math.ceil(a.length/4096)*4096;As=q.malloc(rs)}new Uint8Array(q.memory.buffer,As,rs).set(a);try{let re;try{ts=a;es=this;re=q.llhttp_execute(this.ptr,As,a.length)}catch(a){throw a}finally{es=null;ts=null}const ae=q.llhttp_get_error_pos(this.ptr)-As;if(re===zA.ERROR.PAUSED_UPGRADE){this.onUpgrade(a.slice(ae))}else if(re===zA.ERROR.PAUSED){this.paused=true;C.unshift(a.slice(ae))}else if(re!==zA.ERROR.OK){const C=q.llhttp_get_error_reason(this.ptr);let Ue="";if(C){const a=new Uint8Array(q.memory.buffer,C).indexOf(0);Ue="Response does not match the HTTP/1.1 protocol ("+Buffer.from(q.memory.buffer,C,a).toString()+")"}throw new Mr(Ue,zA.ERROR[re],a.slice(ae))}}catch(a){Pt.destroy(C,a)}}destroy(){re(this.ptr!=null);re(es==null);this.llhttp.llhttp_free(this.ptr);this.ptr=null;Wt.clearTimeout(this.timeout);this.timeout=null;this.timeoutValue=null;this.timeoutType=null;this.paused=false}onStatus(a){this.statusText=a.toString()}onMessageBegin(){const{socket:a,client:C}=this;if(a.destroyed){return-1}const q=C[tA][C[dA]];if(!q){return-1}}onHeaderField(a){const C=this.headers.length;if((C&1)===0){this.headers.push(a)}else{this.headers[C-1]=Buffer.concat([this.headers[C-1],a])}this.trackHeader(a.length)}onHeaderValue(a){let C=this.headers.length;if((C&1)===1){this.headers.push(a);C+=1}else{this.headers[C-1]=Buffer.concat([this.headers[C-1],a])}const q=this.headers[C-2];if(q.length===10&&q.toString().toLowerCase()==="keep-alive"){this.keepAlive+=a.toString()}else if(q.length===10&&q.toString().toLowerCase()==="connection"){this.connection+=a.toString()}else if(q.length===14&&q.toString().toLowerCase()==="content-length"){this.contentLength+=a.toString()}this.trackHeader(a.length)}trackHeader(a){this.headersSize+=a;if(this.headersSize>=this.headersMaxSize){Pt.destroy(this.socket,new Fr)}}onUpgrade(a){const{upgrade:C,client:q,socket:ae,headers:Ue,statusCode:lt}=this;re(C);const Wt=q[tA][q[dA]];re(Wt);re(!ae.destroyed);re(ae===q[cA]);re(!this.paused);re(Wt.upgrade||Wt.method==="CONNECT");this.statusCode=null;this.statusText="";this.shouldKeepAlive=null;re(this.headers.length%2===0);this.headers=[];this.headersSize=0;ae.unshift(a);ae[Wr].destroy();ae[Wr]=null;ae[Yr]=null;ae[pA]=null;ae.removeListener("error",onSocketError).removeListener("readable",onSocketReadable).removeListener("end",onSocketEnd).removeListener("close",onSocketClose);q[cA]=null;q[tA][q[dA]++]=null;q.emit("disconnect",q[Vr],[q],new Ur("upgrade"));try{Wt.onUpgrade(lt,Ue,ae)}catch(a){Pt.destroy(ae,a)}resume(q)}onHeadersComplete(a,C,q){const{client:ae,socket:Ue,headers:lt,statusText:Wt}=this;if(Ue.destroyed){return-1}const Ar=ae[tA][ae[dA]];if(!Ar){return-1}re(!this.upgrade);re(this.statusCode<200);if(a===100){Pt.destroy(Ue,new Nr("bad response",Pt.getSocketInfo(Ue)));return-1}if(C&&!Ar.upgrade){Pt.destroy(Ue,new Nr("bad upgrade",Pt.getSocketInfo(Ue)));return-1}re.strictEqual(this.timeoutType,ss);this.statusCode=a;this.shouldKeepAlive=q||Ar.method==="HEAD"&&!Ue[Hr]&&this.connection.toLowerCase()==="keep-alive";if(this.statusCode>=200){const a=Ar.bodyTimeout!=null?Ar.bodyTimeout:ae[fA];this.setTimeout(a,as)}else if(this.timeout){if(this.timeout.refresh){this.timeout.refresh()}}if(Ar.method==="CONNECT"){re(ae[Kr]===1);this.upgrade=true;return 2}if(C){re(ae[Kr]===1);this.upgrade=true;return 2}re(this.headers.length%2===0);this.headers=[];this.headersSize=0;if(this.shouldKeepAlive&&ae[lA]){const a=this.keepAlive?Pt.parseKeepAliveTimeout(this.keepAlive):null;if(a!=null){const C=Math.min(a-ae[hA],ae[mA]);if(C<=0){Ue[Hr]=true}else{ae[uA]=C}}else{ae[uA]=ae[oA]}}else{Ue[Hr]=true}const Er=Ar.onHeaders(a,lt,this.resume,Wt)===false;if(Ar.aborted){return-1}if(Ar.method==="HEAD"){return 1}if(a<200){return 1}if(Ue[zr]){Ue[zr]=false;resume(ae)}return Er?zA.ERROR.PAUSED:0}onBody(a){const{client:C,socket:q,statusCode:ae,maxResponseSize:Ue}=this;if(q.destroyed){return-1}const lt=C[tA][C[dA]];re(lt);re.strictEqual(this.timeoutType,as);if(this.timeout){if(this.timeout.refresh){this.timeout.refresh()}}re(ae>=200);if(Ue>-1&&this.bytesRead+a.length>Ue){Pt.destroy(q,new Pr);return-1}this.bytesRead+=a.length;if(lt.onData(a)===false){return zA.ERROR.PAUSED}}onMessageComplete(){const{client:a,socket:C,statusCode:q,upgrade:ae,headers:Ue,contentLength:lt,bytesRead:Wt,shouldKeepAlive:Ar}=this;if(C.destroyed&&(!q||Ar)){return-1}if(ae){return}const Er=a[tA][a[dA]];re(Er);re(q>=100);this.statusCode=null;this.statusText="";this.bytesRead=0;this.contentLength="";this.keepAlive="";this.connection="";re(this.headers.length%2===0);this.headers=[];this.headersSize=0;if(q<200){return}if(Er.method!=="HEAD"&<&&Wt!==parseInt(lt,10)){Pt.destroy(C,new Qr);return-1}Er.onComplete(Ue);a[tA][a[dA]++]=null;if(C[eA]){re.strictEqual(a[Kr],0);Pt.destroy(C,new Ur("reset"));return zA.ERROR.PAUSED}else if(!Ar){Pt.destroy(C,new Ur("reset"));return zA.ERROR.PAUSED}else if(C[Hr]&&a[Kr]===0){Pt.destroy(C,new Ur("reset"));return zA.ERROR.PAUSED}else if(a[lA]===1){setImmediate(resume,a)}else{resume(a)}}}function onParserTimeout(a){const{socket:C,timeoutType:q,client:ae}=a;if(q===ss){if(!C[eA]||C.writableNeedDrain||ae[Kr]>1){re(!a.paused,"cannot be paused while waiting for headers");Pt.destroy(C,new kr)}}else if(q===as){if(!a.paused){Pt.destroy(C,new Lr)}}else if(q===os){re(ae[Kr]===0&&ae[uA]);Pt.destroy(C,new Ur("socket idle timeout"))}}function onSocketReadable(){const{[Wr]:a}=this;if(a){a.readMore()}}function onSocketError(a){const{[Yr]:C,[Wr]:q}=this;re(a.code!=="ERR_TLS_CERT_ALTNAME_INVALID");if(C[DA]!=="h2"){if(a.code==="ECONNRESET"&&q.statusCode&&!q.shouldKeepAlive){q.onMessageComplete();return}}this[pA]=a;onError(this[Yr],a)}function onError(a,C){if(a[Kr]===0&&C.code!=="UND_ERR_INFO"&&C.code!=="UND_ERR_SOCKET"){re(a[nA]===a[dA]);const q=a[tA].splice(a[dA]);for(let re=0;re0&&q.code!=="UND_ERR_INFO"){const C=a[tA][a[dA]];a[tA][a[dA]++]=null;errorRequest(a,C,q)}a[nA]=a[dA];re(a[Kr]===0);a.emit("disconnect",a[Vr],[a],q);resume(a)}async function connect(a){re(!a[AA]);re(!a[cA]);let{host:C,hostname:q,protocol:Ue,port:lt}=a[Vr];if(q[0]==="["){const a=q.indexOf("]");re(a!==-1);const C=q.substring(1,a);re(ae.isIP(C));q=C}a[AA]=true;if(jA.beforeConnect.hasSubscribers){jA.beforeConnect.publish({connectParams:{host:C,hostname:q,protocol:Ue,port:lt,servername:a[xr],localAddress:a[RA]},connector:a[BA]})}try{const ae=await new Promise(((re,ae)=>{a[BA]({host:C,hostname:q,protocol:Ue,port:lt,servername:a[xr],localAddress:a[RA]},((a,C)=>{if(a){ae(a)}else{re(C)}}))}));if(a.destroyed){Pt.destroy(ae.on("error",(()=>{})),new Gr);return}a[AA]=false;re(ae);const Wt=ae.alpnProtocol==="h2";if(Wt){if(!JA){JA=true;process.emitWarning("H2 support is experimental, expect them to change at any time.",{code:"UNDICI-H2"})}const C=MA.connect(a[Vr],{createConnection:()=>ae,peerMaxConcurrentStreams:a[FA].maxConcurrentStreams});a[DA]="h2";C[Yr]=a;C[cA]=ae;C.on("error",onHttp2SessionError);C.on("frameError",onHttp2FrameError);C.on("end",onHttp2SessionEnd);C.on("goaway",onHTTP2GoAway);C.on("close",onSocketClose);C.unref();a[TA]=C;ae[TA]=C}else{if(!ZA){ZA=await $A;$A=null}ae[aA]=false;ae[eA]=false;ae[Hr]=false;ae[zr]=false;ae[Wr]=new Parser(a,ae,ZA)}ae[wA]=0;ae[IA]=a[IA];ae[Yr]=a;ae[pA]=null;ae.on("error",onSocketError).on("readable",onSocketReadable).on("end",onSocketEnd).on("close",onSocketClose);a[cA]=ae;if(jA.connected.hasSubscribers){jA.connected.publish({connectParams:{host:C,hostname:q,protocol:Ue,port:lt,servername:a[xr],localAddress:a[RA]},connector:a[BA],socket:ae})}a.emit("connect",a[Vr],[a])}catch(ae){if(a.destroyed){return}a[AA]=false;if(jA.connectError.hasSubscribers){jA.connectError.publish({connectParams:{host:C,hostname:q,protocol:Ue,port:lt,servername:a[xr],localAddress:a[RA]},connector:a[BA],error:ae})}if(ae.code==="ERR_TLS_CERT_ALTNAME_INVALID"){re(a[Kr]===0);while(a[Zr]>0&&a[tA][a[nA]].servername===a[xr]){const C=a[tA][a[nA]++];errorRequest(a,C,ae)}}else{onError(a,ae)}a.emit("connectionError",a[Vr],[a],ae)}resume(a)}function emitDrain(a){a[sA]=0;a.emit("drain",a[Vr],[a])}function resume(a,C){if(a[Xr]===2){return}a[Xr]=2;_resume(a,C);a[Xr]=0;if(a[dA]>256){a[tA].splice(0,a[dA]);a[nA]-=a[dA];a[dA]=0}}function _resume(a,C){while(true){if(a.destroyed){re(a[Zr]===0);return}if(a[WA]&&!a[$r]){a[WA]();a[WA]=null;return}const q=a[cA];if(q&&!q.destroyed&&q.alpnProtocol!=="h2"){if(a[$r]===0){if(!q[aA]&&q.unref){q.unref();q[aA]=true}}else if(q[aA]&&q.ref){q.ref();q[aA]=false}if(a[$r]===0){if(q[Wr].timeoutType!==os){q[Wr].setTimeout(a[uA],os)}}else if(a[Kr]>0&&q[Wr].statusCode<200){if(q[Wr].timeoutType!==ss){const C=a[tA][a[dA]];const re=C.headersTimeout!=null?C.headersTimeout:a[EA];q[Wr].setTimeout(re,ss)}}}if(a[Jr]){a[sA]=2}else if(a[sA]===2){if(C){a[sA]=1;process.nextTick(emitDrain,a)}else{emitDrain(a)}continue}if(a[Zr]===0){return}if(a[Kr]>=(a[lA]||1)){return}const ae=a[tA][a[nA]];if(a[Vr].protocol==="https:"&&a[xr]!==ae.servername){if(a[Kr]>0){return}a[xr]=ae.servername;if(q&&q.servername!==ae.servername){Pt.destroy(q,new Ur("servername changed"));return}}if(a[AA]){return}if(!q&&!a[TA]){connect(a);return}if(q.destroyed||q[eA]||q[Hr]||q[zr]){return}if(a[Kr]>0&&!ae.idempotent){return}if(a[Kr]>0&&(ae.upgrade||ae.method==="CONNECT")){return}if(a[Kr]>0&&Pt.bodyLength(ae.body)!==0&&(Pt.isStream(ae.body)||Pt.isAsyncIterable(ae.body))){return}if(!ae.aborted&&write(a,ae)){a[nA]++}else{a[tA].splice(a[nA],1)}}}function shouldSendContentLength(a){return a!=="GET"&&a!=="HEAD"&&a!=="OPTIONS"&&a!=="TRACE"&&a!=="CONNECT"}function write(a,C){if(a[DA]==="h2"){writeH2(a,a[TA],C);return}const{body:q,method:ae,path:Ue,host:lt,upgrade:Wt,headers:Ar,blocking:Er,reset:Qr}=C;const Ir=ae==="PUT"||ae==="POST"||ae==="PATCH";if(q&&typeof q.read==="function"){q.read(0)}const kr=Pt.bodyLength(q);let Fr=kr;if(Fr===null){Fr=C.contentLength}if(Fr===0&&!Ir){Fr=null}if(shouldSendContentLength(ae)&&Fr>0&&C.contentLength!==null&&C.contentLength!==Fr){if(a[CA]){errorRequest(a,C,new Br);return false}process.emitWarning(new Br)}const Nr=a[cA];try{C.onConnect((q=>{if(C.aborted||C.completed){return}errorRequest(a,C,q||new Dr);Pt.destroy(Nr,new Ur("aborted"))}))}catch(q){errorRequest(a,C,q)}if(C.aborted){return false}if(ae==="HEAD"){Nr[Hr]=true}if(Wt||ae==="CONNECT"){Nr[Hr]=true}if(Qr!=null){Nr[Hr]=Qr}if(a[IA]&&Nr[wA]++>=a[IA]){Nr[Hr]=true}if(Er){Nr[zr]=true}let Lr=`${ae} ${Ue} HTTP/1.1\r\n`;if(typeof lt==="string"){Lr+=`host: ${lt}\r\n`}else{Lr+=a[iA]}if(Wt){Lr+=`connection: upgrade\r\nupgrade: ${Wt}\r\n`}else if(a[lA]&&!Nr[Hr]){Lr+="connection: keep-alive\r\n"}else{Lr+="connection: close\r\n"}if(Ar){Lr+=Ar}if(jA.sendHeaders.hasSubscribers){jA.sendHeaders.publish({request:C,headers:Lr,socket:Nr})}if(!q||kr===0){if(Fr===0){Nr.write(`${Lr}content-length: 0\r\n\r\n`,"latin1")}else{re(Fr===null,"no body must not have content length");Nr.write(`${Lr}\r\n`,"latin1")}C.onRequestSent()}else if(Pt.isBuffer(q)){re(Fr===q.byteLength,"buffer body must have content length");Nr.cork();Nr.write(`${Lr}content-length: ${Fr}\r\n\r\n`,"latin1");Nr.write(q);Nr.uncork();C.onBodySent(q);C.onRequestSent();if(!Ir){Nr[Hr]=true}}else if(Pt.isBlobLike(q)){if(typeof q.stream==="function"){writeIterable({body:q.stream(),client:a,request:C,socket:Nr,contentLength:Fr,header:Lr,expectsPayload:Ir})}else{writeBlob({body:q,client:a,request:C,socket:Nr,contentLength:Fr,header:Lr,expectsPayload:Ir})}}else if(Pt.isStream(q)){writeStream({body:q,client:a,request:C,socket:Nr,contentLength:Fr,header:Lr,expectsPayload:Ir})}else if(Pt.isIterable(q)){writeIterable({body:q,client:a,request:C,socket:Nr,contentLength:Fr,header:Lr,expectsPayload:Ir})}else{re(false)}return true}function writeH2(a,C,q){const{body:ae,method:Ue,path:lt,host:Wt,upgrade:Er,expectContinue:Qr,signal:Ir,headers:kr}=q;let Fr;if(typeof kr==="string")Fr=Ar[UA](kr.trim());else Fr=kr;if(Er){errorRequest(a,q,new Error("Upgrade not supported for H2"));return false}try{q.onConnect((C=>{if(q.aborted||q.completed){return}errorRequest(a,q,C||new Dr)}))}catch(C){errorRequest(a,q,C)}if(q.aborted){return false}let Nr;const Lr=a[FA];Fr[PA]=Wt||a[kA];Fr[GA]=Ue;if(Ue==="CONNECT"){C.ref();Nr=C.request(Fr,{endStream:false,signal:Ir});if(Nr.id&&!Nr.pending){q.onUpgrade(null,null,Nr);++Lr.openStreams}else{Nr.once("ready",(()=>{q.onUpgrade(null,null,Nr);++Lr.openStreams}))}Nr.once("close",(()=>{Lr.openStreams-=1;if(Lr.openStreams===0)C.unref()}));return true}Fr[OA]=lt;Fr[VA]="https";const Mr=Ue==="PUT"||Ue==="POST"||Ue==="PATCH";if(ae&&typeof ae.read==="function"){ae.read(0)}let Pr=Pt.bodyLength(ae);if(Pr==null){Pr=q.contentLength}if(Pr===0||!Mr){Pr=null}if(shouldSendContentLength(Ue)&&Pr>0&&q.contentLength!=null&&q.contentLength!==Pr){if(a[CA]){errorRequest(a,q,new Br);return false}process.emitWarning(new Br)}if(Pr!=null){re(ae,"no body must not have content length");Fr[HA]=`${Pr}`}C.ref();const Gr=Ue==="GET"||Ue==="HEAD";if(Qr){Fr[xA]="100-continue";Nr=C.request(Fr,{endStream:Gr,signal:Ir});Nr.once("continue",writeBodyH2)}else{Nr=C.request(Fr,{endStream:Gr,signal:Ir});writeBodyH2()}++Lr.openStreams;Nr.once("response",(a=>{const{[YA]:C,...re}=a;if(q.onHeaders(Number(C),re,Nr.resume.bind(Nr),"")===false){Nr.pause()}}));Nr.once("end",(()=>{q.onComplete([])}));Nr.on("data",(a=>{if(q.onData(a)===false){Nr.pause()}}));Nr.once("close",(()=>{Lr.openStreams-=1;if(Lr.openStreams===0){C.unref()}}));Nr.once("error",(function(C){if(a[TA]&&!a[TA].destroyed&&!this.closed&&!this.destroyed){Lr.streams-=1;Pt.destroy(Nr,C)}}));Nr.once("frameError",((C,re)=>{const ae=new Ur(`HTTP/2: "frameError" received - type ${C}, code ${re}`);errorRequest(a,q,ae);if(a[TA]&&!a[TA].destroyed&&!this.closed&&!this.destroyed){Lr.streams-=1;Pt.destroy(Nr,ae)}}));return true;function writeBodyH2(){if(!ae){q.onRequestSent()}else if(Pt.isBuffer(ae)){re(Pr===ae.byteLength,"buffer body must have content length");Nr.cork();Nr.write(ae);Nr.uncork();Nr.end();q.onBodySent(ae);q.onRequestSent()}else if(Pt.isBlobLike(ae)){if(typeof ae.stream==="function"){writeIterable({client:a,request:q,contentLength:Pr,h2stream:Nr,expectsPayload:Mr,body:ae.stream(),socket:a[cA],header:""})}else{writeBlob({body:ae,client:a,request:q,contentLength:Pr,expectsPayload:Mr,h2stream:Nr,header:"",socket:a[cA]})}}else if(Pt.isStream(ae)){writeStream({body:ae,client:a,request:q,contentLength:Pr,expectsPayload:Mr,socket:a[cA],h2stream:Nr,header:""})}else if(Pt.isIterable(ae)){writeIterable({body:ae,client:a,request:q,contentLength:Pr,expectsPayload:Mr,header:"",h2stream:Nr,socket:a[cA]})}else{re(false)}}}function writeStream({h2stream:a,body:C,client:q,request:ae,socket:Ue,contentLength:Wt,header:Ar,expectsPayload:Er}){re(Wt!==0||q[Kr]===0,"stream body cannot be pipelined");if(q[DA]==="h2"){const Ir=lt(C,a,(q=>{if(q){Pt.destroy(C,q);Pt.destroy(a,q)}else{ae.onRequestSent()}}));Ir.on("data",onPipeData);Ir.once("end",(()=>{Ir.removeListener("data",onPipeData);Pt.destroy(Ir)}));function onPipeData(a){ae.onBodySent(a)}return}let Br=false;const Qr=new AsyncWriter({socket:Ue,request:ae,contentLength:Wt,client:q,expectsPayload:Er,header:Ar});const onData=function(a){if(Br){return}try{if(!Qr.write(a)&&this.pause){this.pause()}}catch(a){Pt.destroy(this,a)}};const onDrain=function(){if(Br){return}if(C.resume){C.resume()}};const onAbort=function(){if(Br){return}const a=new Dr;queueMicrotask((()=>onFinished(a)))};const onFinished=function(a){if(Br){return}Br=true;re(Ue.destroyed||Ue[eA]&&q[Kr]<=1);Ue.off("drain",onDrain).off("error",onFinished);C.removeListener("data",onData).removeListener("end",onFinished).removeListener("error",onFinished).removeListener("close",onAbort);if(!a){try{Qr.end()}catch(C){a=C}}Qr.destroy(a);if(a&&(a.code!=="UND_ERR_INFO"||a.message!=="reset")){Pt.destroy(C,a)}else{Pt.destroy(C)}};C.on("data",onData).on("end",onFinished).on("error",onFinished).on("close",onAbort);if(C.resume){C.resume()}Ue.on("drain",onDrain).on("error",onFinished)}async function writeBlob({h2stream:a,body:C,client:q,request:ae,socket:Ue,contentLength:lt,header:Wt,expectsPayload:Ar}){re(lt===C.size,"blob body must have content length");const Er=q[DA]==="h2";try{if(lt!=null&<!==C.size){throw new Br}const re=Buffer.from(await C.arrayBuffer());if(Er){a.cork();a.write(re);a.uncork()}else{Ue.cork();Ue.write(`${Wt}content-length: ${lt}\r\n\r\n`,"latin1");Ue.write(re);Ue.uncork()}ae.onBodySent(re);ae.onRequestSent();if(!Ar){Ue[Hr]=true}resume(q)}catch(C){Pt.destroy(Er?a:Ue,C)}}async function writeIterable({h2stream:a,body:C,client:q,request:ae,socket:Ue,contentLength:lt,header:Pt,expectsPayload:Wt}){re(lt!==0||q[Kr]===0,"iterator body cannot be pipelined");let Ar=null;function onDrain(){if(Ar){const a=Ar;Ar=null;a()}}const waitForDrain=()=>new Promise(((a,C)=>{re(Ar===null);if(Ue[pA]){C(Ue[pA])}else{Ar=a}}));if(q[DA]==="h2"){a.on("close",onDrain).on("drain",onDrain);try{for await(const q of C){if(Ue[pA]){throw Ue[pA]}const C=a.write(q);ae.onBodySent(q);if(!C){await waitForDrain()}}}catch(C){a.destroy(C)}finally{ae.onRequestSent();a.end();a.off("close",onDrain).off("drain",onDrain)}return}Ue.on("close",onDrain).on("drain",onDrain);const Er=new AsyncWriter({socket:Ue,request:ae,contentLength:lt,client:q,expectsPayload:Wt,header:Pt});try{for await(const a of C){if(Ue[pA]){throw Ue[pA]}if(!Er.write(a)){await waitForDrain()}}Er.end()}catch(a){Er.destroy(a)}finally{Ue.off("close",onDrain).off("drain",onDrain)}}class AsyncWriter{constructor({socket:a,request:C,contentLength:q,client:re,expectsPayload:ae,header:Ue}){this.socket=a;this.request=C;this.contentLength=q;this.client=re;this.bytesWritten=0;this.expectsPayload=ae;this.header=Ue;a[eA]=true}write(a){const{socket:C,request:q,contentLength:re,client:ae,bytesWritten:Ue,expectsPayload:lt,header:Pt}=this;if(C[pA]){throw C[pA]}if(C.destroyed){return false}const Wt=Buffer.byteLength(a);if(!Wt){return true}if(re!==null&&Ue+Wt>re){if(ae[CA]){throw new Br}process.emitWarning(new Br)}C.cork();if(Ue===0){if(!lt){C[Hr]=true}if(re===null){C.write(`${Pt}transfer-encoding: chunked\r\n`,"latin1")}else{C.write(`${Pt}content-length: ${re}\r\n\r\n`,"latin1")}}if(re===null){C.write(`\r\n${Wt.toString(16)}\r\n`,"latin1")}this.bytesWritten+=Wt;const Ar=C.write(a);C.uncork();q.onBodySent(a);if(!Ar){if(C[Wr].timeout&&C[Wr].timeoutType===ss){if(C[Wr].timeout.refresh){C[Wr].timeout.refresh()}}}return Ar}end(){const{socket:a,contentLength:C,client:q,bytesWritten:re,expectsPayload:ae,header:Ue,request:lt}=this;lt.onRequestSent();a[eA]=false;if(a[pA]){throw a[pA]}if(a.destroyed){return}if(re===0){if(ae){a.write(`${Ue}content-length: 0\r\n\r\n`,"latin1")}else{a.write(`${Ue}\r\n`,"latin1")}}else if(C===null){a.write("\r\n0\r\n\r\n","latin1")}if(C!==null&&re!==C){if(q[CA]){throw new Br}else{process.emitWarning(new Br)}}if(a[Wr].timeout&&a[Wr].timeoutType===ss){if(a[Wr].timeout.refresh){a[Wr].timeout.refresh()}}resume(q)}destroy(a){const{socket:C,client:q}=this;C[eA]=false;if(a){re(q[Kr]<=1,"pipeline should only contain this request");Pt.destroy(C,a)}}}function errorRequest(a,C,q){try{C.onError(q);re(C.aborted)}catch(q){a.emit("error",q)}}a.exports=Client},3194:(a,C,q)=>{const{kConnected:re,kSize:ae}=q(6443);class CompatWeakRef{constructor(a){this.value=a}deref(){return this.value[re]===0&&this.value[ae]===0?undefined:this.value}}class CompatFinalizer{constructor(a){this.finalizer=a}register(a,C){if(a.on){a.on("disconnect",(()=>{if(a[re]===0&&a[ae]===0){this.finalizer(C)}}))}}}a.exports=function(){if(process.env.NODE_V8_COVERAGE){return{WeakRef:CompatWeakRef,FinalizationRegistry:CompatFinalizer}}return{WeakRef:global.WeakRef||CompatWeakRef,FinalizationRegistry:global.FinalizationRegistry||CompatFinalizer}}},9237:a=>{const C=1024;const q=4096;a.exports={maxAttributeValueSize:C,maxNameValuePairSize:q}},3168:(a,C,q)=>{const{parseSetCookie:re}=q(8915);const{stringify:ae}=q(3834);const{webidl:Ue}=q(4222);const{Headers:lt}=q(6349);function getCookies(a){Ue.argumentLengthCheck(arguments,1,{header:"getCookies"});Ue.brandCheck(a,lt,{strict:false});const C=a.get("cookie");const q={};if(!C){return q}for(const a of C.split(";")){const[C,...re]=a.split("=");q[C.trim()]=re.join("=")}return q}function deleteCookie(a,C,q){Ue.argumentLengthCheck(arguments,2,{header:"deleteCookie"});Ue.brandCheck(a,lt,{strict:false});C=Ue.converters.DOMString(C);q=Ue.converters.DeleteCookieAttributes(q);setCookie(a,{name:C,value:"",expires:new Date(0),...q})}function getSetCookies(a){Ue.argumentLengthCheck(arguments,1,{header:"getSetCookies"});Ue.brandCheck(a,lt,{strict:false});const C=a.getSetCookie();if(!C){return[]}return C.map((a=>re(a)))}function setCookie(a,C){Ue.argumentLengthCheck(arguments,2,{header:"setCookie"});Ue.brandCheck(a,lt,{strict:false});C=Ue.converters.Cookie(C);const q=ae(C);if(q){a.append("Set-Cookie",ae(C))}}Ue.converters.DeleteCookieAttributes=Ue.dictionaryConverter([{converter:Ue.nullableConverter(Ue.converters.DOMString),key:"path",defaultValue:null},{converter:Ue.nullableConverter(Ue.converters.DOMString),key:"domain",defaultValue:null}]);Ue.converters.Cookie=Ue.dictionaryConverter([{converter:Ue.converters.DOMString,key:"name"},{converter:Ue.converters.DOMString,key:"value"},{converter:Ue.nullableConverter((a=>{if(typeof a==="number"){return Ue.converters["unsigned long long"](a)}return new Date(a)})),key:"expires",defaultValue:null},{converter:Ue.nullableConverter(Ue.converters["long long"]),key:"maxAge",defaultValue:null},{converter:Ue.nullableConverter(Ue.converters.DOMString),key:"domain",defaultValue:null},{converter:Ue.nullableConverter(Ue.converters.DOMString),key:"path",defaultValue:null},{converter:Ue.nullableConverter(Ue.converters.boolean),key:"secure",defaultValue:null},{converter:Ue.nullableConverter(Ue.converters.boolean),key:"httpOnly",defaultValue:null},{converter:Ue.converters.USVString,key:"sameSite",allowedValues:["Strict","Lax","None"]},{converter:Ue.sequenceConverter(Ue.converters.DOMString),key:"unparsed",defaultValue:[]}]);a.exports={getCookies:getCookies,deleteCookie:deleteCookie,getSetCookies:getSetCookies,setCookie:setCookie}},8915:(a,C,q)=>{const{maxNameValuePairSize:re,maxAttributeValueSize:ae}=q(9237);const{isCTLExcludingHtab:Ue}=q(3834);const{collectASequenceOfCodePointsFast:lt}=q(4322);const Pt=q(2613);function parseSetCookie(a){if(Ue(a)){return null}let C="";let q="";let ae="";let Pt="";if(a.includes(";")){const re={position:0};C=lt(";",a,re);q=a.slice(re.position)}else{C=a}if(!C.includes("=")){Pt=C}else{const a={position:0};ae=lt("=",C,a);Pt=C.slice(a.position+1)}ae=ae.trim();Pt=Pt.trim();if(ae.length+Pt.length>re){return null}return{name:ae,value:Pt,...parseUnparsedAttributes(q)}}function parseUnparsedAttributes(a,C={}){if(a.length===0){return C}Pt(a[0]===";");a=a.slice(1);let q="";if(a.includes(";")){q=lt(";",a,{position:0});a=a.slice(q.length)}else{q=a;a=""}let re="";let Ue="";if(q.includes("=")){const a={position:0};re=lt("=",q,a);Ue=q.slice(a.position+1)}else{re=q}re=re.trim();Ue=Ue.trim();if(Ue.length>ae){return parseUnparsedAttributes(a,C)}const Wt=re.toLowerCase();if(Wt==="expires"){const a=new Date(Ue);C.expires=a}else if(Wt==="max-age"){const q=Ue.charCodeAt(0);if((q<48||q>57)&&Ue[0]!=="-"){return parseUnparsedAttributes(a,C)}if(!/^\d+$/.test(Ue)){return parseUnparsedAttributes(a,C)}const re=Number(Ue);C.maxAge=re}else if(Wt==="domain"){let a=Ue;if(a[0]==="."){a=a.slice(1)}a=a.toLowerCase();C.domain=a}else if(Wt==="path"){let a="";if(Ue.length===0||Ue[0]!=="/"){a="/"}else{a=Ue}C.path=a}else if(Wt==="secure"){C.secure=true}else if(Wt==="httponly"){C.httpOnly=true}else if(Wt==="samesite"){let a="Default";const q=Ue.toLowerCase();if(q.includes("none")){a="None"}if(q.includes("strict")){a="Strict"}if(q.includes("lax")){a="Lax"}C.sameSite=a}else{C.unparsed??=[];C.unparsed.push(`${re}=${Ue}`)}return parseUnparsedAttributes(a,C)}a.exports={parseSetCookie:parseSetCookie,parseUnparsedAttributes:parseUnparsedAttributes}},3834:a=>{function isCTLExcludingHtab(a){if(a.length===0){return false}for(const C of a){const a=C.charCodeAt(0);if(a>=0||a<=8||(a>=10||a<=31)||a===127){return false}}}function validateCookieName(a){for(const C of a){const a=C.charCodeAt(0);if(a<=32||a>127||C==="("||C===")"||C===">"||C==="<"||C==="@"||C===","||C===";"||C===":"||C==="\\"||C==='"'||C==="/"||C==="["||C==="]"||C==="?"||C==="="||C==="{"||C==="}"){throw new Error("Invalid cookie name")}}}function validateCookieValue(a){for(const C of a){const a=C.charCodeAt(0);if(a<33||a===34||a===44||a===59||a===92||a>126){throw new Error("Invalid header value")}}}function validateCookiePath(a){for(const C of a){const a=C.charCodeAt(0);if(a<33||C===";"){throw new Error("Invalid cookie path")}}}function validateCookieDomain(a){if(a.startsWith("-")||a.endsWith(".")||a.endsWith("-")){throw new Error("Invalid cookie domain")}}function toIMFDate(a){if(typeof a==="number"){a=new Date(a)}const C=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"];const q=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];const re=C[a.getUTCDay()];const ae=a.getUTCDate().toString().padStart(2,"0");const Ue=q[a.getUTCMonth()];const lt=a.getUTCFullYear();const Pt=a.getUTCHours().toString().padStart(2,"0");const Wt=a.getUTCMinutes().toString().padStart(2,"0");const Ar=a.getUTCSeconds().toString().padStart(2,"0");return`${re}, ${ae} ${Ue} ${lt} ${Pt}:${Wt}:${Ar} GMT`}function validateCookieMaxAge(a){if(a<0){throw new Error("Invalid cookie max-age")}}function stringify(a){if(a.name.length===0){return null}validateCookieName(a.name);validateCookieValue(a.value);const C=[`${a.name}=${a.value}`];if(a.name.startsWith("__Secure-")){a.secure=true}if(a.name.startsWith("__Host-")){a.secure=true;a.domain=null;a.path="/"}if(a.secure){C.push("Secure")}if(a.httpOnly){C.push("HttpOnly")}if(typeof a.maxAge==="number"){validateCookieMaxAge(a.maxAge);C.push(`Max-Age=${a.maxAge}`)}if(a.domain){validateCookieDomain(a.domain);C.push(`Domain=${a.domain}`)}if(a.path){validateCookiePath(a.path);C.push(`Path=${a.path}`)}if(a.expires&&a.expires.toString()!=="Invalid Date"){C.push(`Expires=${toIMFDate(a.expires)}`)}if(a.sameSite){C.push(`SameSite=${a.sameSite}`)}for(const q of a.unparsed){if(!q.includes("=")){throw new Error("Invalid unparsed")}const[a,...re]=q.split("=");C.push(`${a.trim()}=${re.join("=")}`)}return C.join("; ")}a.exports={isCTLExcludingHtab:isCTLExcludingHtab,validateCookieName:validateCookieName,validateCookiePath:validateCookiePath,validateCookieValue:validateCookieValue,toIMFDate:toIMFDate,stringify:stringify}},9136:(a,C,q)=>{const re=q(9278);const ae=q(2613);const Ue=q(3440);const{InvalidArgumentError:lt,ConnectTimeoutError:Pt}=q(8707);let Wt;let Ar;if(global.FinalizationRegistry&&!process.env.NODE_V8_COVERAGE){Ar=class WeakSessionCache{constructor(a){this._maxCachedSessions=a;this._sessionCache=new Map;this._sessionRegistry=new global.FinalizationRegistry((a=>{if(this._sessionCache.size=this._maxCachedSessions){const{value:a}=this._sessionCache.keys().next();this._sessionCache.delete(a)}this._sessionCache.set(a,C)}}}function buildConnector({allowH2:a,maxCachedSessions:C,socketPath:Pt,timeout:Er,...Br}){if(C!=null&&(!Number.isInteger(C)||C<0)){throw new lt("maxCachedSessions must be a positive integer or zero")}const Qr={path:Pt,...Br};const Ir=new Ar(C==null?100:C);Er=Er==null?1e4:Er;a=a!=null?a:false;return function connect({hostname:C,host:lt,protocol:Pt,port:Ar,servername:Br,localAddress:Dr,httpSocket:kr},Fr){let Nr;if(Pt==="https:"){if(!Wt){Wt=q(4756)}Br=Br||Qr.servername||Ue.getServerName(lt)||null;const re=Br||C;const Pt=Ir.get(re)||null;ae(re);Nr=Wt.connect({highWaterMark:16384,...Qr,servername:Br,session:Pt,localAddress:Dr,ALPNProtocols:a?["http/1.1","h2"]:["http/1.1"],socket:kr,port:Ar||443,host:C});Nr.on("session",(function(a){Ir.set(re,a)}))}else{ae(!kr,"httpSocket can only be sent on TLS update");Nr=re.connect({highWaterMark:64*1024,...Qr,localAddress:Dr,port:Ar||80,host:C})}if(Qr.keepAlive==null||Qr.keepAlive){const a=Qr.keepAliveInitialDelay===undefined?6e4:Qr.keepAliveInitialDelay;Nr.setKeepAlive(true,a)}const Ur=setupTimeout((()=>onConnectTimeout(Nr)),Er);Nr.setNoDelay(true).once(Pt==="https:"?"secureConnect":"connect",(function(){Ur();if(Fr){const a=Fr;Fr=null;a(null,this)}})).on("error",(function(a){Ur();if(Fr){const C=Fr;Fr=null;C(a)}}));return Nr}}function setupTimeout(a,C){if(!C){return()=>{}}let q=null;let re=null;const ae=setTimeout((()=>{q=setImmediate((()=>{if(process.platform==="win32"){re=setImmediate((()=>a()))}else{a()}}))}),C);return()=>{clearTimeout(ae);clearImmediate(q);clearImmediate(re)}}function onConnectTimeout(a){Ue.destroy(a,new Pt)}a.exports=buildConnector},735:a=>{const C={};const q=["Accept","Accept-Encoding","Accept-Language","Accept-Ranges","Access-Control-Allow-Credentials","Access-Control-Allow-Headers","Access-Control-Allow-Methods","Access-Control-Allow-Origin","Access-Control-Expose-Headers","Access-Control-Max-Age","Access-Control-Request-Headers","Access-Control-Request-Method","Age","Allow","Alt-Svc","Alt-Used","Authorization","Cache-Control","Clear-Site-Data","Connection","Content-Disposition","Content-Encoding","Content-Language","Content-Length","Content-Location","Content-Range","Content-Security-Policy","Content-Security-Policy-Report-Only","Content-Type","Cookie","Cross-Origin-Embedder-Policy","Cross-Origin-Opener-Policy","Cross-Origin-Resource-Policy","Date","Device-Memory","Downlink","ECT","ETag","Expect","Expect-CT","Expires","Forwarded","From","Host","If-Match","If-Modified-Since","If-None-Match","If-Range","If-Unmodified-Since","Keep-Alive","Last-Modified","Link","Location","Max-Forwards","Origin","Permissions-Policy","Pragma","Proxy-Authenticate","Proxy-Authorization","RTT","Range","Referer","Referrer-Policy","Refresh","Retry-After","Sec-WebSocket-Accept","Sec-WebSocket-Extensions","Sec-WebSocket-Key","Sec-WebSocket-Protocol","Sec-WebSocket-Version","Server","Server-Timing","Service-Worker-Allowed","Service-Worker-Navigation-Preload","Set-Cookie","SourceMap","Strict-Transport-Security","Supports-Loading-Mode","TE","Timing-Allow-Origin","Trailer","Transfer-Encoding","Upgrade","Upgrade-Insecure-Requests","User-Agent","Vary","Via","WWW-Authenticate","X-Content-Type-Options","X-DNS-Prefetch-Control","X-Frame-Options","X-Permitted-Cross-Domain-Policies","X-Powered-By","X-Requested-With","X-XSS-Protection"];for(let a=0;a{class UndiciError extends Error{constructor(a){super(a);this.name="UndiciError";this.code="UND_ERR"}}class ConnectTimeoutError extends UndiciError{constructor(a){super(a);Error.captureStackTrace(this,ConnectTimeoutError);this.name="ConnectTimeoutError";this.message=a||"Connect Timeout Error";this.code="UND_ERR_CONNECT_TIMEOUT"}}class HeadersTimeoutError extends UndiciError{constructor(a){super(a);Error.captureStackTrace(this,HeadersTimeoutError);this.name="HeadersTimeoutError";this.message=a||"Headers Timeout Error";this.code="UND_ERR_HEADERS_TIMEOUT"}}class HeadersOverflowError extends UndiciError{constructor(a){super(a);Error.captureStackTrace(this,HeadersOverflowError);this.name="HeadersOverflowError";this.message=a||"Headers Overflow Error";this.code="UND_ERR_HEADERS_OVERFLOW"}}class BodyTimeoutError extends UndiciError{constructor(a){super(a);Error.captureStackTrace(this,BodyTimeoutError);this.name="BodyTimeoutError";this.message=a||"Body Timeout Error";this.code="UND_ERR_BODY_TIMEOUT"}}class ResponseStatusCodeError extends UndiciError{constructor(a,C,q,re){super(a);Error.captureStackTrace(this,ResponseStatusCodeError);this.name="ResponseStatusCodeError";this.message=a||"Response Status Code Error";this.code="UND_ERR_RESPONSE_STATUS_CODE";this.body=re;this.status=C;this.statusCode=C;this.headers=q}}class InvalidArgumentError extends UndiciError{constructor(a){super(a);Error.captureStackTrace(this,InvalidArgumentError);this.name="InvalidArgumentError";this.message=a||"Invalid Argument Error";this.code="UND_ERR_INVALID_ARG"}}class InvalidReturnValueError extends UndiciError{constructor(a){super(a);Error.captureStackTrace(this,InvalidReturnValueError);this.name="InvalidReturnValueError";this.message=a||"Invalid Return Value Error";this.code="UND_ERR_INVALID_RETURN_VALUE"}}class RequestAbortedError extends UndiciError{constructor(a){super(a);Error.captureStackTrace(this,RequestAbortedError);this.name="AbortError";this.message=a||"Request aborted";this.code="UND_ERR_ABORTED"}}class InformationalError extends UndiciError{constructor(a){super(a);Error.captureStackTrace(this,InformationalError);this.name="InformationalError";this.message=a||"Request information";this.code="UND_ERR_INFO"}}class RequestContentLengthMismatchError extends UndiciError{constructor(a){super(a);Error.captureStackTrace(this,RequestContentLengthMismatchError);this.name="RequestContentLengthMismatchError";this.message=a||"Request body length does not match content-length header";this.code="UND_ERR_REQ_CONTENT_LENGTH_MISMATCH"}}class ResponseContentLengthMismatchError extends UndiciError{constructor(a){super(a);Error.captureStackTrace(this,ResponseContentLengthMismatchError);this.name="ResponseContentLengthMismatchError";this.message=a||"Response body length does not match content-length header";this.code="UND_ERR_RES_CONTENT_LENGTH_MISMATCH"}}class ClientDestroyedError extends UndiciError{constructor(a){super(a);Error.captureStackTrace(this,ClientDestroyedError);this.name="ClientDestroyedError";this.message=a||"The client is destroyed";this.code="UND_ERR_DESTROYED"}}class ClientClosedError extends UndiciError{constructor(a){super(a);Error.captureStackTrace(this,ClientClosedError);this.name="ClientClosedError";this.message=a||"The client is closed";this.code="UND_ERR_CLOSED"}}class SocketError extends UndiciError{constructor(a,C){super(a);Error.captureStackTrace(this,SocketError);this.name="SocketError";this.message=a||"Socket error";this.code="UND_ERR_SOCKET";this.socket=C}}class NotSupportedError extends UndiciError{constructor(a){super(a);Error.captureStackTrace(this,NotSupportedError);this.name="NotSupportedError";this.message=a||"Not supported error";this.code="UND_ERR_NOT_SUPPORTED"}}class BalancedPoolMissingUpstreamError extends UndiciError{constructor(a){super(a);Error.captureStackTrace(this,NotSupportedError);this.name="MissingUpstreamError";this.message=a||"No upstream has been added to the BalancedPool";this.code="UND_ERR_BPL_MISSING_UPSTREAM"}}class HTTPParserError extends Error{constructor(a,C,q){super(a);Error.captureStackTrace(this,HTTPParserError);this.name="HTTPParserError";this.code=C?`HPE_${C}`:undefined;this.data=q?q.toString():undefined}}class ResponseExceededMaxSizeError extends UndiciError{constructor(a){super(a);Error.captureStackTrace(this,ResponseExceededMaxSizeError);this.name="ResponseExceededMaxSizeError";this.message=a||"Response content exceeded max size";this.code="UND_ERR_RES_EXCEEDED_MAX_SIZE"}}class RequestRetryError extends UndiciError{constructor(a,C,{headers:q,data:re}){super(a);Error.captureStackTrace(this,RequestRetryError);this.name="RequestRetryError";this.message=a||"Request retry error";this.code="UND_ERR_REQ_RETRY";this.statusCode=C;this.data=re;this.headers=q}}a.exports={HTTPParserError:HTTPParserError,UndiciError:UndiciError,HeadersTimeoutError:HeadersTimeoutError,HeadersOverflowError:HeadersOverflowError,BodyTimeoutError:BodyTimeoutError,RequestContentLengthMismatchError:RequestContentLengthMismatchError,ConnectTimeoutError:ConnectTimeoutError,ResponseStatusCodeError:ResponseStatusCodeError,InvalidArgumentError:InvalidArgumentError,InvalidReturnValueError:InvalidReturnValueError,RequestAbortedError:RequestAbortedError,ClientDestroyedError:ClientDestroyedError,ClientClosedError:ClientClosedError,InformationalError:InformationalError,SocketError:SocketError,NotSupportedError:NotSupportedError,ResponseContentLengthMismatchError:ResponseContentLengthMismatchError,BalancedPoolMissingUpstreamError:BalancedPoolMissingUpstreamError,ResponseExceededMaxSizeError:ResponseExceededMaxSizeError,RequestRetryError:RequestRetryError}},4655:(a,C,q)=>{const{InvalidArgumentError:re,NotSupportedError:ae}=q(8707);const Ue=q(2613);const{kHTTP2BuildRequest:lt,kHTTP2CopyHeaders:Pt,kHTTP1BuildRequest:Wt}=q(6443);const Ar=q(3440);const Er=/^[\^_`a-zA-Z\-0-9!#$%&'*+.|~]+$/;const Br=/[^\t\x20-\x7e\x80-\xff]/;const Qr=/[^\u0021-\u00ff]/;const Ir=Symbol("handler");const Dr={};let kr;try{const a=q(1637);Dr.create=a.channel("undici:request:create");Dr.bodySent=a.channel("undici:request:bodySent");Dr.headers=a.channel("undici:request:headers");Dr.trailers=a.channel("undici:request:trailers");Dr.error=a.channel("undici:request:error")}catch{Dr.create={hasSubscribers:false};Dr.bodySent={hasSubscribers:false};Dr.headers={hasSubscribers:false};Dr.trailers={hasSubscribers:false};Dr.error={hasSubscribers:false}}class Request{constructor(a,{path:C,method:ae,body:Ue,headers:lt,query:Pt,idempotent:Wt,blocking:Br,upgrade:Fr,headersTimeout:Nr,bodyTimeout:Ur,reset:Lr,throwOnError:Mr,expectContinue:Pr},Gr){if(typeof C!=="string"){throw new re("path must be a string")}else if(C[0]!=="/"&&!(C.startsWith("http://")||C.startsWith("https://"))&&ae!=="CONNECT"){throw new re("path must be an absolute URL or start with a slash")}else if(Qr.exec(C)!==null){throw new re("invalid request path")}if(typeof ae!=="string"){throw new re("method must be a string")}else if(Er.exec(ae)===null){throw new re("invalid request method")}if(Fr&&typeof Fr!=="string"){throw new re("upgrade must be a string")}if(Nr!=null&&(!Number.isFinite(Nr)||Nr<0)){throw new re("invalid headersTimeout")}if(Ur!=null&&(!Number.isFinite(Ur)||Ur<0)){throw new re("invalid bodyTimeout")}if(Lr!=null&&typeof Lr!=="boolean"){throw new re("invalid reset")}if(Pr!=null&&typeof Pr!=="boolean"){throw new re("invalid expectContinue")}this.headersTimeout=Nr;this.bodyTimeout=Ur;this.throwOnError=Mr===true;this.method=ae;this.abort=null;if(Ue==null){this.body=null}else if(Ar.isStream(Ue)){this.body=Ue;const a=this.body._readableState;if(!a||!a.autoDestroy){this.endHandler=function autoDestroy(){Ar.destroy(this)};this.body.on("end",this.endHandler)}this.errorHandler=a=>{if(this.abort){this.abort(a)}else{this.error=a}};this.body.on("error",this.errorHandler)}else if(Ar.isBuffer(Ue)){this.body=Ue.byteLength?Ue:null}else if(ArrayBuffer.isView(Ue)){this.body=Ue.buffer.byteLength?Buffer.from(Ue.buffer,Ue.byteOffset,Ue.byteLength):null}else if(Ue instanceof ArrayBuffer){this.body=Ue.byteLength?Buffer.from(Ue):null}else if(typeof Ue==="string"){this.body=Ue.length?Buffer.from(Ue):null}else if(Ar.isFormDataLike(Ue)||Ar.isIterable(Ue)||Ar.isBlobLike(Ue)){this.body=Ue}else{throw new re("body must be a string, a Buffer, a Readable stream, an iterable, or an async iterable")}this.completed=false;this.aborted=false;this.upgrade=Fr||null;this.path=Pt?Ar.buildURL(C,Pt):C;this.origin=a;this.idempotent=Wt==null?ae==="HEAD"||ae==="GET":Wt;this.blocking=Br==null?false:Br;this.reset=Lr==null?null:Lr;this.host=null;this.contentLength=null;this.contentType=null;this.headers="";this.expectContinue=Pr!=null?Pr:false;if(Array.isArray(lt)){if(lt.length%2!==0){throw new re("headers array must be even")}for(let a=0;a{a.exports={kClose:Symbol("close"),kDestroy:Symbol("destroy"),kDispatch:Symbol("dispatch"),kUrl:Symbol("url"),kWriting:Symbol("writing"),kResuming:Symbol("resuming"),kQueue:Symbol("queue"),kConnect:Symbol("connect"),kConnecting:Symbol("connecting"),kHeadersList:Symbol("headers list"),kKeepAliveDefaultTimeout:Symbol("default keep alive timeout"),kKeepAliveMaxTimeout:Symbol("max keep alive timeout"),kKeepAliveTimeoutThreshold:Symbol("keep alive timeout threshold"),kKeepAliveTimeoutValue:Symbol("keep alive timeout"),kKeepAlive:Symbol("keep alive"),kHeadersTimeout:Symbol("headers timeout"),kBodyTimeout:Symbol("body timeout"),kServerName:Symbol("server name"),kLocalAddress:Symbol("local address"),kHost:Symbol("host"),kNoRef:Symbol("no ref"),kBodyUsed:Symbol("used"),kRunning:Symbol("running"),kBlocking:Symbol("blocking"),kPending:Symbol("pending"),kSize:Symbol("size"),kBusy:Symbol("busy"),kQueued:Symbol("queued"),kFree:Symbol("free"),kConnected:Symbol("connected"),kClosed:Symbol("closed"),kNeedDrain:Symbol("need drain"),kReset:Symbol("reset"),kDestroyed:Symbol.for("nodejs.stream.destroyed"),kMaxHeadersSize:Symbol("max headers size"),kRunningIdx:Symbol("running index"),kPendingIdx:Symbol("pending index"),kError:Symbol("error"),kClients:Symbol("clients"),kClient:Symbol("client"),kParser:Symbol("parser"),kOnDestroyed:Symbol("destroy callbacks"),kPipelining:Symbol("pipelining"),kSocket:Symbol("socket"),kHostHeader:Symbol("host header"),kConnector:Symbol("connector"),kStrictContentLength:Symbol("strict content length"),kMaxRedirections:Symbol("maxRedirections"),kMaxRequests:Symbol("maxRequestsPerClient"),kProxy:Symbol("proxy agent options"),kCounter:Symbol("socket request counter"),kInterceptors:Symbol("dispatch interceptors"),kMaxResponseSize:Symbol("max response size"),kHTTP2Session:Symbol("http2Session"),kHTTP2SessionState:Symbol("http2Session state"),kHTTP2BuildRequest:Symbol("http2 build request"),kHTTP1BuildRequest:Symbol("http1 build request"),kHTTP2CopyHeaders:Symbol("http2 copy headers"),kHTTPConnVersion:Symbol("http connection version"),kRetryHandlerDefaultRetry:Symbol("retry agent default retry"),kConstruct:Symbol("constructable")}},3440:(a,C,q)=>{const re=q(2613);const{kDestroyed:ae,kBodyUsed:Ue}=q(6443);const{IncomingMessage:lt}=q(8611);const Pt=q(2203);const Wt=q(9278);const{InvalidArgumentError:Ar}=q(8707);const{Blob:Er}=q(181);const Br=q(9023);const{stringify:Qr}=q(3480);const{headerNameLowerCasedRecord:Ir}=q(735);const[Dr,kr]=process.versions.node.split(".").map((a=>Number(a)));function nop(){}function isStream(a){return a&&typeof a==="object"&&typeof a.pipe==="function"&&typeof a.on==="function"}function isBlobLike(a){return Er&&a instanceof Er||a&&typeof a==="object"&&(typeof a.stream==="function"||typeof a.arrayBuffer==="function")&&/^(Blob|File)$/.test(a[Symbol.toStringTag])}function buildURL(a,C){if(a.includes("?")||a.includes("#")){throw new Error('Query params cannot be passed when url already contains "?" or "#".')}const q=Qr(C);if(q){a+="?"+q}return a}function parseURL(a){if(typeof a==="string"){a=new URL(a);if(!/^https?:/.test(a.origin||a.protocol)){throw new Ar("Invalid URL protocol: the URL must start with `http:` or `https:`.")}return a}if(!a||typeof a!=="object"){throw new Ar("Invalid URL: The URL argument must be a non-null object.")}if(!/^https?:/.test(a.origin||a.protocol)){throw new Ar("Invalid URL protocol: the URL must start with `http:` or `https:`.")}if(!(a instanceof URL)){if(a.port!=null&&a.port!==""&&!Number.isFinite(parseInt(a.port))){throw new Ar("Invalid URL: port must be a valid integer or a string representation of an integer.")}if(a.path!=null&&typeof a.path!=="string"){throw new Ar("Invalid URL path: the path must be a string or null/undefined.")}if(a.pathname!=null&&typeof a.pathname!=="string"){throw new Ar("Invalid URL pathname: the pathname must be a string or null/undefined.")}if(a.hostname!=null&&typeof a.hostname!=="string"){throw new Ar("Invalid URL hostname: the hostname must be a string or null/undefined.")}if(a.origin!=null&&typeof a.origin!=="string"){throw new Ar("Invalid URL origin: the origin must be a string or null/undefined.")}const C=a.port!=null?a.port:a.protocol==="https:"?443:80;let q=a.origin!=null?a.origin:`${a.protocol}//${a.hostname}:${C}`;let re=a.path!=null?a.path:`${a.pathname||""}${a.search||""}`;if(q.endsWith("/")){q=q.substring(0,q.length-1)}if(re&&!re.startsWith("/")){re=`/${re}`}a=new URL(q+re)}return a}function parseOrigin(a){a=parseURL(a);if(a.pathname!=="/"||a.search||a.hash){throw new Ar("invalid url")}return a}function getHostname(a){if(a[0]==="["){const C=a.indexOf("]");re(C!==-1);return a.substring(1,C)}const C=a.indexOf(":");if(C===-1)return a;return a.substring(0,C)}function getServerName(a){if(!a){return null}re.strictEqual(typeof a,"string");const C=getHostname(a);if(Wt.isIP(C)){return""}return C}function deepClone(a){return JSON.parse(JSON.stringify(a))}function isAsyncIterable(a){return!!(a!=null&&typeof a[Symbol.asyncIterator]==="function")}function isIterable(a){return!!(a!=null&&(typeof a[Symbol.iterator]==="function"||typeof a[Symbol.asyncIterator]==="function"))}function bodyLength(a){if(a==null){return 0}else if(isStream(a)){const C=a._readableState;return C&&C.objectMode===false&&C.ended===true&&Number.isFinite(C.length)?C.length:null}else if(isBlobLike(a)){return a.size!=null?a.size:null}else if(isBuffer(a)){return a.byteLength}return null}function isDestroyed(a){return!a||!!(a.destroyed||a[ae])}function isReadableAborted(a){const C=a&&a._readableState;return isDestroyed(a)&&C&&!C.endEmitted}function destroy(a,C){if(a==null||!isStream(a)||isDestroyed(a)){return}if(typeof a.destroy==="function"){if(Object.getPrototypeOf(a).constructor===lt){a.socket=null}a.destroy(C)}else if(C){process.nextTick(((a,C)=>{a.emit("error",C)}),a,C)}if(a.destroyed!==true){a[ae]=true}}const Fr=/timeout=(\d+)/;function parseKeepAliveTimeout(a){const C=a.toString().match(Fr);return C?parseInt(C[1],10)*1e3:null}function headerNameToString(a){return Ir[a]||a.toLowerCase()}function parseHeaders(a,C={}){if(!Array.isArray(a))return a;for(let q=0;qa.toString("utf8")))}else{C[re]=a[q+1].toString("utf8")}}else{if(!Array.isArray(ae)){ae=[ae];C[re]=ae}ae.push(a[q+1].toString("utf8"))}}if("content-length"in C&&"content-disposition"in C){C["content-disposition"]=Buffer.from(C["content-disposition"]).toString("latin1")}return C}function parseRawHeaders(a){const C=[];let q=false;let re=-1;for(let ae=0;ae{a.close()}))}else{const C=Buffer.isBuffer(re)?re:Buffer.from(re);a.enqueue(new Uint8Array(C))}return a.desiredSize>0},async cancel(a){await C.return()}},0)}function isFormDataLike(a){return a&&typeof a==="object"&&typeof a.append==="function"&&typeof a.delete==="function"&&typeof a.get==="function"&&typeof a.getAll==="function"&&typeof a.has==="function"&&typeof a.set==="function"&&a[Symbol.toStringTag]==="FormData"}function throwIfAborted(a){if(!a){return}if(typeof a.throwIfAborted==="function"){a.throwIfAborted()}else{if(a.aborted){const a=new Error("The operation was aborted");a.name="AbortError";throw a}}}function addAbortListener(a,C){if("addEventListener"in a){a.addEventListener("abort",C,{once:true});return()=>a.removeEventListener("abort",C)}a.addListener("abort",C);return()=>a.removeListener("abort",C)}const Ur=!!String.prototype.toWellFormed;function toUSVString(a){if(Ur){return`${a}`.toWellFormed()}else if(Br.toUSVString){return Br.toUSVString(a)}return`${a}`}function parseRangeHeader(a){if(a==null||a==="")return{start:0,end:null,size:null};const C=a?a.match(/^bytes (\d+)-(\d+)\/(\d+)?$/):null;return C?{start:parseInt(C[1]),end:C[2]?parseInt(C[2]):null,size:C[3]?parseInt(C[3]):null}:null}const Lr=Object.create(null);Lr.enumerable=true;a.exports={kEnumerableProperty:Lr,nop:nop,isDisturbed:isDisturbed,isErrored:isErrored,isReadable:isReadable,toUSVString:toUSVString,isReadableAborted:isReadableAborted,isBlobLike:isBlobLike,parseOrigin:parseOrigin,parseURL:parseURL,getServerName:getServerName,isStream:isStream,isIterable:isIterable,isAsyncIterable:isAsyncIterable,isDestroyed:isDestroyed,headerNameToString:headerNameToString,parseRawHeaders:parseRawHeaders,parseHeaders:parseHeaders,parseKeepAliveTimeout:parseKeepAliveTimeout,destroy:destroy,bodyLength:bodyLength,deepClone:deepClone,ReadableStreamFrom:ReadableStreamFrom,isBuffer:isBuffer,validateHandler:validateHandler,getSocketInfo:getSocketInfo,isFormDataLike:isFormDataLike,buildURL:buildURL,throwIfAborted:throwIfAborted,addAbortListener:addAbortListener,parseRangeHeader:parseRangeHeader,nodeMajor:Dr,nodeMinor:kr,nodeHasAutoSelectFamily:Dr>18||Dr===18&&kr>=13,safeHTTPMethods:["GET","HEAD","OPTIONS","TRACE"]}},1:(a,C,q)=>{const re=q(992);const{ClientDestroyedError:ae,ClientClosedError:Ue,InvalidArgumentError:lt}=q(8707);const{kDestroy:Pt,kClose:Wt,kDispatch:Ar,kInterceptors:Er}=q(6443);const Br=Symbol("destroyed");const Qr=Symbol("closed");const Ir=Symbol("onDestroyed");const Dr=Symbol("onClosed");const kr=Symbol("Intercepted Dispatch");class DispatcherBase extends re{constructor(){super();this[Br]=false;this[Ir]=null;this[Qr]=false;this[Dr]=[]}get destroyed(){return this[Br]}get closed(){return this[Qr]}get interceptors(){return this[Er]}set interceptors(a){if(a){for(let C=a.length-1;C>=0;C--){const a=this[Er][C];if(typeof a!=="function"){throw new lt("interceptor must be an function")}}}this[Er]=a}close(a){if(a===undefined){return new Promise(((a,C)=>{this.close(((q,re)=>q?C(q):a(re)))}))}if(typeof a!=="function"){throw new lt("invalid callback")}if(this[Br]){queueMicrotask((()=>a(new ae,null)));return}if(this[Qr]){if(this[Dr]){this[Dr].push(a)}else{queueMicrotask((()=>a(null,null)))}return}this[Qr]=true;this[Dr].push(a);const onClosed=()=>{const a=this[Dr];this[Dr]=null;for(let C=0;Cthis.destroy())).then((()=>{queueMicrotask(onClosed)}))}destroy(a,C){if(typeof a==="function"){C=a;a=null}if(C===undefined){return new Promise(((C,q)=>{this.destroy(a,((a,re)=>a?q(a):C(re)))}))}if(typeof C!=="function"){throw new lt("invalid callback")}if(this[Br]){if(this[Ir]){this[Ir].push(C)}else{queueMicrotask((()=>C(null,null)))}return}if(!a){a=new ae}this[Br]=true;this[Ir]=this[Ir]||[];this[Ir].push(C);const onDestroyed=()=>{const a=this[Ir];this[Ir]=null;for(let C=0;C{queueMicrotask(onDestroyed)}))}[kr](a,C){if(!this[Er]||this[Er].length===0){this[kr]=this[Ar];return this[Ar](a,C)}let q=this[Ar].bind(this);for(let a=this[Er].length-1;a>=0;a--){q=this[Er][a](q)}this[kr]=q;return q(a,C)}dispatch(a,C){if(!C||typeof C!=="object"){throw new lt("handler must be an object")}try{if(!a||typeof a!=="object"){throw new lt("opts must be an object.")}if(this[Br]||this[Ir]){throw new ae}if(this[Qr]){throw new Ue}return this[kr](a,C)}catch(a){if(typeof C.onError!=="function"){throw new lt("invalid onError method")}C.onError(a);return false}}}a.exports=DispatcherBase},992:(a,C,q)=>{const re=q(4434);class Dispatcher extends re{dispatch(){throw new Error("not implemented")}close(){throw new Error("not implemented")}destroy(){throw new Error("not implemented")}}a.exports=Dispatcher},8923:(a,C,q)=>{const re=q(9581);const ae=q(3440);const{ReadableStreamFrom:Ue,isBlobLike:lt,isReadableStreamLike:Pt,readableStreamClose:Wt,createDeferredPromise:Ar,fullyReadBody:Er}=q(5523);const{FormData:Br}=q(3073);const{kState:Qr}=q(9710);const{webidl:Ir}=q(4222);const{DOMException:Dr,structuredClone:kr}=q(7326);const{Blob:Fr,File:Nr}=q(181);const{kBodyUsed:Ur}=q(6443);const Lr=q(2613);const{isErrored:Mr}=q(3440);const{isUint8Array:Pr,isArrayBuffer:Gr}=q(8253);const{File:Or}=q(3041);const{parseMIMEType:Vr,serializeAMimeType:Hr}=q(4322);let xr;try{const a=q(7598);xr=C=>a.randomInt(0,C)}catch{xr=a=>Math.floor(Math.random(a))}let Yr=globalThis.ReadableStream;const Jr=Nr??Or;const Wr=new TextEncoder;const jr=new TextDecoder;function extractBody(a,C=false){if(!Yr){Yr=q(3774).ReadableStream}let re=null;if(a instanceof Yr){re=a}else if(lt(a)){re=a.stream()}else{re=new Yr({async pull(a){a.enqueue(typeof Er==="string"?Wr.encode(Er):Er);queueMicrotask((()=>Wt(a)))},start(){},type:undefined})}Lr(Pt(re));let Ar=null;let Er=null;let Br=null;let Qr=null;if(typeof a==="string"){Er=a;Qr="text/plain;charset=UTF-8"}else if(a instanceof URLSearchParams){Er=a.toString();Qr="application/x-www-form-urlencoded;charset=UTF-8"}else if(Gr(a)){Er=new Uint8Array(a.slice())}else if(ArrayBuffer.isView(a)){Er=new Uint8Array(a.buffer.slice(a.byteOffset,a.byteOffset+a.byteLength))}else if(ae.isFormDataLike(a)){const C=`----formdata-undici-0${`${xr(1e11)}`.padStart(11,"0")}`;const q=`--${C}\r\nContent-Disposition: form-data` -/*! formdata-polyfill. MIT License. Jimmy Wärting */;const escape=a=>a.replace(/\n/g,"%0A").replace(/\r/g,"%0D").replace(/"/g,"%22");const normalizeLinefeeds=a=>a.replace(/\r?\n|\r/g,"\r\n");const re=[];const ae=new Uint8Array([13,10]);Br=0;let Ue=false;for(const[C,lt]of a){if(typeof lt==="string"){const a=Wr.encode(q+`; name="${escape(normalizeLinefeeds(C))}"`+`\r\n\r\n${normalizeLinefeeds(lt)}\r\n`);re.push(a);Br+=a.byteLength}else{const a=Wr.encode(`${q}; name="${escape(normalizeLinefeeds(C))}"`+(lt.name?`; filename="${escape(lt.name)}"`:"")+"\r\n"+`Content-Type: ${lt.type||"application/octet-stream"}\r\n\r\n`);re.push(a,lt,ae);if(typeof lt.size==="number"){Br+=a.byteLength+lt.size+ae.byteLength}else{Ue=true}}}const lt=Wr.encode(`--${C}--`);re.push(lt);Br+=lt.byteLength;if(Ue){Br=null}Er=a;Ar=async function*(){for(const a of re){if(a.stream){yield*a.stream()}else{yield a}}};Qr="multipart/form-data; boundary="+C}else if(lt(a)){Er=a;Br=a.size;if(a.type){Qr=a.type}}else if(typeof a[Symbol.asyncIterator]==="function"){if(C){throw new TypeError("keepalive")}if(ae.isDisturbed(a)||a.locked){throw new TypeError("Response body object should not be disturbed or locked")}re=a instanceof Yr?a:Ue(a)}if(typeof Er==="string"||ae.isBuffer(Er)){Br=Buffer.byteLength(Er)}if(Ar!=null){let C;re=new Yr({async start(){C=Ar(a)[Symbol.asyncIterator]()},async pull(a){const{value:q,done:ae}=await C.next();if(ae){queueMicrotask((()=>{a.close()}))}else{if(!Mr(re)){a.enqueue(new Uint8Array(q))}}return a.desiredSize>0},async cancel(a){await C.return()},type:undefined})}const Ir={stream:re,source:Er,length:Br};return[Ir,Qr]}function safelyExtractBody(a,C=false){if(!Yr){Yr=q(3774).ReadableStream}if(a instanceof Yr){Lr(!ae.isDisturbed(a),"The body has already been consumed.");Lr(!a.locked,"The stream is locked.")}return extractBody(a,C)}function cloneBody(a){const[C,q]=a.stream.tee();const re=kr(q,{transfer:[q]});const[,ae]=re.tee();a.stream=C;return{stream:ae,length:a.length,source:a.source}}async function*consumeBody(a){if(a){if(Pr(a)){yield a}else{const C=a.stream;if(ae.isDisturbed(C)){throw new TypeError("The body has already been consumed.")}if(C.locked){throw new TypeError("The stream is locked.")}C[Ur]=true;yield*C}}}function throwIfAborted(a){if(a.aborted){throw new Dr("The operation was aborted.","AbortError")}}function bodyMixinMethods(a){const C={blob(){return specConsumeBody(this,(a=>{let C=bodyMimeType(this);if(C==="failure"){C=""}else if(C){C=Hr(C)}return new Fr([a],{type:C})}),a)},arrayBuffer(){return specConsumeBody(this,(a=>new Uint8Array(a).buffer),a)},text(){return specConsumeBody(this,utf8DecodeBytes,a)},json(){return specConsumeBody(this,parseJSONFromBytes,a)},async formData(){Ir.brandCheck(this,a);throwIfAborted(this[Qr]);const C=this.headers.get("Content-Type");if(/multipart\/form-data/.test(C)){const a={};for(const[C,q]of this.headers)a[C.toLowerCase()]=q;const C=new Br;let q;try{q=new re({headers:a,preservePath:true})}catch(a){throw new Dr(`${a}`,"AbortError")}q.on("field",((a,q)=>{C.append(a,q)}));q.on("file",((a,q,re,ae,Ue)=>{const lt=[];if(ae==="base64"||ae.toLowerCase()==="base64"){let ae="";q.on("data",(a=>{ae+=a.toString().replace(/[\r\n]/gm,"");const C=ae.length-ae.length%4;lt.push(Buffer.from(ae.slice(0,C),"base64"));ae=ae.slice(C)}));q.on("end",(()=>{lt.push(Buffer.from(ae,"base64"));C.append(a,new Jr(lt,re,{type:Ue}))}))}else{q.on("data",(a=>{lt.push(a)}));q.on("end",(()=>{C.append(a,new Jr(lt,re,{type:Ue}))}))}}));const ae=new Promise(((a,C)=>{q.on("finish",a);q.on("error",(a=>C(new TypeError(a))))}));if(this.body!==null)for await(const a of consumeBody(this[Qr].body))q.write(a);q.end();await ae;return C}else if(/application\/x-www-form-urlencoded/.test(C)){let a;try{let C="";const q=new TextDecoder("utf-8",{ignoreBOM:true});for await(const a of consumeBody(this[Qr].body)){if(!Pr(a)){throw new TypeError("Expected Uint8Array chunk")}C+=q.decode(a,{stream:true})}C+=q.decode();a=new URLSearchParams(C)}catch(a){throw Object.assign(new TypeError,{cause:a})}const C=new Br;for(const[q,re]of a){C.append(q,re)}return C}else{await Promise.resolve();throwIfAborted(this[Qr]);throw Ir.errors.exception({header:`${a.name}.formData`,message:"Could not parse content as FormData."})}}};return C}function mixinBody(a){Object.assign(a.prototype,bodyMixinMethods(a))}async function specConsumeBody(a,C,q){Ir.brandCheck(a,q);throwIfAborted(a[Qr]);if(bodyUnusable(a[Qr].body)){throw new TypeError("Body is unusable")}const re=Ar();const errorSteps=a=>re.reject(a);const successSteps=a=>{try{re.resolve(C(a))}catch(a){errorSteps(a)}};if(a[Qr].body==null){successSteps(new Uint8Array);return re.promise}await Er(a[Qr].body,successSteps,errorSteps);return re.promise}function bodyUnusable(a){return a!=null&&(a.stream.locked||ae.isDisturbed(a.stream))}function utf8DecodeBytes(a){if(a.length===0){return""}if(a[0]===239&&a[1]===187&&a[2]===191){a=a.subarray(3)}const C=jr.decode(a);return C}function parseJSONFromBytes(a){return JSON.parse(utf8DecodeBytes(a))}function bodyMimeType(a){const{headersList:C}=a[Qr];const q=C.get("content-type");if(q===null){return"failure"}return Vr(q)}a.exports={extractBody:extractBody,safelyExtractBody:safelyExtractBody,cloneBody:cloneBody,mixinBody:mixinBody}},7326:(a,C,q)=>{const{MessageChannel:re,receiveMessageOnPort:ae}=q(8167);const Ue=["GET","HEAD","POST"];const lt=new Set(Ue);const Pt=[101,204,205,304];const Wt=[301,302,303,307,308];const Ar=new Set(Wt);const Er=["1","7","9","11","13","15","17","19","20","21","22","23","25","37","42","43","53","69","77","79","87","95","101","102","103","104","109","110","111","113","115","117","119","123","135","137","139","143","161","179","389","427","465","512","513","514","515","526","530","531","532","540","548","554","556","563","587","601","636","989","990","993","995","1719","1720","1723","2049","3659","4045","5060","5061","6000","6566","6665","6666","6667","6668","6669","6697","10080"];const Br=new Set(Er);const Qr=["","no-referrer","no-referrer-when-downgrade","same-origin","origin","strict-origin","origin-when-cross-origin","strict-origin-when-cross-origin","unsafe-url"];const Ir=new Set(Qr);const Dr=["follow","manual","error"];const kr=["GET","HEAD","OPTIONS","TRACE"];const Fr=new Set(kr);const Nr=["navigate","same-origin","no-cors","cors"];const Ur=["omit","same-origin","include"];const Lr=["default","no-store","reload","no-cache","force-cache","only-if-cached"];const Mr=["content-encoding","content-language","content-location","content-type","content-length"];const Pr=["half"];const Gr=["CONNECT","TRACE","TRACK"];const Or=new Set(Gr);const Vr=["audio","audioworklet","font","image","manifest","paintworklet","script","style","track","video","xslt",""];const Hr=new Set(Vr);const xr=globalThis.DOMException??(()=>{try{atob("~")}catch(a){return Object.getPrototypeOf(a).constructor}})();let Yr;const Jr=globalThis.structuredClone??function structuredClone(a,C=undefined){if(arguments.length===0){throw new TypeError("missing argument")}if(!Yr){Yr=new re}Yr.port1.unref();Yr.port2.unref();Yr.port1.postMessage(a,C?.transfer);return ae(Yr.port2).message};a.exports={DOMException:xr,structuredClone:Jr,subresource:Vr,forbiddenMethods:Gr,requestBodyHeader:Mr,referrerPolicy:Qr,requestRedirect:Dr,requestMode:Nr,requestCredentials:Ur,requestCache:Lr,redirectStatus:Wt,corsSafeListedMethods:Ue,nullBodyStatus:Pt,safeMethods:kr,badPorts:Er,requestDuplex:Pr,subresourceSet:Hr,badPortsSet:Br,redirectStatusSet:Ar,corsSafeListedMethodsSet:lt,safeMethodsSet:Fr,forbiddenMethodsSet:Or,referrerPolicySet:Ir}},4322:(a,C,q)=>{const re=q(2613);const{atob:ae}=q(181);const{isomorphicDecode:Ue}=q(5523);const lt=new TextEncoder;const Pt=/^[!#$%&'*+-.^_|~A-Za-z0-9]+$/;const Wt=/(\u000A|\u000D|\u0009|\u0020)/;const Ar=/[\u0009|\u0020-\u007E|\u0080-\u00FF]/;function dataURLProcessor(a){re(a.protocol==="data:");let C=URLSerializer(a,true);C=C.slice(5);const q={position:0};let ae=collectASequenceOfCodePointsFast(",",C,q);const lt=ae.length;ae=removeASCIIWhitespace(ae,true,true);if(q.position>=C.length){return"failure"}q.position++;const Pt=C.slice(lt+1);let Wt=stringPercentDecode(Pt);if(/;(\u0020){0,}base64$/i.test(ae)){const a=Ue(Wt);Wt=forgivingBase64(a);if(Wt==="failure"){return"failure"}ae=ae.slice(0,-6);ae=ae.replace(/(\u0020)+$/,"");ae=ae.slice(0,-1)}if(ae.startsWith(";")){ae="text/plain"+ae}let Ar=parseMIMEType(ae);if(Ar==="failure"){Ar=parseMIMEType("text/plain;charset=US-ASCII")}return{mimeType:Ar,body:Wt}}function URLSerializer(a,C=false){if(!C){return a.href}const q=a.href;const re=a.hash.length;return re===0?q:q.substring(0,q.length-re)}function collectASequenceOfCodePoints(a,C,q){let re="";while(q.positiona.length){return"failure"}C.position++;let re=collectASequenceOfCodePointsFast(";",a,C);re=removeHTTPWhitespace(re,false,true);if(re.length===0||!Pt.test(re)){return"failure"}const ae=q.toLowerCase();const Ue=re.toLowerCase();const lt={type:ae,subtype:Ue,parameters:new Map,essence:`${ae}/${Ue}`};while(C.positionWt.test(a)),a,C);let q=collectASequenceOfCodePoints((a=>a!==";"&&a!=="="),a,C);q=q.toLowerCase();if(C.positiona.length){break}let re=null;if(a[C.position]==='"'){re=collectAnHTTPQuotedString(a,C,true);collectASequenceOfCodePointsFast(";",a,C)}else{re=collectASequenceOfCodePointsFast(";",a,C);re=removeHTTPWhitespace(re,false,true);if(re.length===0){continue}}if(q.length!==0&&Pt.test(q)&&(re.length===0||Ar.test(re))&&!lt.parameters.has(q)){lt.parameters.set(q,re)}}return lt}function forgivingBase64(a){a=a.replace(/[\u0009\u000A\u000C\u000D\u0020]/g,"");if(a.length%4===0){a=a.replace(/=?=$/,"")}if(a.length%4===1){return"failure"}if(/[^+/0-9A-Za-z]/.test(a)){return"failure"}const C=ae(a);const q=new Uint8Array(C.length);for(let a=0;aa!=='"'&&a!=="\\"),a,C);if(C.position>=a.length){break}const q=a[C.position];C.position++;if(q==="\\"){if(C.position>=a.length){Ue+="\\";break}Ue+=a[C.position];C.position++}else{re(q==='"');break}}if(q){return Ue}return a.slice(ae,C.position)}function serializeAMimeType(a){re(a!=="failure");const{parameters:C,essence:q}=a;let ae=q;for(let[a,q]of C.entries()){ae+=";";ae+=a;ae+="=";if(!Pt.test(q)){q=q.replace(/(\\|")/g,"\\$1");q='"'+q;q+='"'}ae+=q}return ae}function isHTTPWhiteSpace(a){return a==="\r"||a==="\n"||a==="\t"||a===" "}function removeHTTPWhitespace(a,C=true,q=true){let re=0;let ae=a.length-1;if(C){for(;re0&&isHTTPWhiteSpace(a[ae]);ae--);}return a.slice(re,ae+1)}function isASCIIWhitespace(a){return a==="\r"||a==="\n"||a==="\t"||a==="\f"||a===" "}function removeASCIIWhitespace(a,C=true,q=true){let re=0;let ae=a.length-1;if(C){for(;re0&&isASCIIWhitespace(a[ae]);ae--);}return a.slice(re,ae+1)}a.exports={dataURLProcessor:dataURLProcessor,URLSerializer:URLSerializer,collectASequenceOfCodePoints:collectASequenceOfCodePoints,collectASequenceOfCodePointsFast:collectASequenceOfCodePointsFast,stringPercentDecode:stringPercentDecode,parseMIMEType:parseMIMEType,collectAnHTTPQuotedString:collectAnHTTPQuotedString,serializeAMimeType:serializeAMimeType}},3041:(a,C,q)=>{const{Blob:re,File:ae}=q(181);const{types:Ue}=q(9023);const{kState:lt}=q(9710);const{isBlobLike:Pt}=q(5523);const{webidl:Wt}=q(4222);const{parseMIMEType:Ar,serializeAMimeType:Er}=q(4322);const{kEnumerableProperty:Br}=q(3440);const Qr=new TextEncoder;class File extends re{constructor(a,C,q={}){Wt.argumentLengthCheck(arguments,2,{header:"File constructor"});a=Wt.converters["sequence"](a);C=Wt.converters.USVString(C);q=Wt.converters.FilePropertyBag(q);const re=C;let ae=q.type;let Ue;e:{if(ae){ae=Ar(ae);if(ae==="failure"){ae="";break e}ae=Er(ae).toLowerCase()}Ue=q.lastModified}super(processBlobParts(a,q),{type:ae});this[lt]={name:re,lastModified:Ue,type:ae}}get name(){Wt.brandCheck(this,File);return this[lt].name}get lastModified(){Wt.brandCheck(this,File);return this[lt].lastModified}get type(){Wt.brandCheck(this,File);return this[lt].type}}class FileLike{constructor(a,C,q={}){const re=C;const ae=q.type;const Ue=q.lastModified??Date.now();this[lt]={blobLike:a,name:re,type:ae,lastModified:Ue}}stream(...a){Wt.brandCheck(this,FileLike);return this[lt].blobLike.stream(...a)}arrayBuffer(...a){Wt.brandCheck(this,FileLike);return this[lt].blobLike.arrayBuffer(...a)}slice(...a){Wt.brandCheck(this,FileLike);return this[lt].blobLike.slice(...a)}text(...a){Wt.brandCheck(this,FileLike);return this[lt].blobLike.text(...a)}get size(){Wt.brandCheck(this,FileLike);return this[lt].blobLike.size}get type(){Wt.brandCheck(this,FileLike);return this[lt].blobLike.type}get name(){Wt.brandCheck(this,FileLike);return this[lt].name}get lastModified(){Wt.brandCheck(this,FileLike);return this[lt].lastModified}get[Symbol.toStringTag](){return"File"}}Object.defineProperties(File.prototype,{[Symbol.toStringTag]:{value:"File",configurable:true},name:Br,lastModified:Br});Wt.converters.Blob=Wt.interfaceConverter(re);Wt.converters.BlobPart=function(a,C){if(Wt.util.Type(a)==="Object"){if(Pt(a)){return Wt.converters.Blob(a,{strict:false})}if(ArrayBuffer.isView(a)||Ue.isAnyArrayBuffer(a)){return Wt.converters.BufferSource(a,C)}}return Wt.converters.USVString(a,C)};Wt.converters["sequence"]=Wt.sequenceConverter(Wt.converters.BlobPart);Wt.converters.FilePropertyBag=Wt.dictionaryConverter([{key:"lastModified",converter:Wt.converters["long long"],get defaultValue(){return Date.now()}},{key:"type",converter:Wt.converters.DOMString,defaultValue:""},{key:"endings",converter:a=>{a=Wt.converters.DOMString(a);a=a.toLowerCase();if(a!=="native"){a="transparent"}return a},defaultValue:"transparent"}]);function processBlobParts(a,C){const q=[];for(const re of a){if(typeof re==="string"){let a=re;if(C.endings==="native"){a=convertLineEndingsNative(a)}q.push(Qr.encode(a))}else if(Ue.isAnyArrayBuffer(re)||Ue.isTypedArray(re)){if(!re.buffer){q.push(new Uint8Array(re))}else{q.push(new Uint8Array(re.buffer,re.byteOffset,re.byteLength))}}else if(Pt(re)){q.push(re)}}return q}function convertLineEndingsNative(a){let C="\n";if(process.platform==="win32"){C="\r\n"}return a.replace(/\r?\n/g,C)}function isFileLike(a){return ae&&a instanceof ae||a instanceof File||a&&(typeof a.stream==="function"||typeof a.arrayBuffer==="function")&&a[Symbol.toStringTag]==="File"}a.exports={File:File,FileLike:FileLike,isFileLike:isFileLike}},3073:(a,C,q)=>{const{isBlobLike:re,toUSVString:ae,makeIterator:Ue}=q(5523);const{kState:lt}=q(9710);const{File:Pt,FileLike:Wt,isFileLike:Ar}=q(3041);const{webidl:Er}=q(4222);const{Blob:Br,File:Qr}=q(181);const Ir=Qr??Pt;class FormData{constructor(a){if(a!==undefined){throw Er.errors.conversionFailed({prefix:"FormData constructor",argument:"Argument 1",types:["undefined"]})}this[lt]=[]}append(a,C,q=undefined){Er.brandCheck(this,FormData);Er.argumentLengthCheck(arguments,2,{header:"FormData.append"});if(arguments.length===3&&!re(C)){throw new TypeError("Failed to execute 'append' on 'FormData': parameter 2 is not of type 'Blob'")}a=Er.converters.USVString(a);C=re(C)?Er.converters.Blob(C,{strict:false}):Er.converters.USVString(C);q=arguments.length===3?Er.converters.USVString(q):undefined;const ae=makeEntry(a,C,q);this[lt].push(ae)}delete(a){Er.brandCheck(this,FormData);Er.argumentLengthCheck(arguments,1,{header:"FormData.delete"});a=Er.converters.USVString(a);this[lt]=this[lt].filter((C=>C.name!==a))}get(a){Er.brandCheck(this,FormData);Er.argumentLengthCheck(arguments,1,{header:"FormData.get"});a=Er.converters.USVString(a);const C=this[lt].findIndex((C=>C.name===a));if(C===-1){return null}return this[lt][C].value}getAll(a){Er.brandCheck(this,FormData);Er.argumentLengthCheck(arguments,1,{header:"FormData.getAll"});a=Er.converters.USVString(a);return this[lt].filter((C=>C.name===a)).map((a=>a.value))}has(a){Er.brandCheck(this,FormData);Er.argumentLengthCheck(arguments,1,{header:"FormData.has"});a=Er.converters.USVString(a);return this[lt].findIndex((C=>C.name===a))!==-1}set(a,C,q=undefined){Er.brandCheck(this,FormData);Er.argumentLengthCheck(arguments,2,{header:"FormData.set"});if(arguments.length===3&&!re(C)){throw new TypeError("Failed to execute 'set' on 'FormData': parameter 2 is not of type 'Blob'")}a=Er.converters.USVString(a);C=re(C)?Er.converters.Blob(C,{strict:false}):Er.converters.USVString(C);q=arguments.length===3?ae(q):undefined;const Ue=makeEntry(a,C,q);const Pt=this[lt].findIndex((C=>C.name===a));if(Pt!==-1){this[lt]=[...this[lt].slice(0,Pt),Ue,...this[lt].slice(Pt+1).filter((C=>C.name!==a))]}else{this[lt].push(Ue)}}entries(){Er.brandCheck(this,FormData);return Ue((()=>this[lt].map((a=>[a.name,a.value]))),"FormData","key+value")}keys(){Er.brandCheck(this,FormData);return Ue((()=>this[lt].map((a=>[a.name,a.value]))),"FormData","key")}values(){Er.brandCheck(this,FormData);return Ue((()=>this[lt].map((a=>[a.name,a.value]))),"FormData","value")}forEach(a,C=globalThis){Er.brandCheck(this,FormData);Er.argumentLengthCheck(arguments,1,{header:"FormData.forEach"});if(typeof a!=="function"){throw new TypeError("Failed to execute 'forEach' on 'FormData': parameter 1 is not of type 'Function'.")}for(const[q,re]of this){a.apply(C,[re,q,this])}}}FormData.prototype[Symbol.iterator]=FormData.prototype.entries;Object.defineProperties(FormData.prototype,{[Symbol.toStringTag]:{value:"FormData",configurable:true}});function makeEntry(a,C,q){a=Buffer.from(a).toString("utf8");if(typeof C==="string"){C=Buffer.from(C).toString("utf8")}else{if(!Ar(C)){C=C instanceof Br?new Ir([C],"blob",{type:C.type}):new Wt(C,"blob",{type:C.type})}if(q!==undefined){const a={type:C.type,lastModified:C.lastModified};C=Qr&&C instanceof Qr||C instanceof Pt?new Ir([C],q,a):new Wt(C,q,a)}}return{name:a,value:C}}a.exports={FormData:FormData}},5628:a=>{const C=Symbol.for("undici.globalOrigin.1");function getGlobalOrigin(){return globalThis[C]}function setGlobalOrigin(a){if(a===undefined){Object.defineProperty(globalThis,C,{value:undefined,writable:true,enumerable:false,configurable:false});return}const q=new URL(a);if(q.protocol!=="http:"&&q.protocol!=="https:"){throw new TypeError(`Only http & https urls are allowed, received ${q.protocol}`)}Object.defineProperty(globalThis,C,{value:q,writable:true,enumerable:false,configurable:false})}a.exports={getGlobalOrigin:getGlobalOrigin,setGlobalOrigin:setGlobalOrigin}},6349:(a,C,q)=>{const{kHeadersList:re,kConstruct:ae}=q(6443);const{kGuard:Ue}=q(9710);const{kEnumerableProperty:lt}=q(3440);const{makeIterator:Pt,isValidHeaderName:Wt,isValidHeaderValue:Ar}=q(5523);const Er=q(9023);const{webidl:Br}=q(4222);const Qr=q(2613);const Ir=Symbol("headers map");const Dr=Symbol("headers map sorted");function isHTTPWhiteSpaceCharCode(a){return a===10||a===13||a===9||a===32}function headerValueNormalize(a){let C=0;let q=a.length;while(q>C&&isHTTPWhiteSpaceCharCode(a.charCodeAt(q-1)))--q;while(q>C&&isHTTPWhiteSpaceCharCode(a.charCodeAt(C)))++C;return C===0&&q===a.length?a:a.substring(C,q)}function fill(a,C){if(Array.isArray(C)){for(let q=0;q>","record"]})}}function appendHeader(a,C,q){q=headerValueNormalize(q);if(!Wt(C)){throw Br.errors.invalidArgument({prefix:"Headers.append",value:C,type:"header name"})}else if(!Ar(q)){throw Br.errors.invalidArgument({prefix:"Headers.append",value:q,type:"header value"})}if(a[Ue]==="immutable"){throw new TypeError("immutable")}else if(a[Ue]==="request-no-cors"){}return a[re].append(C,q)}class HeadersList{cookies=null;constructor(a){if(a instanceof HeadersList){this[Ir]=new Map(a[Ir]);this[Dr]=a[Dr];this.cookies=a.cookies===null?null:[...a.cookies]}else{this[Ir]=new Map(a);this[Dr]=null}}contains(a){a=a.toLowerCase();return this[Ir].has(a)}clear(){this[Ir].clear();this[Dr]=null;this.cookies=null}append(a,C){this[Dr]=null;const q=a.toLowerCase();const re=this[Ir].get(q);if(re){const a=q==="cookie"?"; ":", ";this[Ir].set(q,{name:re.name,value:`${re.value}${a}${C}`})}else{this[Ir].set(q,{name:a,value:C})}if(q==="set-cookie"){this.cookies??=[];this.cookies.push(C)}}set(a,C){this[Dr]=null;const q=a.toLowerCase();if(q==="set-cookie"){this.cookies=[C]}this[Ir].set(q,{name:a,value:C})}delete(a){this[Dr]=null;a=a.toLowerCase();if(a==="set-cookie"){this.cookies=null}this[Ir].delete(a)}get(a){const C=this[Ir].get(a.toLowerCase());return C===undefined?null:C.value}*[Symbol.iterator](){for(const[a,{value:C}]of this[Ir]){yield[a,C]}}get entries(){const a={};if(this[Ir].size){for(const{name:C,value:q}of this[Ir].values()){a[C]=q}}return a}}class Headers{constructor(a=undefined){if(a===ae){return}this[re]=new HeadersList;this[Ue]="none";if(a!==undefined){a=Br.converters.HeadersInit(a);fill(this,a)}}append(a,C){Br.brandCheck(this,Headers);Br.argumentLengthCheck(arguments,2,{header:"Headers.append"});a=Br.converters.ByteString(a);C=Br.converters.ByteString(C);return appendHeader(this,a,C)}delete(a){Br.brandCheck(this,Headers);Br.argumentLengthCheck(arguments,1,{header:"Headers.delete"});a=Br.converters.ByteString(a);if(!Wt(a)){throw Br.errors.invalidArgument({prefix:"Headers.delete",value:a,type:"header name"})}if(this[Ue]==="immutable"){throw new TypeError("immutable")}else if(this[Ue]==="request-no-cors"){}if(!this[re].contains(a)){return}this[re].delete(a)}get(a){Br.brandCheck(this,Headers);Br.argumentLengthCheck(arguments,1,{header:"Headers.get"});a=Br.converters.ByteString(a);if(!Wt(a)){throw Br.errors.invalidArgument({prefix:"Headers.get",value:a,type:"header name"})}return this[re].get(a)}has(a){Br.brandCheck(this,Headers);Br.argumentLengthCheck(arguments,1,{header:"Headers.has"});a=Br.converters.ByteString(a);if(!Wt(a)){throw Br.errors.invalidArgument({prefix:"Headers.has",value:a,type:"header name"})}return this[re].contains(a)}set(a,C){Br.brandCheck(this,Headers);Br.argumentLengthCheck(arguments,2,{header:"Headers.set"});a=Br.converters.ByteString(a);C=Br.converters.ByteString(C);C=headerValueNormalize(C);if(!Wt(a)){throw Br.errors.invalidArgument({prefix:"Headers.set",value:a,type:"header name"})}else if(!Ar(C)){throw Br.errors.invalidArgument({prefix:"Headers.set",value:C,type:"header value"})}if(this[Ue]==="immutable"){throw new TypeError("immutable")}else if(this[Ue]==="request-no-cors"){}this[re].set(a,C)}getSetCookie(){Br.brandCheck(this,Headers);const a=this[re].cookies;if(a){return[...a]}return[]}get[Dr](){if(this[re][Dr]){return this[re][Dr]}const a=[];const C=[...this[re]].sort(((a,C)=>a[0]a),"Headers","key")}return Pt((()=>[...this[Dr].values()]),"Headers","key")}values(){Br.brandCheck(this,Headers);if(this[Ue]==="immutable"){const a=this[Dr];return Pt((()=>a),"Headers","value")}return Pt((()=>[...this[Dr].values()]),"Headers","value")}entries(){Br.brandCheck(this,Headers);if(this[Ue]==="immutable"){const a=this[Dr];return Pt((()=>a),"Headers","key+value")}return Pt((()=>[...this[Dr].values()]),"Headers","key+value")}forEach(a,C=globalThis){Br.brandCheck(this,Headers);Br.argumentLengthCheck(arguments,1,{header:"Headers.forEach"});if(typeof a!=="function"){throw new TypeError("Failed to execute 'forEach' on 'Headers': parameter 1 is not of type 'Function'.")}for(const[q,re]of this){a.apply(C,[re,q,this])}}[Symbol.for("nodejs.util.inspect.custom")](){Br.brandCheck(this,Headers);return this[re]}}Headers.prototype[Symbol.iterator]=Headers.prototype.entries;Object.defineProperties(Headers.prototype,{append:lt,delete:lt,get:lt,has:lt,set:lt,getSetCookie:lt,keys:lt,values:lt,entries:lt,forEach:lt,[Symbol.iterator]:{enumerable:false},[Symbol.toStringTag]:{value:"Headers",configurable:true},[Er.inspect.custom]:{enumerable:false}});Br.converters.HeadersInit=function(a){if(Br.util.Type(a)==="Object"){if(a[Symbol.iterator]){return Br.converters["sequence>"](a)}return Br.converters["record"](a)}throw Br.errors.conversionFailed({prefix:"Headers constructor",argument:"Argument 1",types:["sequence>","record"]})};a.exports={fill:fill,Headers:Headers,HeadersList:HeadersList}},2315:(a,C,q)=>{const{Response:re,makeNetworkError:ae,makeAppropriateNetworkError:Ue,filterResponse:lt,makeResponse:Pt}=q(8676);const{Headers:Wt}=q(6349);const{Request:Ar,makeRequest:Er}=q(5194);const Br=q(3106);const{bytesMatch:Qr,makePolicyContainer:Ir,clonePolicyContainer:Dr,requestBadPort:kr,TAOCheck:Fr,appendRequestOriginHeader:Nr,responseLocationURL:Ur,requestCurrentURL:Lr,setRequestReferrerPolicyOnRedirect:Mr,tryUpgradeRequestToAPotentiallyTrustworthyURL:Pr,createOpaqueTimingInfo:Gr,appendFetchMetadata:Or,corsCheck:Vr,crossOriginResourcePolicyCheck:Hr,determineRequestsReferrer:xr,coarsenedSharedCurrentTime:Yr,createDeferredPromise:Jr,isBlobLike:Wr,sameOrigin:jr,isCancelled:zr,isAborted:Xr,isErrorLike:Kr,fullyReadBody:Zr,readableStreamClose:$r,isomorphicEncode:eA,urlIsLocal:tA,urlIsHttpHttpsScheme:rA,urlHasHttpsScheme:AA}=q(5523);const{kState:sA,kHeaders:aA,kGuard:oA,kRealm:iA}=q(9710);const nA=q(2613);const{safelyExtractBody:dA}=q(8923);const{redirectStatusSet:pA,nullBodyStatus:lA,safeMethodsSet:cA,requestBodyHeader:uA,subresourceSet:gA,DOMException:mA}=q(7326);const{kHeadersList:hA}=q(6443);const EA=q(4434);const{Readable:fA,pipeline:CA}=q(2203);const{addAbortListener:BA,isErrored:QA,isReadable:IA,nodeMajor:wA,nodeMinor:yA}=q(3440);const{dataURLProcessor:bA,serializeAMimeType:vA}=q(4322);const{TransformStream:SA}=q(3774);const{getGlobalDispatcher:RA}=q(2581);const{webidl:_A}=q(4222);const{STATUS_CODES:DA}=q(8611);const kA=["GET","HEAD"];let TA;let FA=globalThis.ReadableStream;class Fetch extends EA{constructor(a){super();this.dispatcher=a;this.connection=null;this.dump=false;this.state="ongoing";this.setMaxListeners(21)}terminate(a){if(this.state!=="ongoing"){return}this.state="terminated";this.connection?.destroy(a);this.emit("terminated",a)}abort(a){if(this.state!=="ongoing"){return}this.state="aborted";if(!a){a=new mA("The operation was aborted.","AbortError")}this.serializedAbortReason=a;this.connection?.destroy(a);this.emit("terminated",a)}}function fetch(a,C={}){_A.argumentLengthCheck(arguments,1,{header:"globalThis.fetch"});const q=Jr();let ae;try{ae=new Ar(a,C)}catch(a){q.reject(a);return q.promise}const Ue=ae[sA];if(ae.signal.aborted){abortFetch(q,Ue,null,ae.signal.reason);return q.promise}const lt=Ue.client.globalObject;if(lt?.constructor?.name==="ServiceWorkerGlobalScope"){Ue.serviceWorkers="none"}let Pt=null;const Wt=null;let Er=false;let Br=null;BA(ae.signal,(()=>{Er=true;nA(Br!=null);Br.abort(ae.signal.reason);abortFetch(q,Ue,Pt,ae.signal.reason)}));const handleFetchDone=a=>finalizeAndReportTiming(a,"fetch");const processResponse=a=>{if(Er){return Promise.resolve()}if(a.aborted){abortFetch(q,Ue,Pt,Br.serializedAbortReason);return Promise.resolve()}if(a.type==="error"){q.reject(Object.assign(new TypeError("fetch failed"),{cause:a.error}));return Promise.resolve()}Pt=new re;Pt[sA]=a;Pt[iA]=Wt;Pt[aA][hA]=a.headersList;Pt[aA][oA]="immutable";Pt[aA][iA]=Wt;q.resolve(Pt)};Br=fetching({request:Ue,processResponseEndOfBody:handleFetchDone,processResponse:processResponse,dispatcher:C.dispatcher??RA()});return q.promise}function finalizeAndReportTiming(a,C="other"){if(a.type==="error"&&a.aborted){return}if(!a.urlList?.length){return}const q=a.urlList[0];let re=a.timingInfo;let ae=a.cacheState;if(!rA(q)){return}if(re===null){return}if(!a.timingAllowPassed){re=Gr({startTime:re.startTime});ae=""}re.endTime=Yr();a.timingInfo=re;markResourceTiming(re,q,C,globalThis,ae)}function markResourceTiming(a,C,q,re,ae){if(wA>18||wA===18&&yA>=2){performance.markResourceTiming(a,C.href,q,re,ae)}}function abortFetch(a,C,q,re){if(!re){re=new mA("The operation was aborted.","AbortError")}a.reject(re);if(C.body!=null&&IA(C.body?.stream)){C.body.stream.cancel(re).catch((a=>{if(a.code==="ERR_INVALID_STATE"){return}throw a}))}if(q==null){return}const ae=q[sA];if(ae.body!=null&&IA(ae.body?.stream)){ae.body.stream.cancel(re).catch((a=>{if(a.code==="ERR_INVALID_STATE"){return}throw a}))}}function fetching({request:a,processRequestBodyChunkLength:C,processRequestEndOfBody:q,processResponse:re,processResponseEndOfBody:ae,processResponseConsumeBody:Ue,useParallelQueue:lt=false,dispatcher:Pt}){let Wt=null;let Ar=false;if(a.client!=null){Wt=a.client.globalObject;Ar=a.client.crossOriginIsolatedCapability}const Er=Yr(Ar);const Br=Gr({startTime:Er});const Qr={controller:new Fetch(Pt),request:a,timingInfo:Br,processRequestBodyChunkLength:C,processRequestEndOfBody:q,processResponse:re,processResponseConsumeBody:Ue,processResponseEndOfBody:ae,taskDestination:Wt,crossOriginIsolatedCapability:Ar};nA(!a.body||a.body.stream);if(a.window==="client"){a.window=a.client?.globalObject?.constructor?.name==="Window"?a.client:"no-window"}if(a.origin==="client"){a.origin=a.client?.origin}if(a.policyContainer==="client"){if(a.client!=null){a.policyContainer=Dr(a.client.policyContainer)}else{a.policyContainer=Ir()}}if(!a.headersList.contains("accept")){const C="*/*";a.headersList.append("accept",C)}if(!a.headersList.contains("accept-language")){a.headersList.append("accept-language","*")}if(a.priority===null){}if(gA.has(a.destination)){}mainFetch(Qr).catch((a=>{Qr.controller.terminate(a)}));return Qr.controller}async function mainFetch(a,C=false){const q=a.request;let re=null;if(q.localURLsOnly&&!tA(Lr(q))){re=ae("local URLs only")}Pr(q);if(kr(q)==="blocked"){re=ae("bad port")}if(q.referrerPolicy===""){q.referrerPolicy=q.policyContainer.referrerPolicy}if(q.referrer!=="no-referrer"){q.referrer=xr(q)}if(re===null){re=await(async()=>{const C=Lr(q);if(jr(C,q.url)&&q.responseTainting==="basic"||C.protocol==="data:"||(q.mode==="navigate"||q.mode==="websocket")){q.responseTainting="basic";return await schemeFetch(a)}if(q.mode==="same-origin"){return ae('request mode cannot be "same-origin"')}if(q.mode==="no-cors"){if(q.redirect!=="follow"){return ae('redirect mode cannot be "follow" for "no-cors" request')}q.responseTainting="opaque";return await schemeFetch(a)}if(!rA(Lr(q))){return ae("URL scheme must be a HTTP(S) scheme")}q.responseTainting="cors";return await httpFetch(a)})()}if(C){return re}if(re.status!==0&&!re.internalResponse){if(q.responseTainting==="cors"){}if(q.responseTainting==="basic"){re=lt(re,"basic")}else if(q.responseTainting==="cors"){re=lt(re,"cors")}else if(q.responseTainting==="opaque"){re=lt(re,"opaque")}else{nA(false)}}let Ue=re.status===0?re:re.internalResponse;if(Ue.urlList.length===0){Ue.urlList.push(...q.urlList)}if(!q.timingAllowFailed){re.timingAllowPassed=true}if(re.type==="opaque"&&Ue.status===206&&Ue.rangeRequested&&!q.headers.contains("range")){re=Ue=ae()}if(re.status!==0&&(q.method==="HEAD"||q.method==="CONNECT"||lA.includes(Ue.status))){Ue.body=null;a.controller.dump=true}if(q.integrity){const processBodyError=C=>fetchFinale(a,ae(C));if(q.responseTainting==="opaque"||re.body==null){processBodyError(re.error);return}const processBody=C=>{if(!Qr(C,q.integrity)){processBodyError("integrity mismatch");return}re.body=dA(C)[0];fetchFinale(a,re)};await Zr(re.body,processBody,processBodyError)}else{fetchFinale(a,re)}}function schemeFetch(a){if(zr(a)&&a.request.redirectCount===0){return Promise.resolve(Ue(a))}const{request:C}=a;const{protocol:re}=Lr(C);switch(re){case"about:":{return Promise.resolve(ae("about scheme is not supported"))}case"blob:":{if(!TA){TA=q(181).resolveObjectURL}const a=Lr(C);if(a.search.length!==0){return Promise.resolve(ae("NetworkError when attempting to fetch resource."))}const re=TA(a.toString());if(C.method!=="GET"||!Wr(re)){return Promise.resolve(ae("invalid method"))}const Ue=dA(re);const lt=Ue[0];const Wt=eA(`${lt.length}`);const Ar=Ue[1]??"";const Er=Pt({statusText:"OK",headersList:[["content-length",{name:"Content-Length",value:Wt}],["content-type",{name:"Content-Type",value:Ar}]]});Er.body=lt;return Promise.resolve(Er)}case"data:":{const a=Lr(C);const q=bA(a);if(q==="failure"){return Promise.resolve(ae("failed to fetch the data URL"))}const re=vA(q.mimeType);return Promise.resolve(Pt({statusText:"OK",headersList:[["content-type",{name:"Content-Type",value:re}]],body:dA(q.body)[0]}))}case"file:":{return Promise.resolve(ae("not implemented... yet..."))}case"http:":case"https:":{return httpFetch(a).catch((a=>ae(a)))}default:{return Promise.resolve(ae("unknown scheme"))}}}function finalizeResponse(a,C){a.request.done=true;if(a.processResponseDone!=null){queueMicrotask((()=>a.processResponseDone(C)))}}function fetchFinale(a,C){if(C.type==="error"){C.urlList=[a.request.urlList[0]];C.timingInfo=Gr({startTime:a.timingInfo.startTime})}const processResponseEndOfBody=()=>{a.request.done=true;if(a.processResponseEndOfBody!=null){queueMicrotask((()=>a.processResponseEndOfBody(C)))}};if(a.processResponse!=null){queueMicrotask((()=>a.processResponse(C)))}if(C.body==null){processResponseEndOfBody()}else{const identityTransformAlgorithm=(a,C)=>{C.enqueue(a)};const a=new SA({start(){},transform:identityTransformAlgorithm,flush:processResponseEndOfBody},{size(){return 1}},{size(){return 1}});C.body={stream:C.body.stream.pipeThrough(a)}}if(a.processResponseConsumeBody!=null){const processBody=q=>a.processResponseConsumeBody(C,q);const processBodyError=q=>a.processResponseConsumeBody(C,q);if(C.body==null){queueMicrotask((()=>processBody(null)))}else{return Zr(C.body,processBody,processBodyError)}return Promise.resolve()}}async function httpFetch(a){const C=a.request;let q=null;let re=null;const Ue=a.timingInfo;if(C.serviceWorkers==="all"){}if(q===null){if(C.redirect==="follow"){C.serviceWorkers="none"}re=q=await httpNetworkOrCacheFetch(a);if(C.responseTainting==="cors"&&Vr(C,q)==="failure"){return ae("cors failure")}if(Fr(C,q)==="failure"){C.timingAllowFailed=true}}if((C.responseTainting==="opaque"||q.type==="opaque")&&Hr(C.origin,C.client,C.destination,re)==="blocked"){return ae("blocked")}if(pA.has(re.status)){if(C.redirect!=="manual"){a.controller.connection.destroy()}if(C.redirect==="error"){q=ae("unexpected redirect")}else if(C.redirect==="manual"){q=re}else if(C.redirect==="follow"){q=await httpRedirectFetch(a,q)}else{nA(false)}}q.timingInfo=Ue;return q}function httpRedirectFetch(a,C){const q=a.request;const re=C.internalResponse?C.internalResponse:C;let Ue;try{Ue=Ur(re,Lr(q).hash);if(Ue==null){return C}}catch(a){return Promise.resolve(ae(a))}if(!rA(Ue)){return Promise.resolve(ae("URL scheme must be a HTTP(S) scheme"))}if(q.redirectCount===20){return Promise.resolve(ae("redirect count exceeded"))}q.redirectCount+=1;if(q.mode==="cors"&&(Ue.username||Ue.password)&&!jr(q,Ue)){return Promise.resolve(ae('cross origin not allowed for request mode "cors"'))}if(q.responseTainting==="cors"&&(Ue.username||Ue.password)){return Promise.resolve(ae('URL cannot contain credentials for request mode "cors"'))}if(re.status!==303&&q.body!=null&&q.body.source==null){return Promise.resolve(ae())}if([301,302].includes(re.status)&&q.method==="POST"||re.status===303&&!kA.includes(q.method)){q.method="GET";q.body=null;for(const a of uA){q.headersList.delete(a)}}if(!jr(Lr(q),Ue)){q.headersList.delete("authorization");q.headersList.delete("proxy-authorization",true);q.headersList.delete("cookie");q.headersList.delete("host")}if(q.body!=null){nA(q.body.source!=null);q.body=dA(q.body.source)[0]}const lt=a.timingInfo;lt.redirectEndTime=lt.postRedirectStartTime=Yr(a.crossOriginIsolatedCapability);if(lt.redirectStartTime===0){lt.redirectStartTime=lt.startTime}q.urlList.push(Ue);Mr(q,re);return mainFetch(a,true)}async function httpNetworkOrCacheFetch(a,C=false,q=false){const re=a.request;let lt=null;let Pt=null;let Wt=null;const Ar=null;const Br=false;if(re.window==="no-window"&&re.redirect==="error"){lt=a;Pt=re}else{Pt=Er(re);lt={...a};lt.request=Pt}const Qr=re.credentials==="include"||re.credentials==="same-origin"&&re.responseTainting==="basic";const Ir=Pt.body?Pt.body.length:null;let Dr=null;if(Pt.body==null&&["POST","PUT"].includes(Pt.method)){Dr="0"}if(Ir!=null){Dr=eA(`${Ir}`)}if(Dr!=null){Pt.headersList.append("content-length",Dr)}if(Ir!=null&&Pt.keepalive){}if(Pt.referrer instanceof URL){Pt.headersList.append("referer",eA(Pt.referrer.href))}Nr(Pt);Or(Pt);if(!Pt.headersList.contains("user-agent")){Pt.headersList.append("user-agent",typeof esbuildDetection==="undefined"?"undici":"node")}if(Pt.cache==="default"&&(Pt.headersList.contains("if-modified-since")||Pt.headersList.contains("if-none-match")||Pt.headersList.contains("if-unmodified-since")||Pt.headersList.contains("if-match")||Pt.headersList.contains("if-range"))){Pt.cache="no-store"}if(Pt.cache==="no-cache"&&!Pt.preventNoCacheCacheControlHeaderModification&&!Pt.headersList.contains("cache-control")){Pt.headersList.append("cache-control","max-age=0")}if(Pt.cache==="no-store"||Pt.cache==="reload"){if(!Pt.headersList.contains("pragma")){Pt.headersList.append("pragma","no-cache")}if(!Pt.headersList.contains("cache-control")){Pt.headersList.append("cache-control","no-cache")}}if(Pt.headersList.contains("range")){Pt.headersList.append("accept-encoding","identity")}if(!Pt.headersList.contains("accept-encoding")){if(AA(Lr(Pt))){Pt.headersList.append("accept-encoding","br, gzip, deflate")}else{Pt.headersList.append("accept-encoding","gzip, deflate")}}Pt.headersList.delete("host");if(Qr){}if(Ar==null){Pt.cache="no-store"}if(Pt.mode!=="no-store"&&Pt.mode!=="reload"){}if(Wt==null){if(Pt.mode==="only-if-cached"){return ae("only if cached")}const a=await httpNetworkFetch(lt,Qr,q);if(!cA.has(Pt.method)&&a.status>=200&&a.status<=399){}if(Br&&a.status===304){}if(Wt==null){Wt=a}}Wt.urlList=[...Pt.urlList];if(Pt.headersList.contains("range")){Wt.rangeRequested=true}Wt.requestIncludesCredentials=Qr;if(Wt.status===407){if(re.window==="no-window"){return ae()}if(zr(a)){return Ue(a)}return ae("proxy authentication required")}if(Wt.status===421&&!q&&(re.body==null||re.body.source!=null)){if(zr(a)){return Ue(a)}a.controller.connection.destroy();Wt=await httpNetworkOrCacheFetch(a,C,true)}if(C){}return Wt}async function httpNetworkFetch(a,C=false,re=false){nA(!a.controller.connection||a.controller.connection.destroyed);a.controller.connection={abort:null,destroyed:false,destroy(a){if(!this.destroyed){this.destroyed=true;this.abort?.(a??new mA("The operation was aborted.","AbortError"))}}};const lt=a.request;let Ar=null;const Er=a.timingInfo;const Qr=null;if(Qr==null){lt.cache="no-store"}const Ir=re?"yes":"no";if(lt.mode==="websocket"){}else{}let Dr=null;if(lt.body==null&&a.processRequestEndOfBody){queueMicrotask((()=>a.processRequestEndOfBody()))}else if(lt.body!=null){const processBodyChunk=async function*(C){if(zr(a)){return}yield C;a.processRequestBodyChunkLength?.(C.byteLength)};const processEndOfBody=()=>{if(zr(a)){return}if(a.processRequestEndOfBody){a.processRequestEndOfBody()}};const processBodyError=C=>{if(zr(a)){return}if(C.name==="AbortError"){a.controller.abort()}else{a.controller.terminate(C)}};Dr=async function*(){try{for await(const a of lt.body.stream){yield*processBodyChunk(a)}processEndOfBody()}catch(a){processBodyError(a)}}()}try{const{body:C,status:q,statusText:re,headersList:ae,socket:Ue}=await dispatch({body:Dr});if(Ue){Ar=Pt({status:q,statusText:re,headersList:ae,socket:Ue})}else{const Ue=C[Symbol.asyncIterator]();a.controller.next=()=>Ue.next();Ar=Pt({status:q,statusText:re,headersList:ae})}}catch(C){if(C.name==="AbortError"){a.controller.connection.destroy();return Ue(a,C)}return ae(C)}const pullAlgorithm=()=>{a.controller.resume()};const cancelAlgorithm=C=>{a.controller.abort(C)};if(!FA){FA=q(3774).ReadableStream}const kr=new FA({async start(C){a.controller.controller=C},async pull(a){await pullAlgorithm(a)},async cancel(a){await cancelAlgorithm(a)}},{highWaterMark:0,size(){return 1}});Ar.body={stream:kr};a.controller.on("terminated",onAborted);a.controller.resume=async()=>{while(true){let C;let q;try{const{done:q,value:re}=await a.controller.next();if(Xr(a)){break}C=q?undefined:re}catch(re){if(a.controller.ended&&!Er.encodedBodySize){C=undefined}else{C=re;q=true}}if(C===undefined){$r(a.controller.controller);finalizeResponse(a,Ar);return}Er.decodedBodySize+=C?.byteLength??0;if(q){a.controller.terminate(C);return}a.controller.controller.enqueue(new Uint8Array(C));if(QA(kr)){a.controller.terminate();return}if(!a.controller.controller.desiredSize){return}}};function onAborted(C){if(Xr(a)){Ar.aborted=true;if(IA(kr)){a.controller.controller.error(a.controller.serializedAbortReason)}}else{if(IA(kr)){a.controller.controller.error(new TypeError("terminated",{cause:Kr(C)?C:undefined}))}}a.controller.connection.destroy()}return Ar;async function dispatch({body:C}){const q=Lr(lt);const re=a.controller.dispatcher;return new Promise(((ae,Ue)=>re.dispatch({path:q.pathname+q.search,origin:q.origin,method:lt.method,body:a.controller.dispatcher.isMockActive?lt.body&&(lt.body.source||lt.body.stream):C,headers:lt.headersList.entries,maxRedirections:0,upgrade:lt.mode==="websocket"?"websocket":undefined},{body:null,abort:null,onConnect(C){const{connection:q}=a.controller;if(q.destroyed){C(new mA("The operation was aborted.","AbortError"))}else{a.controller.on("terminated",C);this.abort=q.abort=C}},onHeaders(a,C,q,re){if(a<200){return}let Ue=[];let Pt="";const Ar=new Wt;if(Array.isArray(C)){for(let a=0;aa.trim()))}else if(q.toLowerCase()==="location"){Pt=re}Ar[hA].append(q,re)}}else{const a=Object.keys(C);for(const q of a){const a=C[q];if(q.toLowerCase()==="content-encoding"){Ue=a.toLowerCase().split(",").map((a=>a.trim())).reverse()}else if(q.toLowerCase()==="location"){Pt=a}Ar[hA].append(q,a)}}this.body=new fA({read:q});const Er=[];const Qr=lt.redirect==="follow"&&Pt&&pA.has(a);if(lt.method!=="HEAD"&<.method!=="CONNECT"&&!lA.includes(a)&&!Qr){for(const a of Ue){if(a==="x-gzip"||a==="gzip"){Er.push(Br.createGunzip({flush:Br.constants.Z_SYNC_FLUSH,finishFlush:Br.constants.Z_SYNC_FLUSH}))}else if(a==="deflate"){Er.push(Br.createInflate())}else if(a==="br"){Er.push(Br.createBrotliDecompress())}else{Er.length=0;break}}}ae({status:a,statusText:re,headersList:Ar[hA],body:Er.length?CA(this.body,...Er,(()=>{})):this.body.on("error",(()=>{}))});return true},onData(C){if(a.controller.dump){return}const q=C;Er.encodedBodySize+=q.byteLength;return this.body.push(q)},onComplete(){if(this.abort){a.controller.off("terminated",this.abort)}a.controller.ended=true;this.body.push(null)},onError(C){if(this.abort){a.controller.off("terminated",this.abort)}this.body?.destroy(C);a.controller.terminate(C);Ue(C)},onUpgrade(a,C,q){if(a!==101){return}const re=new Wt;for(let a=0;a{const{extractBody:re,mixinBody:ae,cloneBody:Ue}=q(8923);const{Headers:lt,fill:Pt,HeadersList:Wt}=q(6349);const{FinalizationRegistry:Ar}=q(3194)();const Er=q(3440);const{isValidHTTPToken:Br,sameOrigin:Qr,normalizeMethod:Ir,makePolicyContainer:Dr,normalizeMethodRecord:kr}=q(5523);const{forbiddenMethodsSet:Fr,corsSafeListedMethodsSet:Nr,referrerPolicy:Ur,requestRedirect:Lr,requestMode:Mr,requestCredentials:Pr,requestCache:Gr,requestDuplex:Or}=q(7326);const{kEnumerableProperty:Vr}=Er;const{kHeaders:Hr,kSignal:xr,kState:Yr,kGuard:Jr,kRealm:Wr}=q(9710);const{webidl:jr}=q(4222);const{getGlobalOrigin:zr}=q(5628);const{URLSerializer:Xr}=q(4322);const{kHeadersList:Kr,kConstruct:Zr}=q(6443);const $r=q(2613);const{getMaxListeners:eA,setMaxListeners:tA,getEventListeners:rA,defaultMaxListeners:AA}=q(4434);let sA=globalThis.TransformStream;const aA=Symbol("abortController");const oA=new Ar((({signal:a,abort:C})=>{a.removeEventListener("abort",C)}));class Request{constructor(a,C={}){if(a===Zr){return}jr.argumentLengthCheck(arguments,1,{header:"Request constructor"});a=jr.converters.RequestInfo(a);C=jr.converters.RequestInit(C);this[Wr]={settingsObject:{baseUrl:zr(),get origin(){return this.baseUrl?.origin},policyContainer:Dr()}};let ae=null;let Ue=null;const Ar=this[Wr].settingsObject.baseUrl;let Ur=null;if(typeof a==="string"){let C;try{C=new URL(a,Ar)}catch(C){throw new TypeError("Failed to parse URL from "+a,{cause:C})}if(C.username||C.password){throw new TypeError("Request cannot be constructed from a URL that includes credentials: "+a)}ae=makeRequest({urlList:[C]});Ue="cors"}else{$r(a instanceof Request);ae=a[Yr];Ur=a[xr]}const Lr=this[Wr].settingsObject.origin;let Mr="client";if(ae.window?.constructor?.name==="EnvironmentSettingsObject"&&Qr(ae.window,Lr)){Mr=ae.window}if(C.window!=null){throw new TypeError(`'window' option '${Mr}' must be null`)}if("window"in C){Mr="no-window"}ae=makeRequest({method:ae.method,headersList:ae.headersList,unsafeRequest:ae.unsafeRequest,client:this[Wr].settingsObject,window:Mr,priority:ae.priority,origin:ae.origin,referrer:ae.referrer,referrerPolicy:ae.referrerPolicy,mode:ae.mode,credentials:ae.credentials,cache:ae.cache,redirect:ae.redirect,integrity:ae.integrity,keepalive:ae.keepalive,reloadNavigation:ae.reloadNavigation,historyNavigation:ae.historyNavigation,urlList:[...ae.urlList]});const Pr=Object.keys(C).length!==0;if(Pr){if(ae.mode==="navigate"){ae.mode="same-origin"}ae.reloadNavigation=false;ae.historyNavigation=false;ae.origin="client";ae.referrer="client";ae.referrerPolicy="";ae.url=ae.urlList[ae.urlList.length-1];ae.urlList=[ae.url]}if(C.referrer!==undefined){const a=C.referrer;if(a===""){ae.referrer="no-referrer"}else{let C;try{C=new URL(a,Ar)}catch(C){throw new TypeError(`Referrer "${a}" is not a valid URL.`,{cause:C})}if(C.protocol==="about:"&&C.hostname==="client"||Lr&&!Qr(C,this[Wr].settingsObject.baseUrl)){ae.referrer="client"}else{ae.referrer=C}}}if(C.referrerPolicy!==undefined){ae.referrerPolicy=C.referrerPolicy}let Gr;if(C.mode!==undefined){Gr=C.mode}else{Gr=Ue}if(Gr==="navigate"){throw jr.errors.exception({header:"Request constructor",message:"invalid request mode navigate."})}if(Gr!=null){ae.mode=Gr}if(C.credentials!==undefined){ae.credentials=C.credentials}if(C.cache!==undefined){ae.cache=C.cache}if(ae.cache==="only-if-cached"&&ae.mode!=="same-origin"){throw new TypeError("'only-if-cached' can be set only with 'same-origin' mode")}if(C.redirect!==undefined){ae.redirect=C.redirect}if(C.integrity!=null){ae.integrity=String(C.integrity)}if(C.keepalive!==undefined){ae.keepalive=Boolean(C.keepalive)}if(C.method!==undefined){let a=C.method;if(!Br(a)){throw new TypeError(`'${a}' is not a valid HTTP method.`)}if(Fr.has(a.toUpperCase())){throw new TypeError(`'${a}' HTTP method is unsupported.`)}a=kr[a]??Ir(a);ae.method=a}if(C.signal!==undefined){Ur=C.signal}this[Yr]=ae;const Or=new AbortController;this[xr]=Or.signal;this[xr][Wr]=this[Wr];if(Ur!=null){if(!Ur||typeof Ur.aborted!=="boolean"||typeof Ur.addEventListener!=="function"){throw new TypeError("Failed to construct 'Request': member signal is not of type AbortSignal.")}if(Ur.aborted){Or.abort(Ur.reason)}else{this[aA]=Or;const a=new WeakRef(Or);const abort=function(){const C=a.deref();if(C!==undefined){C.abort(this.reason)}};try{if(typeof eA==="function"&&eA(Ur)===AA){tA(100,Ur)}else if(rA(Ur,"abort").length>=AA){tA(100,Ur)}}catch{}Er.addAbortListener(Ur,abort);oA.register(Or,{signal:Ur,abort:abort})}}this[Hr]=new lt(Zr);this[Hr][Kr]=ae.headersList;this[Hr][Jr]="request";this[Hr][Wr]=this[Wr];if(Gr==="no-cors"){if(!Nr.has(ae.method)){throw new TypeError(`'${ae.method} is unsupported in no-cors mode.`)}this[Hr][Jr]="request-no-cors"}if(Pr){const a=this[Hr][Kr];const q=C.headers!==undefined?C.headers:new Wt(a);a.clear();if(q instanceof Wt){for(const[C,re]of q){a.append(C,re)}a.cookies=q.cookies}else{Pt(this[Hr],q)}}const Vr=a instanceof Request?a[Yr].body:null;if((C.body!=null||Vr!=null)&&(ae.method==="GET"||ae.method==="HEAD")){throw new TypeError("Request with GET/HEAD method cannot have body.")}let Xr=null;if(C.body!=null){const[a,q]=re(C.body,ae.keepalive);Xr=a;if(q&&!this[Hr][Kr].contains("content-type")){this[Hr].append("content-type",q)}}const iA=Xr??Vr;if(iA!=null&&iA.source==null){if(Xr!=null&&C.duplex==null){throw new TypeError("RequestInit: duplex option is required when sending a body.")}if(ae.mode!=="same-origin"&&ae.mode!=="cors"){throw new TypeError('If request is made from ReadableStream, mode should be "same-origin" or "cors"')}ae.useCORSPreflightFlag=true}let nA=iA;if(Xr==null&&Vr!=null){if(Er.isDisturbed(Vr.stream)||Vr.stream.locked){throw new TypeError("Cannot construct a Request with a Request object that has already been used.")}if(!sA){sA=q(3774).TransformStream}const a=new sA;Vr.stream.pipeThrough(a);nA={source:Vr.source,length:Vr.length,stream:a.readable}}this[Yr].body=nA}get method(){jr.brandCheck(this,Request);return this[Yr].method}get url(){jr.brandCheck(this,Request);return Xr(this[Yr].url)}get headers(){jr.brandCheck(this,Request);return this[Hr]}get destination(){jr.brandCheck(this,Request);return this[Yr].destination}get referrer(){jr.brandCheck(this,Request);if(this[Yr].referrer==="no-referrer"){return""}if(this[Yr].referrer==="client"){return"about:client"}return this[Yr].referrer.toString()}get referrerPolicy(){jr.brandCheck(this,Request);return this[Yr].referrerPolicy}get mode(){jr.brandCheck(this,Request);return this[Yr].mode}get credentials(){return this[Yr].credentials}get cache(){jr.brandCheck(this,Request);return this[Yr].cache}get redirect(){jr.brandCheck(this,Request);return this[Yr].redirect}get integrity(){jr.brandCheck(this,Request);return this[Yr].integrity}get keepalive(){jr.brandCheck(this,Request);return this[Yr].keepalive}get isReloadNavigation(){jr.brandCheck(this,Request);return this[Yr].reloadNavigation}get isHistoryNavigation(){jr.brandCheck(this,Request);return this[Yr].historyNavigation}get signal(){jr.brandCheck(this,Request);return this[xr]}get body(){jr.brandCheck(this,Request);return this[Yr].body?this[Yr].body.stream:null}get bodyUsed(){jr.brandCheck(this,Request);return!!this[Yr].body&&Er.isDisturbed(this[Yr].body.stream)}get duplex(){jr.brandCheck(this,Request);return"half"}clone(){jr.brandCheck(this,Request);if(this.bodyUsed||this.body?.locked){throw new TypeError("unusable")}const a=cloneRequest(this[Yr]);const C=new Request(Zr);C[Yr]=a;C[Wr]=this[Wr];C[Hr]=new lt(Zr);C[Hr][Kr]=a.headersList;C[Hr][Jr]=this[Hr][Jr];C[Hr][Wr]=this[Hr][Wr];const q=new AbortController;if(this.signal.aborted){q.abort(this.signal.reason)}else{Er.addAbortListener(this.signal,(()=>{q.abort(this.signal.reason)}))}C[xr]=q.signal;return C}}ae(Request);function makeRequest(a){const C={method:"GET",localURLsOnly:false,unsafeRequest:false,body:null,client:null,reservedClient:null,replacesClientId:"",window:"client",keepalive:false,serviceWorkers:"all",initiator:"",destination:"",priority:null,origin:"client",policyContainer:"client",referrer:"client",referrerPolicy:"",mode:"no-cors",useCORSPreflightFlag:false,credentials:"same-origin",useCredentials:false,cache:"default",redirect:"follow",integrity:"",cryptoGraphicsNonceMetadata:"",parserMetadata:"",reloadNavigation:false,historyNavigation:false,userActivation:false,taintedOrigin:false,redirectCount:0,responseTainting:"basic",preventNoCacheCacheControlHeaderModification:false,done:false,timingAllowFailed:false,...a,headersList:a.headersList?new Wt(a.headersList):new Wt};C.url=C.urlList[0];return C}function cloneRequest(a){const C=makeRequest({...a,body:null});if(a.body!=null){C.body=Ue(a.body)}return C}Object.defineProperties(Request.prototype,{method:Vr,url:Vr,headers:Vr,redirect:Vr,clone:Vr,signal:Vr,duplex:Vr,destination:Vr,body:Vr,bodyUsed:Vr,isHistoryNavigation:Vr,isReloadNavigation:Vr,keepalive:Vr,integrity:Vr,cache:Vr,credentials:Vr,attribute:Vr,referrerPolicy:Vr,referrer:Vr,mode:Vr,[Symbol.toStringTag]:{value:"Request",configurable:true}});jr.converters.Request=jr.interfaceConverter(Request);jr.converters.RequestInfo=function(a){if(typeof a==="string"){return jr.converters.USVString(a)}if(a instanceof Request){return jr.converters.Request(a)}return jr.converters.USVString(a)};jr.converters.AbortSignal=jr.interfaceConverter(AbortSignal);jr.converters.RequestInit=jr.dictionaryConverter([{key:"method",converter:jr.converters.ByteString},{key:"headers",converter:jr.converters.HeadersInit},{key:"body",converter:jr.nullableConverter(jr.converters.BodyInit)},{key:"referrer",converter:jr.converters.USVString},{key:"referrerPolicy",converter:jr.converters.DOMString,allowedValues:Ur},{key:"mode",converter:jr.converters.DOMString,allowedValues:Mr},{key:"credentials",converter:jr.converters.DOMString,allowedValues:Pr},{key:"cache",converter:jr.converters.DOMString,allowedValues:Gr},{key:"redirect",converter:jr.converters.DOMString,allowedValues:Lr},{key:"integrity",converter:jr.converters.DOMString},{key:"keepalive",converter:jr.converters.boolean},{key:"signal",converter:jr.nullableConverter((a=>jr.converters.AbortSignal(a,{strict:false})))},{key:"window",converter:jr.converters.any},{key:"duplex",converter:jr.converters.DOMString,allowedValues:Or}]);a.exports={Request:Request,makeRequest:makeRequest}},8676:(a,C,q)=>{const{Headers:re,HeadersList:ae,fill:Ue}=q(6349);const{extractBody:lt,cloneBody:Pt,mixinBody:Wt}=q(8923);const Ar=q(3440);const{kEnumerableProperty:Er}=Ar;const{isValidReasonPhrase:Br,isCancelled:Qr,isAborted:Ir,isBlobLike:Dr,serializeJavascriptValueToJSONString:kr,isErrorLike:Fr,isomorphicEncode:Nr}=q(5523);const{redirectStatusSet:Ur,nullBodyStatus:Lr,DOMException:Mr}=q(7326);const{kState:Pr,kHeaders:Gr,kGuard:Or,kRealm:Vr}=q(9710);const{webidl:Hr}=q(4222);const{FormData:xr}=q(3073);const{getGlobalOrigin:Yr}=q(5628);const{URLSerializer:Jr}=q(4322);const{kHeadersList:Wr,kConstruct:jr}=q(6443);const zr=q(2613);const{types:Xr}=q(9023);const Kr=globalThis.ReadableStream||q(3774).ReadableStream;const Zr=new TextEncoder("utf-8");class Response{static error(){const a={settingsObject:{}};const C=new Response;C[Pr]=makeNetworkError();C[Vr]=a;C[Gr][Wr]=C[Pr].headersList;C[Gr][Or]="immutable";C[Gr][Vr]=a;return C}static json(a,C={}){Hr.argumentLengthCheck(arguments,1,{header:"Response.json"});if(C!==null){C=Hr.converters.ResponseInit(C)}const q=Zr.encode(kr(a));const re=lt(q);const ae={settingsObject:{}};const Ue=new Response;Ue[Vr]=ae;Ue[Gr][Or]="response";Ue[Gr][Vr]=ae;initializeResponse(Ue,C,{body:re[0],type:"application/json"});return Ue}static redirect(a,C=302){const q={settingsObject:{}};Hr.argumentLengthCheck(arguments,1,{header:"Response.redirect"});a=Hr.converters.USVString(a);C=Hr.converters["unsigned short"](C);let re;try{re=new URL(a,Yr())}catch(C){throw Object.assign(new TypeError("Failed to parse URL from "+a),{cause:C})}if(!Ur.has(C)){throw new RangeError("Invalid status code "+C)}const ae=new Response;ae[Vr]=q;ae[Gr][Or]="immutable";ae[Gr][Vr]=q;ae[Pr].status=C;const Ue=Nr(Jr(re));ae[Pr].headersList.append("location",Ue);return ae}constructor(a=null,C={}){if(a!==null){a=Hr.converters.BodyInit(a)}C=Hr.converters.ResponseInit(C);this[Vr]={settingsObject:{}};this[Pr]=makeResponse({});this[Gr]=new re(jr);this[Gr][Or]="response";this[Gr][Wr]=this[Pr].headersList;this[Gr][Vr]=this[Vr];let q=null;if(a!=null){const[C,re]=lt(a);q={body:C,type:re}}initializeResponse(this,C,q)}get type(){Hr.brandCheck(this,Response);return this[Pr].type}get url(){Hr.brandCheck(this,Response);const a=this[Pr].urlList;const C=a[a.length-1]??null;if(C===null){return""}return Jr(C,true)}get redirected(){Hr.brandCheck(this,Response);return this[Pr].urlList.length>1}get status(){Hr.brandCheck(this,Response);return this[Pr].status}get ok(){Hr.brandCheck(this,Response);return this[Pr].status>=200&&this[Pr].status<=299}get statusText(){Hr.brandCheck(this,Response);return this[Pr].statusText}get headers(){Hr.brandCheck(this,Response);return this[Gr]}get body(){Hr.brandCheck(this,Response);return this[Pr].body?this[Pr].body.stream:null}get bodyUsed(){Hr.brandCheck(this,Response);return!!this[Pr].body&&Ar.isDisturbed(this[Pr].body.stream)}clone(){Hr.brandCheck(this,Response);if(this.bodyUsed||this.body&&this.body.locked){throw Hr.errors.exception({header:"Response.clone",message:"Body has already been consumed."})}const a=cloneResponse(this[Pr]);const C=new Response;C[Pr]=a;C[Vr]=this[Vr];C[Gr][Wr]=a.headersList;C[Gr][Or]=this[Gr][Or];C[Gr][Vr]=this[Gr][Vr];return C}}Wt(Response);Object.defineProperties(Response.prototype,{type:Er,url:Er,status:Er,ok:Er,redirected:Er,statusText:Er,headers:Er,clone:Er,body:Er,bodyUsed:Er,[Symbol.toStringTag]:{value:"Response",configurable:true}});Object.defineProperties(Response,{json:Er,redirect:Er,error:Er});function cloneResponse(a){if(a.internalResponse){return filterResponse(cloneResponse(a.internalResponse),a.type)}const C=makeResponse({...a,body:null});if(a.body!=null){C.body=Pt(a.body)}return C}function makeResponse(a){return{aborted:false,rangeRequested:false,timingAllowPassed:false,requestIncludesCredentials:false,type:"default",status:200,timingInfo:null,cacheState:"",statusText:"",...a,headersList:a.headersList?new ae(a.headersList):new ae,urlList:a.urlList?[...a.urlList]:[]}}function makeNetworkError(a){const C=Fr(a);return makeResponse({type:"error",status:0,error:C?a:new Error(a?String(a):a),aborted:a&&a.name==="AbortError"})}function makeFilteredResponse(a,C){C={internalResponse:a,...C};return new Proxy(a,{get(a,q){return q in C?C[q]:a[q]},set(a,q,re){zr(!(q in C));a[q]=re;return true}})}function filterResponse(a,C){if(C==="basic"){return makeFilteredResponse(a,{type:"basic",headersList:a.headersList})}else if(C==="cors"){return makeFilteredResponse(a,{type:"cors",headersList:a.headersList})}else if(C==="opaque"){return makeFilteredResponse(a,{type:"opaque",urlList:Object.freeze([]),status:0,statusText:"",body:null})}else if(C==="opaqueredirect"){return makeFilteredResponse(a,{type:"opaqueredirect",status:0,statusText:"",headersList:[],body:null})}else{zr(false)}}function makeAppropriateNetworkError(a,C=null){zr(Qr(a));return Ir(a)?makeNetworkError(Object.assign(new Mr("The operation was aborted.","AbortError"),{cause:C})):makeNetworkError(Object.assign(new Mr("Request was cancelled."),{cause:C}))}function initializeResponse(a,C,q){if(C.status!==null&&(C.status<200||C.status>599)){throw new RangeError('init["status"] must be in the range of 200 to 599, inclusive.')}if("statusText"in C&&C.statusText!=null){if(!Br(String(C.statusText))){throw new TypeError("Invalid statusText")}}if("status"in C&&C.status!=null){a[Pr].status=C.status}if("statusText"in C&&C.statusText!=null){a[Pr].statusText=C.statusText}if("headers"in C&&C.headers!=null){Ue(a[Gr],C.headers)}if(q){if(Lr.includes(a.status)){throw Hr.errors.exception({header:"Response constructor",message:"Invalid response status code "+a.status})}a[Pr].body=q.body;if(q.type!=null&&!a[Pr].headersList.contains("Content-Type")){a[Pr].headersList.append("content-type",q.type)}}}Hr.converters.ReadableStream=Hr.interfaceConverter(Kr);Hr.converters.FormData=Hr.interfaceConverter(xr);Hr.converters.URLSearchParams=Hr.interfaceConverter(URLSearchParams);Hr.converters.XMLHttpRequestBodyInit=function(a){if(typeof a==="string"){return Hr.converters.USVString(a)}if(Dr(a)){return Hr.converters.Blob(a,{strict:false})}if(Xr.isArrayBuffer(a)||Xr.isTypedArray(a)||Xr.isDataView(a)){return Hr.converters.BufferSource(a)}if(Ar.isFormDataLike(a)){return Hr.converters.FormData(a,{strict:false})}if(a instanceof URLSearchParams){return Hr.converters.URLSearchParams(a)}return Hr.converters.DOMString(a)};Hr.converters.BodyInit=function(a){if(a instanceof Kr){return Hr.converters.ReadableStream(a)}if(a?.[Symbol.asyncIterator]){return a}return Hr.converters.XMLHttpRequestBodyInit(a)};Hr.converters.ResponseInit=Hr.dictionaryConverter([{key:"status",converter:Hr.converters["unsigned short"],defaultValue:200},{key:"statusText",converter:Hr.converters.ByteString,defaultValue:""},{key:"headers",converter:Hr.converters.HeadersInit}]);a.exports={makeNetworkError:makeNetworkError,makeResponse:makeResponse,makeAppropriateNetworkError:makeAppropriateNetworkError,filterResponse:filterResponse,Response:Response,cloneResponse:cloneResponse}},9710:a=>{a.exports={kUrl:Symbol("url"),kHeaders:Symbol("headers"),kSignal:Symbol("signal"),kState:Symbol("state"),kGuard:Symbol("guard"),kRealm:Symbol("realm")}},5523:(a,C,q)=>{const{redirectStatusSet:re,referrerPolicySet:ae,badPortsSet:Ue}=q(7326);const{getGlobalOrigin:lt}=q(5628);const{performance:Pt}=q(2987);const{isBlobLike:Wt,toUSVString:Ar,ReadableStreamFrom:Er}=q(3440);const Br=q(2613);const{isUint8Array:Qr}=q(8253);let Ir=[];let Dr;try{Dr=q(6982);const a=["sha256","sha384","sha512"];Ir=Dr.getHashes().filter((C=>a.includes(C)))}catch{}function responseURL(a){const C=a.urlList;const q=C.length;return q===0?null:C[q-1].toString()}function responseLocationURL(a,C){if(!re.has(a.status)){return null}let q=a.headersList.get("location");if(q!==null&&isValidHeaderValue(q)){q=new URL(q,responseURL(a))}if(q&&!q.hash){q.hash=C}return q}function requestCurrentURL(a){return a.urlList[a.urlList.length-1]}function requestBadPort(a){const C=requestCurrentURL(a);if(urlIsHttpHttpsScheme(C)&&Ue.has(C.port)){return"blocked"}return"allowed"}function isErrorLike(a){return a instanceof Error||(a?.constructor?.name==="Error"||a?.constructor?.name==="DOMException")}function isValidReasonPhrase(a){for(let C=0;C=32&&q<=126||q>=128&&q<=255)){return false}}return true}function isTokenCharCode(a){switch(a){case 34:case 40:case 41:case 44:case 47:case 58:case 59:case 60:case 61:case 62:case 63:case 64:case 91:case 92:case 93:case 123:case 125:return false;default:return a>=33&&a<=126}}function isValidHTTPToken(a){if(a.length===0){return false}for(let C=0;C0){for(let a=re.length;a!==0;a--){const C=re[a-1].trim();if(ae.has(C)){Ue=C;break}}}if(Ue!==""){a.referrerPolicy=Ue}}function crossOriginResourcePolicyCheck(){return"allowed"}function corsCheck(){return"success"}function TAOCheck(){return"success"}function appendFetchMetadata(a){let C=null;C=a.mode;a.headersList.set("sec-fetch-mode",C)}function appendRequestOriginHeader(a){let C=a.origin;if(a.responseTainting==="cors"||a.mode==="websocket"){if(C){a.headersList.append("origin",C)}}else if(a.method!=="GET"&&a.method!=="HEAD"){switch(a.referrerPolicy){case"no-referrer":C=null;break;case"no-referrer-when-downgrade":case"strict-origin":case"strict-origin-when-cross-origin":if(a.origin&&urlHasHttpsScheme(a.origin)&&!urlHasHttpsScheme(requestCurrentURL(a))){C=null}break;case"same-origin":if(!sameOrigin(a,requestCurrentURL(a))){C=null}break;default:}if(C){a.headersList.append("origin",C)}}}function coarsenedSharedCurrentTime(a){return Pt.now()}function createOpaqueTimingInfo(a){return{startTime:a.startTime??0,redirectStartTime:0,redirectEndTime:0,postRedirectStartTime:a.startTime??0,finalServiceWorkerStartTime:0,finalNetworkResponseStartTime:0,finalNetworkRequestStartTime:0,endTime:0,encodedBodySize:0,decodedBodySize:0,finalConnectionTimingInfo:null}}function makePolicyContainer(){return{referrerPolicy:"strict-origin-when-cross-origin"}}function clonePolicyContainer(a){return{referrerPolicy:a.referrerPolicy}}function determineRequestsReferrer(a){const C=a.referrerPolicy;Br(C);let q=null;if(a.referrer==="client"){const a=lt();if(!a||a.origin==="null"){return"no-referrer"}q=new URL(a)}else if(a.referrer instanceof URL){q=a.referrer}let re=stripURLForReferrer(q);const ae=stripURLForReferrer(q,true);if(re.toString().length>4096){re=ae}const Ue=sameOrigin(a,re);const Pt=isURLPotentiallyTrustworthy(re)&&!isURLPotentiallyTrustworthy(a.url);switch(C){case"origin":return ae!=null?ae:stripURLForReferrer(q,true);case"unsafe-url":return re;case"same-origin":return Ue?ae:"no-referrer";case"origin-when-cross-origin":return Ue?re:ae;case"strict-origin-when-cross-origin":{const C=requestCurrentURL(a);if(sameOrigin(re,C)){return re}if(isURLPotentiallyTrustworthy(re)&&!isURLPotentiallyTrustworthy(C)){return"no-referrer"}return ae}case"strict-origin":case"no-referrer-when-downgrade":default:return Pt?"no-referrer":ae}}function stripURLForReferrer(a,C){Br(a instanceof URL);if(a.protocol==="file:"||a.protocol==="about:"||a.protocol==="blank:"){return"no-referrer"}a.username="";a.password="";a.hash="";if(C){a.pathname="";a.search=""}return a}function isURLPotentiallyTrustworthy(a){if(!(a instanceof URL)){return false}if(a.href==="about:blank"||a.href==="about:srcdoc"){return true}if(a.protocol==="data:")return true;if(a.protocol==="file:")return true;return isOriginPotentiallyTrustworthy(a.origin);function isOriginPotentiallyTrustworthy(a){if(a==null||a==="null")return false;const C=new URL(a);if(C.protocol==="https:"||C.protocol==="wss:"){return true}if(/^127(?:\.[0-9]+){0,2}\.[0-9]+$|^\[(?:0*:)*?:?0*1\]$/.test(C.hostname)||(C.hostname==="localhost"||C.hostname.includes("localhost."))||C.hostname.endsWith(".localhost")){return true}return false}}function bytesMatch(a,C){if(Dr===undefined){return true}const q=parseMetadata(C);if(q==="no metadata"){return true}if(q.length===0){return true}const re=getStrongestMetadata(q);const ae=filterMetadataListByAlgorithm(q,re);for(const C of ae){const q=C.algo;const re=C.hash;let ae=Dr.createHash(q).update(a).digest("base64");if(ae[ae.length-1]==="="){if(ae[ae.length-2]==="="){ae=ae.slice(0,-2)}else{ae=ae.slice(0,-1)}}if(compareBase64Mixed(ae,re)){return true}}return false}const kr=/(?sha256|sha384|sha512)-((?[A-Za-z0-9+/]+|[A-Za-z0-9_-]+)={0,2}(?:\s|$)( +[!-~]*)?)?/i;function parseMetadata(a){const C=[];let q=true;for(const re of a.split(" ")){q=false;const a=kr.exec(re);if(a===null||a.groups===undefined||a.groups.algo===undefined){continue}const ae=a.groups.algo.toLowerCase();if(Ir.includes(ae)){C.push(a.groups)}}if(q===true){return"no metadata"}return C}function getStrongestMetadata(a){let C=a[0].algo;if(C[3]==="5"){return C}for(let q=1;q{a=q;C=re}));return{promise:q,resolve:a,reject:C}}function isAborted(a){return a.controller.state==="aborted"}function isCancelled(a){return a.controller.state==="aborted"||a.controller.state==="terminated"}const Fr={delete:"DELETE",DELETE:"DELETE",get:"GET",GET:"GET",head:"HEAD",HEAD:"HEAD",options:"OPTIONS",OPTIONS:"OPTIONS",post:"POST",POST:"POST",put:"PUT",PUT:"PUT"};Object.setPrototypeOf(Fr,null);function normalizeMethod(a){return Fr[a.toLowerCase()]??a}function serializeJavascriptValueToJSONString(a){const C=JSON.stringify(a);if(C===undefined){throw new TypeError("Value is not JSON serializable")}Br(typeof C==="string");return C}const Nr=Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()));function makeIterator(a,C,q){const re={index:0,kind:q,target:a};const ae={next(){if(Object.getPrototypeOf(this)!==ae){throw new TypeError(`'next' called on an object that does not implement interface ${C} Iterator.`)}const{index:a,kind:q,target:Ue}=re;const lt=Ue();const Pt=lt.length;if(a>=Pt){return{value:undefined,done:true}}const Wt=lt[a];re.index=a+1;return iteratorResult(Wt,q)},[Symbol.toStringTag]:`${C} Iterator`};Object.setPrototypeOf(ae,Nr);return Object.setPrototypeOf({},ae)}function iteratorResult(a,C){let q;switch(C){case"key":{q=a[0];break}case"value":{q=a[1];break}case"key+value":{q=a;break}}return{value:q,done:false}}async function fullyReadBody(a,C,q){const re=C;const ae=q;let Ue;try{Ue=a.stream.getReader()}catch(a){ae(a);return}try{const a=await readAllBytes(Ue);re(a)}catch(a){ae(a)}}let Ur=globalThis.ReadableStream;function isReadableStreamLike(a){if(!Ur){Ur=q(3774).ReadableStream}return a instanceof Ur||a[Symbol.toStringTag]==="ReadableStream"&&typeof a.tee==="function"}const Lr=65535;function isomorphicDecode(a){if(a.lengtha+String.fromCharCode(C)),"")}function readableStreamClose(a){try{a.close()}catch(a){if(!a.message.includes("Controller is already closed")){throw a}}}function isomorphicEncode(a){for(let C=0;CObject.prototype.hasOwnProperty.call(a,C));a.exports={isAborted:isAborted,isCancelled:isCancelled,createDeferredPromise:createDeferredPromise,ReadableStreamFrom:Er,toUSVString:Ar,tryUpgradeRequestToAPotentiallyTrustworthyURL:tryUpgradeRequestToAPotentiallyTrustworthyURL,coarsenedSharedCurrentTime:coarsenedSharedCurrentTime,determineRequestsReferrer:determineRequestsReferrer,makePolicyContainer:makePolicyContainer,clonePolicyContainer:clonePolicyContainer,appendFetchMetadata:appendFetchMetadata,appendRequestOriginHeader:appendRequestOriginHeader,TAOCheck:TAOCheck,corsCheck:corsCheck,crossOriginResourcePolicyCheck:crossOriginResourcePolicyCheck,createOpaqueTimingInfo:createOpaqueTimingInfo,setRequestReferrerPolicyOnRedirect:setRequestReferrerPolicyOnRedirect,isValidHTTPToken:isValidHTTPToken,requestBadPort:requestBadPort,requestCurrentURL:requestCurrentURL,responseURL:responseURL,responseLocationURL:responseLocationURL,isBlobLike:Wt,isURLPotentiallyTrustworthy:isURLPotentiallyTrustworthy,isValidReasonPhrase:isValidReasonPhrase,sameOrigin:sameOrigin,normalizeMethod:normalizeMethod,serializeJavascriptValueToJSONString:serializeJavascriptValueToJSONString,makeIterator:makeIterator,isValidHeaderName:isValidHeaderName,isValidHeaderValue:isValidHeaderValue,hasOwn:Mr,isErrorLike:isErrorLike,fullyReadBody:fullyReadBody,bytesMatch:bytesMatch,isReadableStreamLike:isReadableStreamLike,readableStreamClose:readableStreamClose,isomorphicEncode:isomorphicEncode,isomorphicDecode:isomorphicDecode,urlIsLocal:urlIsLocal,urlHasHttpsScheme:urlHasHttpsScheme,urlIsHttpHttpsScheme:urlIsHttpHttpsScheme,readAllBytes:readAllBytes,normalizeMethodRecord:Fr,parseMetadata:parseMetadata}},4222:(a,C,q)=>{const{types:re}=q(9023);const{hasOwn:ae,toUSVString:Ue}=q(5523);const lt={};lt.converters={};lt.util={};lt.errors={};lt.errors.exception=function(a){return new TypeError(`${a.header}: ${a.message}`)};lt.errors.conversionFailed=function(a){const C=a.types.length===1?"":" one of";const q=`${a.argument} could not be converted to`+`${C}: ${a.types.join(", ")}.`;return lt.errors.exception({header:a.prefix,message:q})};lt.errors.invalidArgument=function(a){return lt.errors.exception({header:a.prefix,message:`"${a.value}" is an invalid ${a.type}.`})};lt.brandCheck=function(a,C,q=undefined){if(q?.strict!==false&&!(a instanceof C)){throw new TypeError("Illegal invocation")}else{return a?.[Symbol.toStringTag]===C.prototype[Symbol.toStringTag]}};lt.argumentLengthCheck=function({length:a},C,q){if(aae){throw lt.errors.exception({header:"Integer conversion",message:`Value must be between ${Ue}-${ae}, got ${Pt}.`})}return Pt}if(!Number.isNaN(Pt)&&re.clamp===true){Pt=Math.min(Math.max(Pt,Ue),ae);if(Math.floor(Pt)%2===0){Pt=Math.floor(Pt)}else{Pt=Math.ceil(Pt)}return Pt}if(Number.isNaN(Pt)||Pt===0&&Object.is(0,Pt)||Pt===Number.POSITIVE_INFINITY||Pt===Number.NEGATIVE_INFINITY){return 0}Pt=lt.util.IntegerPart(Pt);Pt=Pt%Math.pow(2,C);if(q==="signed"&&Pt>=Math.pow(2,C)-1){return Pt-Math.pow(2,C)}return Pt};lt.util.IntegerPart=function(a){const C=Math.floor(Math.abs(a));if(a<0){return-1*C}return C};lt.sequenceConverter=function(a){return C=>{if(lt.util.Type(C)!=="Object"){throw lt.errors.exception({header:"Sequence",message:`Value of type ${lt.util.Type(C)} is not an Object.`})}const q=C?.[Symbol.iterator]?.();const re=[];if(q===undefined||typeof q.next!=="function"){throw lt.errors.exception({header:"Sequence",message:"Object is not an iterator."})}while(true){const{done:C,value:ae}=q.next();if(C){break}re.push(a(ae))}return re}};lt.recordConverter=function(a,C){return q=>{if(lt.util.Type(q)!=="Object"){throw lt.errors.exception({header:"Record",message:`Value of type ${lt.util.Type(q)} is not an Object.`})}const ae={};if(!re.isProxy(q)){const re=Object.keys(q);for(const Ue of re){const re=a(Ue);const lt=C(q[Ue]);ae[re]=lt}return ae}const Ue=Reflect.ownKeys(q);for(const re of Ue){const Ue=Reflect.getOwnPropertyDescriptor(q,re);if(Ue?.enumerable){const Ue=a(re);const lt=C(q[re]);ae[Ue]=lt}}return ae}};lt.interfaceConverter=function(a){return(C,q={})=>{if(q.strict!==false&&!(C instanceof a)){throw lt.errors.exception({header:a.name,message:`Expected ${C} to be an instance of ${a.name}.`})}return C}};lt.dictionaryConverter=function(a){return C=>{const q=lt.util.Type(C);const re={};if(q==="Null"||q==="Undefined"){return re}else if(q!=="Object"){throw lt.errors.exception({header:"Dictionary",message:`Expected ${C} to be one of: Null, Undefined, Object.`})}for(const q of a){const{key:a,defaultValue:Ue,required:Pt,converter:Wt}=q;if(Pt===true){if(!ae(C,a)){throw lt.errors.exception({header:"Dictionary",message:`Missing required key "${a}".`})}}let Ar=C[a];const Er=ae(q,"defaultValue");if(Er&&Ar!==null){Ar=Ar??Ue}if(Pt||Er||Ar!==undefined){Ar=Wt(Ar);if(q.allowedValues&&!q.allowedValues.includes(Ar)){throw lt.errors.exception({header:"Dictionary",message:`${Ar} is not an accepted type. Expected one of ${q.allowedValues.join(", ")}.`})}re[a]=Ar}}return re}};lt.nullableConverter=function(a){return C=>{if(C===null){return C}return a(C)}};lt.converters.DOMString=function(a,C={}){if(a===null&&C.legacyNullToEmptyString){return""}if(typeof a==="symbol"){throw new TypeError("Could not convert argument of type symbol to string.")}return String(a)};lt.converters.ByteString=function(a){const C=lt.converters.DOMString(a);for(let a=0;a255){throw new TypeError("Cannot convert argument to a ByteString because the character at "+`index ${a} has a value of ${C.charCodeAt(a)} which is greater than 255.`)}}return C};lt.converters.USVString=Ue;lt.converters.boolean=function(a){const C=Boolean(a);return C};lt.converters.any=function(a){return a};lt.converters["long long"]=function(a){const C=lt.util.ConvertToInt(a,64,"signed");return C};lt.converters["unsigned long long"]=function(a){const C=lt.util.ConvertToInt(a,64,"unsigned");return C};lt.converters["unsigned long"]=function(a){const C=lt.util.ConvertToInt(a,32,"unsigned");return C};lt.converters["unsigned short"]=function(a,C){const q=lt.util.ConvertToInt(a,16,"unsigned",C);return q};lt.converters.ArrayBuffer=function(a,C={}){if(lt.util.Type(a)!=="Object"||!re.isAnyArrayBuffer(a)){throw lt.errors.conversionFailed({prefix:`${a}`,argument:`${a}`,types:["ArrayBuffer"]})}if(C.allowShared===false&&re.isSharedArrayBuffer(a)){throw lt.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."})}return a};lt.converters.TypedArray=function(a,C,q={}){if(lt.util.Type(a)!=="Object"||!re.isTypedArray(a)||a.constructor.name!==C.name){throw lt.errors.conversionFailed({prefix:`${C.name}`,argument:`${a}`,types:[C.name]})}if(q.allowShared===false&&re.isSharedArrayBuffer(a.buffer)){throw lt.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."})}return a};lt.converters.DataView=function(a,C={}){if(lt.util.Type(a)!=="Object"||!re.isDataView(a)){throw lt.errors.exception({header:"DataView",message:"Object is not a DataView."})}if(C.allowShared===false&&re.isSharedArrayBuffer(a.buffer)){throw lt.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."})}return a};lt.converters.BufferSource=function(a,C={}){if(re.isAnyArrayBuffer(a)){return lt.converters.ArrayBuffer(a,C)}if(re.isTypedArray(a)){return lt.converters.TypedArray(a,a.constructor)}if(re.isDataView(a)){return lt.converters.DataView(a,C)}throw new TypeError(`Could not convert ${a} to a BufferSource.`)};lt.converters["sequence"]=lt.sequenceConverter(lt.converters.ByteString);lt.converters["sequence>"]=lt.sequenceConverter(lt.converters["sequence"]);lt.converters["record"]=lt.recordConverter(lt.converters.ByteString,lt.converters.ByteString);a.exports={webidl:lt}},396:a=>{function getEncoding(a){if(!a){return"failure"}switch(a.trim().toLowerCase()){case"unicode-1-1-utf-8":case"unicode11utf8":case"unicode20utf8":case"utf-8":case"utf8":case"x-unicode20utf8":return"UTF-8";case"866":case"cp866":case"csibm866":case"ibm866":return"IBM866";case"csisolatin2":case"iso-8859-2":case"iso-ir-101":case"iso8859-2":case"iso88592":case"iso_8859-2":case"iso_8859-2:1987":case"l2":case"latin2":return"ISO-8859-2";case"csisolatin3":case"iso-8859-3":case"iso-ir-109":case"iso8859-3":case"iso88593":case"iso_8859-3":case"iso_8859-3:1988":case"l3":case"latin3":return"ISO-8859-3";case"csisolatin4":case"iso-8859-4":case"iso-ir-110":case"iso8859-4":case"iso88594":case"iso_8859-4":case"iso_8859-4:1988":case"l4":case"latin4":return"ISO-8859-4";case"csisolatincyrillic":case"cyrillic":case"iso-8859-5":case"iso-ir-144":case"iso8859-5":case"iso88595":case"iso_8859-5":case"iso_8859-5:1988":return"ISO-8859-5";case"arabic":case"asmo-708":case"csiso88596e":case"csiso88596i":case"csisolatinarabic":case"ecma-114":case"iso-8859-6":case"iso-8859-6-e":case"iso-8859-6-i":case"iso-ir-127":case"iso8859-6":case"iso88596":case"iso_8859-6":case"iso_8859-6:1987":return"ISO-8859-6";case"csisolatingreek":case"ecma-118":case"elot_928":case"greek":case"greek8":case"iso-8859-7":case"iso-ir-126":case"iso8859-7":case"iso88597":case"iso_8859-7":case"iso_8859-7:1987":case"sun_eu_greek":return"ISO-8859-7";case"csiso88598e":case"csisolatinhebrew":case"hebrew":case"iso-8859-8":case"iso-8859-8-e":case"iso-ir-138":case"iso8859-8":case"iso88598":case"iso_8859-8":case"iso_8859-8:1988":case"visual":return"ISO-8859-8";case"csiso88598i":case"iso-8859-8-i":case"logical":return"ISO-8859-8-I";case"csisolatin6":case"iso-8859-10":case"iso-ir-157":case"iso8859-10":case"iso885910":case"l6":case"latin6":return"ISO-8859-10";case"iso-8859-13":case"iso8859-13":case"iso885913":return"ISO-8859-13";case"iso-8859-14":case"iso8859-14":case"iso885914":return"ISO-8859-14";case"csisolatin9":case"iso-8859-15":case"iso8859-15":case"iso885915":case"iso_8859-15":case"l9":return"ISO-8859-15";case"iso-8859-16":return"ISO-8859-16";case"cskoi8r":case"koi":case"koi8":case"koi8-r":case"koi8_r":return"KOI8-R";case"koi8-ru":case"koi8-u":return"KOI8-U";case"csmacintosh":case"mac":case"macintosh":case"x-mac-roman":return"macintosh";case"iso-8859-11":case"iso8859-11":case"iso885911":case"tis-620":case"windows-874":return"windows-874";case"cp1250":case"windows-1250":case"x-cp1250":return"windows-1250";case"cp1251":case"windows-1251":case"x-cp1251":return"windows-1251";case"ansi_x3.4-1968":case"ascii":case"cp1252":case"cp819":case"csisolatin1":case"ibm819":case"iso-8859-1":case"iso-ir-100":case"iso8859-1":case"iso88591":case"iso_8859-1":case"iso_8859-1:1987":case"l1":case"latin1":case"us-ascii":case"windows-1252":case"x-cp1252":return"windows-1252";case"cp1253":case"windows-1253":case"x-cp1253":return"windows-1253";case"cp1254":case"csisolatin5":case"iso-8859-9":case"iso-ir-148":case"iso8859-9":case"iso88599":case"iso_8859-9":case"iso_8859-9:1989":case"l5":case"latin5":case"windows-1254":case"x-cp1254":return"windows-1254";case"cp1255":case"windows-1255":case"x-cp1255":return"windows-1255";case"cp1256":case"windows-1256":case"x-cp1256":return"windows-1256";case"cp1257":case"windows-1257":case"x-cp1257":return"windows-1257";case"cp1258":case"windows-1258":case"x-cp1258":return"windows-1258";case"x-mac-cyrillic":case"x-mac-ukrainian":return"x-mac-cyrillic";case"chinese":case"csgb2312":case"csiso58gb231280":case"gb2312":case"gb_2312":case"gb_2312-80":case"gbk":case"iso-ir-58":case"x-gbk":return"GBK";case"gb18030":return"gb18030";case"big5":case"big5-hkscs":case"cn-big5":case"csbig5":case"x-x-big5":return"Big5";case"cseucpkdfmtjapanese":case"euc-jp":case"x-euc-jp":return"EUC-JP";case"csiso2022jp":case"iso-2022-jp":return"ISO-2022-JP";case"csshiftjis":case"ms932":case"ms_kanji":case"shift-jis":case"shift_jis":case"sjis":case"windows-31j":case"x-sjis":return"Shift_JIS";case"cseuckr":case"csksc56011987":case"euc-kr":case"iso-ir-149":case"korean":case"ks_c_5601-1987":case"ks_c_5601-1989":case"ksc5601":case"ksc_5601":case"windows-949":return"EUC-KR";case"csiso2022kr":case"hz-gb-2312":case"iso-2022-cn":case"iso-2022-cn-ext":case"iso-2022-kr":case"replacement":return"replacement";case"unicodefffe":case"utf-16be":return"UTF-16BE";case"csunicode":case"iso-10646-ucs-2":case"ucs-2":case"unicode":case"unicodefeff":case"utf-16":case"utf-16le":return"UTF-16LE";case"x-user-defined":return"x-user-defined";default:return"failure"}}a.exports={getEncoding:getEncoding}},2160:(a,C,q)=>{const{staticPropertyDescriptors:re,readOperation:ae,fireAProgressEvent:Ue}=q(165);const{kState:lt,kError:Pt,kResult:Wt,kEvents:Ar,kAborted:Er}=q(6812);const{webidl:Br}=q(4222);const{kEnumerableProperty:Qr}=q(3440);class FileReader extends EventTarget{constructor(){super();this[lt]="empty";this[Wt]=null;this[Pt]=null;this[Ar]={loadend:null,error:null,abort:null,load:null,progress:null,loadstart:null}}readAsArrayBuffer(a){Br.brandCheck(this,FileReader);Br.argumentLengthCheck(arguments,1,{header:"FileReader.readAsArrayBuffer"});a=Br.converters.Blob(a,{strict:false});ae(this,a,"ArrayBuffer")}readAsBinaryString(a){Br.brandCheck(this,FileReader);Br.argumentLengthCheck(arguments,1,{header:"FileReader.readAsBinaryString"});a=Br.converters.Blob(a,{strict:false});ae(this,a,"BinaryString")}readAsText(a,C=undefined){Br.brandCheck(this,FileReader);Br.argumentLengthCheck(arguments,1,{header:"FileReader.readAsText"});a=Br.converters.Blob(a,{strict:false});if(C!==undefined){C=Br.converters.DOMString(C)}ae(this,a,"Text",C)}readAsDataURL(a){Br.brandCheck(this,FileReader);Br.argumentLengthCheck(arguments,1,{header:"FileReader.readAsDataURL"});a=Br.converters.Blob(a,{strict:false});ae(this,a,"DataURL")}abort(){if(this[lt]==="empty"||this[lt]==="done"){this[Wt]=null;return}if(this[lt]==="loading"){this[lt]="done";this[Wt]=null}this[Er]=true;Ue("abort",this);if(this[lt]!=="loading"){Ue("loadend",this)}}get readyState(){Br.brandCheck(this,FileReader);switch(this[lt]){case"empty":return this.EMPTY;case"loading":return this.LOADING;case"done":return this.DONE}}get result(){Br.brandCheck(this,FileReader);return this[Wt]}get error(){Br.brandCheck(this,FileReader);return this[Pt]}get onloadend(){Br.brandCheck(this,FileReader);return this[Ar].loadend}set onloadend(a){Br.brandCheck(this,FileReader);if(this[Ar].loadend){this.removeEventListener("loadend",this[Ar].loadend)}if(typeof a==="function"){this[Ar].loadend=a;this.addEventListener("loadend",a)}else{this[Ar].loadend=null}}get onerror(){Br.brandCheck(this,FileReader);return this[Ar].error}set onerror(a){Br.brandCheck(this,FileReader);if(this[Ar].error){this.removeEventListener("error",this[Ar].error)}if(typeof a==="function"){this[Ar].error=a;this.addEventListener("error",a)}else{this[Ar].error=null}}get onloadstart(){Br.brandCheck(this,FileReader);return this[Ar].loadstart}set onloadstart(a){Br.brandCheck(this,FileReader);if(this[Ar].loadstart){this.removeEventListener("loadstart",this[Ar].loadstart)}if(typeof a==="function"){this[Ar].loadstart=a;this.addEventListener("loadstart",a)}else{this[Ar].loadstart=null}}get onprogress(){Br.brandCheck(this,FileReader);return this[Ar].progress}set onprogress(a){Br.brandCheck(this,FileReader);if(this[Ar].progress){this.removeEventListener("progress",this[Ar].progress)}if(typeof a==="function"){this[Ar].progress=a;this.addEventListener("progress",a)}else{this[Ar].progress=null}}get onload(){Br.brandCheck(this,FileReader);return this[Ar].load}set onload(a){Br.brandCheck(this,FileReader);if(this[Ar].load){this.removeEventListener("load",this[Ar].load)}if(typeof a==="function"){this[Ar].load=a;this.addEventListener("load",a)}else{this[Ar].load=null}}get onabort(){Br.brandCheck(this,FileReader);return this[Ar].abort}set onabort(a){Br.brandCheck(this,FileReader);if(this[Ar].abort){this.removeEventListener("abort",this[Ar].abort)}if(typeof a==="function"){this[Ar].abort=a;this.addEventListener("abort",a)}else{this[Ar].abort=null}}}FileReader.EMPTY=FileReader.prototype.EMPTY=0;FileReader.LOADING=FileReader.prototype.LOADING=1;FileReader.DONE=FileReader.prototype.DONE=2;Object.defineProperties(FileReader.prototype,{EMPTY:re,LOADING:re,DONE:re,readAsArrayBuffer:Qr,readAsBinaryString:Qr,readAsText:Qr,readAsDataURL:Qr,abort:Qr,readyState:Qr,result:Qr,error:Qr,onloadstart:Qr,onprogress:Qr,onload:Qr,onabort:Qr,onerror:Qr,onloadend:Qr,[Symbol.toStringTag]:{value:"FileReader",writable:false,enumerable:false,configurable:true}});Object.defineProperties(FileReader,{EMPTY:re,LOADING:re,DONE:re});a.exports={FileReader:FileReader}},5976:(a,C,q)=>{const{webidl:re}=q(4222);const ae=Symbol("ProgressEvent state");class ProgressEvent extends Event{constructor(a,C={}){a=re.converters.DOMString(a);C=re.converters.ProgressEventInit(C??{});super(a,C);this[ae]={lengthComputable:C.lengthComputable,loaded:C.loaded,total:C.total}}get lengthComputable(){re.brandCheck(this,ProgressEvent);return this[ae].lengthComputable}get loaded(){re.brandCheck(this,ProgressEvent);return this[ae].loaded}get total(){re.brandCheck(this,ProgressEvent);return this[ae].total}}re.converters.ProgressEventInit=re.dictionaryConverter([{key:"lengthComputable",converter:re.converters.boolean,defaultValue:false},{key:"loaded",converter:re.converters["unsigned long long"],defaultValue:0},{key:"total",converter:re.converters["unsigned long long"],defaultValue:0},{key:"bubbles",converter:re.converters.boolean,defaultValue:false},{key:"cancelable",converter:re.converters.boolean,defaultValue:false},{key:"composed",converter:re.converters.boolean,defaultValue:false}]);a.exports={ProgressEvent:ProgressEvent}},6812:a=>{a.exports={kState:Symbol("FileReader state"),kResult:Symbol("FileReader result"),kError:Symbol("FileReader error"),kLastProgressEventFired:Symbol("FileReader last progress event fired timestamp"),kEvents:Symbol("FileReader events"),kAborted:Symbol("FileReader aborted")}},165:(a,C,q)=>{const{kState:re,kError:ae,kResult:Ue,kAborted:lt,kLastProgressEventFired:Pt}=q(6812);const{ProgressEvent:Wt}=q(5976);const{getEncoding:Ar}=q(396);const{DOMException:Er}=q(7326);const{serializeAMimeType:Br,parseMIMEType:Qr}=q(4322);const{types:Ir}=q(9023);const{StringDecoder:Dr}=q(3193);const{btoa:kr}=q(181);const Fr={enumerable:true,writable:false,configurable:false};function readOperation(a,C,q,Wt){if(a[re]==="loading"){throw new Er("Invalid state","InvalidStateError")}a[re]="loading";a[Ue]=null;a[ae]=null;const Ar=C.stream();const Br=Ar.getReader();const Qr=[];let Dr=Br.read();let kr=true;(async()=>{while(!a[lt]){try{const{done:Ar,value:Er}=await Dr;if(kr&&!a[lt]){queueMicrotask((()=>{fireAProgressEvent("loadstart",a)}))}kr=false;if(!Ar&&Ir.isUint8Array(Er)){Qr.push(Er);if((a[Pt]===undefined||Date.now()-a[Pt]>=50)&&!a[lt]){a[Pt]=Date.now();queueMicrotask((()=>{fireAProgressEvent("progress",a)}))}Dr=Br.read()}else if(Ar){queueMicrotask((()=>{a[re]="done";try{const re=packageData(Qr,q,C.type,Wt);if(a[lt]){return}a[Ue]=re;fireAProgressEvent("load",a)}catch(C){a[ae]=C;fireAProgressEvent("error",a)}if(a[re]!=="loading"){fireAProgressEvent("loadend",a)}}));break}}catch(C){if(a[lt]){return}queueMicrotask((()=>{a[re]="done";a[ae]=C;fireAProgressEvent("error",a);if(a[re]!=="loading"){fireAProgressEvent("loadend",a)}}));break}}})()}function fireAProgressEvent(a,C){const q=new Wt(a,{bubbles:false,cancelable:false});C.dispatchEvent(q)}function packageData(a,C,q,re){switch(C){case"DataURL":{let C="data:";const re=Qr(q||"application/octet-stream");if(re!=="failure"){C+=Br(re)}C+=";base64,";const ae=new Dr("latin1");for(const q of a){C+=kr(ae.write(q))}C+=kr(ae.end());return C}case"Text":{let C="failure";if(re){C=Ar(re)}if(C==="failure"&&q){const a=Qr(q);if(a!=="failure"){C=Ar(a.parameters.get("charset"))}}if(C==="failure"){C="UTF-8"}return decode(a,C)}case"ArrayBuffer":{const C=combineByteSequences(a);return C.buffer}case"BinaryString":{let C="";const q=new Dr("latin1");for(const re of a){C+=q.write(re)}C+=q.end();return C}}}function decode(a,C){const q=combineByteSequences(a);const re=BOMSniffing(q);let ae=0;if(re!==null){C=re;ae=re==="UTF-8"?3:2}const Ue=q.slice(ae);return new TextDecoder(C).decode(Ue)}function BOMSniffing(a){const[C,q,re]=a;if(C===239&&q===187&&re===191){return"UTF-8"}else if(C===254&&q===255){return"UTF-16BE"}else if(C===255&&q===254){return"UTF-16LE"}return null}function combineByteSequences(a){const C=a.reduce(((a,C)=>a+C.byteLength),0);let q=0;return a.reduce(((a,C)=>{a.set(C,q);q+=C.byteLength;return a}),new Uint8Array(C))}a.exports={staticPropertyDescriptors:Fr,readOperation:readOperation,fireAProgressEvent:fireAProgressEvent}},2581:(a,C,q)=>{const re=Symbol.for("undici.globalDispatcher.1");const{InvalidArgumentError:ae}=q(8707);const Ue=q(9965);if(getGlobalDispatcher()===undefined){setGlobalDispatcher(new Ue)}function setGlobalDispatcher(a){if(!a||typeof a.dispatch!=="function"){throw new ae("Argument agent must implement Agent")}Object.defineProperty(globalThis,re,{value:a,writable:true,enumerable:false,configurable:false})}function getGlobalDispatcher(){return globalThis[re]}a.exports={setGlobalDispatcher:setGlobalDispatcher,getGlobalDispatcher:getGlobalDispatcher}},8840:a=>{a.exports=class DecoratorHandler{constructor(a){this.handler=a}onConnect(...a){return this.handler.onConnect(...a)}onError(...a){return this.handler.onError(...a)}onUpgrade(...a){return this.handler.onUpgrade(...a)}onHeaders(...a){return this.handler.onHeaders(...a)}onData(...a){return this.handler.onData(...a)}onComplete(...a){return this.handler.onComplete(...a)}onBodySent(...a){return this.handler.onBodySent(...a)}}},8299:(a,C,q)=>{const re=q(3440);const{kBodyUsed:ae}=q(6443);const Ue=q(2613);const{InvalidArgumentError:lt}=q(8707);const Pt=q(4434);const Wt=[300,301,302,303,307,308];const Ar=Symbol("body");class BodyAsyncIterable{constructor(a){this[Ar]=a;this[ae]=false}async*[Symbol.asyncIterator](){Ue(!this[ae],"disturbed");this[ae]=true;yield*this[Ar]}}class RedirectHandler{constructor(a,C,q,Wt){if(C!=null&&(!Number.isInteger(C)||C<0)){throw new lt("maxRedirections must be a positive number")}re.validateHandler(Wt,q.method,q.upgrade);this.dispatch=a;this.location=null;this.abort=null;this.opts={...q,maxRedirections:0};this.maxRedirections=C;this.handler=Wt;this.history=[];if(re.isStream(this.opts.body)){if(re.bodyLength(this.opts.body)===0){this.opts.body.on("data",(function(){Ue(false)}))}if(typeof this.opts.body.readableDidRead!=="boolean"){this.opts.body[ae]=false;Pt.prototype.on.call(this.opts.body,"data",(function(){this[ae]=true}))}}else if(this.opts.body&&typeof this.opts.body.pipeTo==="function"){this.opts.body=new BodyAsyncIterable(this.opts.body)}else if(this.opts.body&&typeof this.opts.body!=="string"&&!ArrayBuffer.isView(this.opts.body)&&re.isIterable(this.opts.body)){this.opts.body=new BodyAsyncIterable(this.opts.body)}}onConnect(a){this.abort=a;this.handler.onConnect(a,{history:this.history})}onUpgrade(a,C,q){this.handler.onUpgrade(a,C,q)}onError(a){this.handler.onError(a)}onHeaders(a,C,q,ae){this.location=this.history.length>=this.maxRedirections||re.isDisturbed(this.opts.body)?null:parseLocation(a,C);if(this.opts.origin){this.history.push(new URL(this.opts.path,this.opts.origin))}if(!this.location){return this.handler.onHeaders(a,C,q,ae)}const{origin:Ue,pathname:lt,search:Pt}=re.parseURL(new URL(this.location,this.opts.origin&&new URL(this.opts.path,this.opts.origin)));const Wt=Pt?`${lt}${Pt}`:lt;this.opts.headers=cleanRequestHeaders(this.opts.headers,a===303,this.opts.origin!==Ue);this.opts.path=Wt;this.opts.origin=Ue;this.opts.maxRedirections=0;this.opts.query=null;if(a===303&&this.opts.method!=="HEAD"){this.opts.method="GET";this.opts.body=null}}onData(a){if(this.location){}else{return this.handler.onData(a)}}onComplete(a){if(this.location){this.location=null;this.abort=null;this.dispatch(this.opts,this)}else{this.handler.onComplete(a)}}onBodySent(a){if(this.handler.onBodySent){this.handler.onBodySent(a)}}}function parseLocation(a,C){if(Wt.indexOf(a)===-1){return null}for(let a=0;a{const re=q(2613);const{kRetryHandlerDefaultRetry:ae}=q(6443);const{RequestRetryError:Ue}=q(8707);const{isDisturbed:lt,parseHeaders:Pt,parseRangeHeader:Wt}=q(3440);function calculateRetryAfterHeader(a){const C=Date.now();const q=new Date(a).getTime()-C;return q}class RetryHandler{constructor(a,C){const{retryOptions:q,...re}=a;const{retry:Ue,maxRetries:lt,maxTimeout:Pt,minTimeout:Wt,timeoutFactor:Ar,methods:Er,errorCodes:Br,retryAfter:Qr,statusCodes:Ir}=q??{};this.dispatch=C.dispatch;this.handler=C.handler;this.opts=re;this.abort=null;this.aborted=false;this.retryOpts={retry:Ue??RetryHandler[ae],retryAfter:Qr??true,maxTimeout:Pt??30*1e3,timeout:Wt??500,timeoutFactor:Ar??2,maxRetries:lt??5,methods:Er??["GET","HEAD","OPTIONS","PUT","DELETE","TRACE"],statusCodes:Ir??[500,502,503,504,429],errorCodes:Br??["ECONNRESET","ECONNREFUSED","ENOTFOUND","ENETDOWN","ENETUNREACH","EHOSTDOWN","EHOSTUNREACH","EPIPE"]};this.retryCount=0;this.start=0;this.end=null;this.etag=null;this.resume=null;this.handler.onConnect((a=>{this.aborted=true;if(this.abort){this.abort(a)}else{this.reason=a}}))}onRequestSent(){if(this.handler.onRequestSent){this.handler.onRequestSent()}}onUpgrade(a,C,q){if(this.handler.onUpgrade){this.handler.onUpgrade(a,C,q)}}onConnect(a){if(this.aborted){a(this.reason)}else{this.abort=a}}onBodySent(a){if(this.handler.onBodySent)return this.handler.onBodySent(a)}static[ae](a,{state:C,opts:q},re){const{statusCode:ae,code:Ue,headers:lt}=a;const{method:Pt,retryOptions:Wt}=q;const{maxRetries:Ar,timeout:Er,maxTimeout:Br,timeoutFactor:Qr,statusCodes:Ir,errorCodes:Dr,methods:kr}=Wt;let{counter:Fr,currentTimeout:Nr}=C;Nr=Nr!=null&&Nr>0?Nr:Er;if(Ue&&Ue!=="UND_ERR_REQ_RETRY"&&Ue!=="UND_ERR_SOCKET"&&!Dr.includes(Ue)){re(a);return}if(Array.isArray(kr)&&!kr.includes(Pt)){re(a);return}if(ae!=null&&Array.isArray(Ir)&&!Ir.includes(ae)){re(a);return}if(Fr>Ar){re(a);return}let Ur=lt!=null&<["retry-after"];if(Ur){Ur=Number(Ur);Ur=isNaN(Ur)?calculateRetryAfterHeader(Ur):Ur*1e3}const Lr=Ur>0?Math.min(Ur,Br):Math.min(Nr*Qr**Fr,Br);C.currentTimeout=Lr;setTimeout((()=>re(null)),Lr)}onHeaders(a,C,q,ae){const lt=Pt(C);this.retryCount+=1;if(a>=300){this.abort(new Ue("Request failed",a,{headers:lt,count:this.retryCount}));return false}if(this.resume!=null){this.resume=null;if(a!==206){return true}const C=Wt(lt["content-range"]);if(!C){this.abort(new Ue("Content-Range mismatch",a,{headers:lt,count:this.retryCount}));return false}if(this.etag!=null&&this.etag!==lt.etag){this.abort(new Ue("ETag mismatch",a,{headers:lt,count:this.retryCount}));return false}const{start:ae,size:Pt,end:Ar=Pt}=C;re(this.start===ae,"content-range mismatch");re(this.end==null||this.end===Ar,"content-range mismatch");this.resume=q;return true}if(this.end==null){if(a===206){const Ue=Wt(lt["content-range"]);if(Ue==null){return this.handler.onHeaders(a,C,q,ae)}const{start:Pt,size:Ar,end:Er=Ar}=Ue;re(Pt!=null&&Number.isFinite(Pt)&&this.start!==Pt,"content-range mismatch");re(Number.isFinite(Pt));re(Er!=null&&Number.isFinite(Er)&&this.end!==Er,"invalid content-length");this.start=Pt;this.end=Er}if(this.end==null){const a=lt["content-length"];this.end=a!=null?Number(a):null}re(Number.isFinite(this.start));re(this.end==null||Number.isFinite(this.end),"invalid content-length");this.resume=q;this.etag=lt.etag!=null?lt.etag:null;return this.handler.onHeaders(a,C,q,ae)}const Ar=new Ue("Request failed",a,{headers:lt,count:this.retryCount});this.abort(Ar);return false}onData(a){this.start+=a.length;return this.handler.onData(a)}onComplete(a){this.retryCount=0;return this.handler.onComplete(a)}onError(a){if(this.aborted||lt(this.opts.body)){return this.handler.onError(a)}this.retryOpts.retry(a,{state:{counter:this.retryCount++,currentTimeout:this.retryAfter},opts:{retryOptions:this.retryOpts,...this.opts}},onRetry.bind(this));function onRetry(a){if(a!=null||this.aborted||lt(this.opts.body)){return this.handler.onError(a)}if(this.start!==0){this.opts={...this.opts,headers:{...this.opts.headers,range:`bytes=${this.start}-${this.end??""}`}}}try{this.dispatch(this.opts,this)}catch(a){this.handler.onError(a)}}}}a.exports=RetryHandler},4415:(a,C,q)=>{const re=q(8299);function createRedirectInterceptor({maxRedirections:a}){return C=>function Intercept(q,ae){const{maxRedirections:Ue=a}=q;if(!Ue){return C(q,ae)}const lt=new re(C,Ue,q,ae);q={...q,maxRedirections:0};return C(q,lt)}}a.exports=createRedirectInterceptor},2824:(a,C,q)=>{Object.defineProperty(C,"__esModule",{value:true});C.SPECIAL_HEADERS=C.HEADER_STATE=C.MINOR=C.MAJOR=C.CONNECTION_TOKEN_CHARS=C.HEADER_CHARS=C.TOKEN=C.STRICT_TOKEN=C.HEX=C.URL_CHAR=C.STRICT_URL_CHAR=C.USERINFO_CHARS=C.MARK=C.ALPHANUM=C.NUM=C.HEX_MAP=C.NUM_MAP=C.ALPHA=C.FINISH=C.H_METHOD_MAP=C.METHOD_MAP=C.METHODS_RTSP=C.METHODS_ICE=C.METHODS_HTTP=C.METHODS=C.LENIENT_FLAGS=C.FLAGS=C.TYPE=C.ERROR=void 0;const re=q(172);var ae;(function(a){a[a["OK"]=0]="OK";a[a["INTERNAL"]=1]="INTERNAL";a[a["STRICT"]=2]="STRICT";a[a["LF_EXPECTED"]=3]="LF_EXPECTED";a[a["UNEXPECTED_CONTENT_LENGTH"]=4]="UNEXPECTED_CONTENT_LENGTH";a[a["CLOSED_CONNECTION"]=5]="CLOSED_CONNECTION";a[a["INVALID_METHOD"]=6]="INVALID_METHOD";a[a["INVALID_URL"]=7]="INVALID_URL";a[a["INVALID_CONSTANT"]=8]="INVALID_CONSTANT";a[a["INVALID_VERSION"]=9]="INVALID_VERSION";a[a["INVALID_HEADER_TOKEN"]=10]="INVALID_HEADER_TOKEN";a[a["INVALID_CONTENT_LENGTH"]=11]="INVALID_CONTENT_LENGTH";a[a["INVALID_CHUNK_SIZE"]=12]="INVALID_CHUNK_SIZE";a[a["INVALID_STATUS"]=13]="INVALID_STATUS";a[a["INVALID_EOF_STATE"]=14]="INVALID_EOF_STATE";a[a["INVALID_TRANSFER_ENCODING"]=15]="INVALID_TRANSFER_ENCODING";a[a["CB_MESSAGE_BEGIN"]=16]="CB_MESSAGE_BEGIN";a[a["CB_HEADERS_COMPLETE"]=17]="CB_HEADERS_COMPLETE";a[a["CB_MESSAGE_COMPLETE"]=18]="CB_MESSAGE_COMPLETE";a[a["CB_CHUNK_HEADER"]=19]="CB_CHUNK_HEADER";a[a["CB_CHUNK_COMPLETE"]=20]="CB_CHUNK_COMPLETE";a[a["PAUSED"]=21]="PAUSED";a[a["PAUSED_UPGRADE"]=22]="PAUSED_UPGRADE";a[a["PAUSED_H2_UPGRADE"]=23]="PAUSED_H2_UPGRADE";a[a["USER"]=24]="USER"})(ae=C.ERROR||(C.ERROR={}));var Ue;(function(a){a[a["BOTH"]=0]="BOTH";a[a["REQUEST"]=1]="REQUEST";a[a["RESPONSE"]=2]="RESPONSE"})(Ue=C.TYPE||(C.TYPE={}));var lt;(function(a){a[a["CONNECTION_KEEP_ALIVE"]=1]="CONNECTION_KEEP_ALIVE";a[a["CONNECTION_CLOSE"]=2]="CONNECTION_CLOSE";a[a["CONNECTION_UPGRADE"]=4]="CONNECTION_UPGRADE";a[a["CHUNKED"]=8]="CHUNKED";a[a["UPGRADE"]=16]="UPGRADE";a[a["CONTENT_LENGTH"]=32]="CONTENT_LENGTH";a[a["SKIPBODY"]=64]="SKIPBODY";a[a["TRAILING"]=128]="TRAILING";a[a["TRANSFER_ENCODING"]=512]="TRANSFER_ENCODING"})(lt=C.FLAGS||(C.FLAGS={}));var Pt;(function(a){a[a["HEADERS"]=1]="HEADERS";a[a["CHUNKED_LENGTH"]=2]="CHUNKED_LENGTH";a[a["KEEP_ALIVE"]=4]="KEEP_ALIVE"})(Pt=C.LENIENT_FLAGS||(C.LENIENT_FLAGS={}));var Wt;(function(a){a[a["DELETE"]=0]="DELETE";a[a["GET"]=1]="GET";a[a["HEAD"]=2]="HEAD";a[a["POST"]=3]="POST";a[a["PUT"]=4]="PUT";a[a["CONNECT"]=5]="CONNECT";a[a["OPTIONS"]=6]="OPTIONS";a[a["TRACE"]=7]="TRACE";a[a["COPY"]=8]="COPY";a[a["LOCK"]=9]="LOCK";a[a["MKCOL"]=10]="MKCOL";a[a["MOVE"]=11]="MOVE";a[a["PROPFIND"]=12]="PROPFIND";a[a["PROPPATCH"]=13]="PROPPATCH";a[a["SEARCH"]=14]="SEARCH";a[a["UNLOCK"]=15]="UNLOCK";a[a["BIND"]=16]="BIND";a[a["REBIND"]=17]="REBIND";a[a["UNBIND"]=18]="UNBIND";a[a["ACL"]=19]="ACL";a[a["REPORT"]=20]="REPORT";a[a["MKACTIVITY"]=21]="MKACTIVITY";a[a["CHECKOUT"]=22]="CHECKOUT";a[a["MERGE"]=23]="MERGE";a[a["M-SEARCH"]=24]="M-SEARCH";a[a["NOTIFY"]=25]="NOTIFY";a[a["SUBSCRIBE"]=26]="SUBSCRIBE";a[a["UNSUBSCRIBE"]=27]="UNSUBSCRIBE";a[a["PATCH"]=28]="PATCH";a[a["PURGE"]=29]="PURGE";a[a["MKCALENDAR"]=30]="MKCALENDAR";a[a["LINK"]=31]="LINK";a[a["UNLINK"]=32]="UNLINK";a[a["SOURCE"]=33]="SOURCE";a[a["PRI"]=34]="PRI";a[a["DESCRIBE"]=35]="DESCRIBE";a[a["ANNOUNCE"]=36]="ANNOUNCE";a[a["SETUP"]=37]="SETUP";a[a["PLAY"]=38]="PLAY";a[a["PAUSE"]=39]="PAUSE";a[a["TEARDOWN"]=40]="TEARDOWN";a[a["GET_PARAMETER"]=41]="GET_PARAMETER";a[a["SET_PARAMETER"]=42]="SET_PARAMETER";a[a["REDIRECT"]=43]="REDIRECT";a[a["RECORD"]=44]="RECORD";a[a["FLUSH"]=45]="FLUSH"})(Wt=C.METHODS||(C.METHODS={}));C.METHODS_HTTP=[Wt.DELETE,Wt.GET,Wt.HEAD,Wt.POST,Wt.PUT,Wt.CONNECT,Wt.OPTIONS,Wt.TRACE,Wt.COPY,Wt.LOCK,Wt.MKCOL,Wt.MOVE,Wt.PROPFIND,Wt.PROPPATCH,Wt.SEARCH,Wt.UNLOCK,Wt.BIND,Wt.REBIND,Wt.UNBIND,Wt.ACL,Wt.REPORT,Wt.MKACTIVITY,Wt.CHECKOUT,Wt.MERGE,Wt["M-SEARCH"],Wt.NOTIFY,Wt.SUBSCRIBE,Wt.UNSUBSCRIBE,Wt.PATCH,Wt.PURGE,Wt.MKCALENDAR,Wt.LINK,Wt.UNLINK,Wt.PRI,Wt.SOURCE];C.METHODS_ICE=[Wt.SOURCE];C.METHODS_RTSP=[Wt.OPTIONS,Wt.DESCRIBE,Wt.ANNOUNCE,Wt.SETUP,Wt.PLAY,Wt.PAUSE,Wt.TEARDOWN,Wt.GET_PARAMETER,Wt.SET_PARAMETER,Wt.REDIRECT,Wt.RECORD,Wt.FLUSH,Wt.GET,Wt.POST];C.METHOD_MAP=re.enumToMap(Wt);C.H_METHOD_MAP={};Object.keys(C.METHOD_MAP).forEach((a=>{if(/^H/.test(a)){C.H_METHOD_MAP[a]=C.METHOD_MAP[a]}}));var Ar;(function(a){a[a["SAFE"]=0]="SAFE";a[a["SAFE_WITH_CB"]=1]="SAFE_WITH_CB";a[a["UNSAFE"]=2]="UNSAFE"})(Ar=C.FINISH||(C.FINISH={}));C.ALPHA=[];for(let a="A".charCodeAt(0);a<="Z".charCodeAt(0);a++){C.ALPHA.push(String.fromCharCode(a));C.ALPHA.push(String.fromCharCode(a+32))}C.NUM_MAP={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9};C.HEX_MAP={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15};C.NUM=["0","1","2","3","4","5","6","7","8","9"];C.ALPHANUM=C.ALPHA.concat(C.NUM);C.MARK=["-","_",".","!","~","*","'","(",")"];C.USERINFO_CHARS=C.ALPHANUM.concat(C.MARK).concat(["%",";",":","&","=","+","$",","]);C.STRICT_URL_CHAR=["!",'"',"$","%","&","'","(",")","*","+",",","-",".","/",":",";","<","=",">","@","[","\\","]","^","_","`","{","|","}","~"].concat(C.ALPHANUM);C.URL_CHAR=C.STRICT_URL_CHAR.concat(["\t","\f"]);for(let a=128;a<=255;a++){C.URL_CHAR.push(a)}C.HEX=C.NUM.concat(["a","b","c","d","e","f","A","B","C","D","E","F"]);C.STRICT_TOKEN=["!","#","$","%","&","'","*","+","-",".","^","_","`","|","~"].concat(C.ALPHANUM);C.TOKEN=C.STRICT_TOKEN.concat([" "]);C.HEADER_CHARS=["\t"];for(let a=32;a<=255;a++){if(a!==127){C.HEADER_CHARS.push(a)}}C.CONNECTION_TOKEN_CHARS=C.HEADER_CHARS.filter((a=>a!==44));C.MAJOR=C.NUM_MAP;C.MINOR=C.MAJOR;var Er;(function(a){a[a["GENERAL"]=0]="GENERAL";a[a["CONNECTION"]=1]="CONNECTION";a[a["CONTENT_LENGTH"]=2]="CONTENT_LENGTH";a[a["TRANSFER_ENCODING"]=3]="TRANSFER_ENCODING";a[a["UPGRADE"]=4]="UPGRADE";a[a["CONNECTION_KEEP_ALIVE"]=5]="CONNECTION_KEEP_ALIVE";a[a["CONNECTION_CLOSE"]=6]="CONNECTION_CLOSE";a[a["CONNECTION_UPGRADE"]=7]="CONNECTION_UPGRADE";a[a["TRANSFER_ENCODING_CHUNKED"]=8]="TRANSFER_ENCODING_CHUNKED"})(Er=C.HEADER_STATE||(C.HEADER_STATE={}));C.SPECIAL_HEADERS={connection:Er.CONNECTION,"content-length":Er.CONTENT_LENGTH,"proxy-connection":Er.CONNECTION,"transfer-encoding":Er.TRANSFER_ENCODING,upgrade:Er.UPGRADE}},3870:a=>{a.exports="AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAwABBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJs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ADcDACAAQShqQgA3AwAgAEEgakIANwMAIABBEGpCADcDACAAQQhqQgA3AwAgAEHdATYCHEEAC3sBAX8CQCAAKAIMIgMNAAJAIAAoAgRFDQAgACABNgIECwJAIAAgASACEMSAgIAAIgMNACAAKAIMDwsgACADNgIcQQAhAyAAKAIEIgFFDQAgACABIAIgACgCCBGBgICAAAAiAUUNACAAIAI2AhQgACABNgIMIAEhAwsgAwvk8wEDDn8DfgR/I4CAgIAAQRBrIgMkgICAgAAgASEEIAEhBSABIQYgASEHIAEhCCABIQkgASEKIAEhCyABIQwgASENIAEhDiABIQ8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgACgCHCIQQX9qDt0B2gEB2QECAwQFBgcICQoLDA0O2AEPENcBERLWARMUFRYXGBkaG+AB3wEcHR7VAR8gISIjJCXUASYnKCkqKyzTAdIBLS7RAdABLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVG2wFHSElKzwHOAUvNAUzMAU1OT1BRUlNUVVZXWFlaW1xdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+f4ABgQGCAYMBhAGFAYYBhwGIAYkB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QAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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FCAAIBA2AgxBACEQDLIBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxNCyAAQdMANgIcIAAgATYCFCAAIBA2AgxBACEQDLEBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxRCyAAQeUANgIcIAAgATYCFCAAIBA2AgxBACEQDLABCyAAQQA2AhwgACABNgIUIABBxoqAgAA2AhAgAEEHNgIMQQAhEAyvAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHSADYCHCAAIAE2AhQgACAQNgIMQQAhEAyuAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHTADYCHCAAIAE2AhQgACAQNgIMQQAhEAytAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMTQsgAEHlADYCHCAAIAE2AhQgACAQNgIMQQAhEAysAQsgAEEANgIcIAAgATYCFCAAQdyIgIAANgIQIABBBzYCDEEAIRAMqwELIBBBP0cNASABQQFqIQELQQUhEAyQAQtBACEQIABBADYCHCAAIAE2AhQgAEH9koCAADYCECAAQQc2AgwMqAELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0gA2AhwgACABNgIUIAAgEDYCDEEAIRAMpwELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0wA2AhwgACABNgIUIAAgEDYCDEEAIRAMpgELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEYLIABB5QA2AhwgACABNgIUIAAgEDYCDEEAIRAMpQELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0gA2AhwgACAUNgIUIAAgATYCDEEAIRAMpAELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0wA2AhwgACAUNgIUIAAgATYCDEEAIRAMowELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDEMLIABB5QA2AhwgACAU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YWdlX2JlZ2luYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlYCBjYWxsYmFjayBlcnJvcgBgb25fc3RhdHVzX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdmVyc2lvbl9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3VybF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWVzc2FnZV9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX21ldGhvZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lYCBjYWxsYmFjayBlcnJvcgBVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNlcnZlcgBJbnZhbGlkIGhlYWRlciB2YWx1ZSBjaGFyAEludmFsaWQgaGVhZGVyIGZpZWxkIGNoYXIAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl92ZXJzaW9uAEludmFsaWQgbWlub3IgdmVyc2lvbgBJbnZhbGlkIG1ham9yIHZlcnNpb24ARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgdmVyc2lvbgBFeHBlY3RlZCBDUkxGIGFmdGVyIHZlcnNpb24ASW52YWxpZCBIVFRQIHZlcnNpb24ASW52YWxpZCBoZWFkZXIgdG9rZW4AU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl91cmwASW52YWxpZCBjaGFyYWN0ZXJzIGluIHVybABVbmV4cGVjdGVkIHN0YXJ0IGNoYXIgaW4gdXJsAERvdWJsZSBAIGluIHVybABFbXB0eSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXJhY3RlciBpbiBDb250ZW50LUxlbmd0aABEdXBsaWNhdGUgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyIGluIHVybCBwYXRoAENvbnRlbnQtTGVuZ3RoIGNhbid0IGJlIHByZXNlbnQgd2l0aCBUcmFuc2Zlci1FbmNvZGluZwBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBzaXplAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX3ZhbHVlAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgdmFsdWUATWlzc2luZyBleHBlY3RlZCBMRiBhZnRlciBoZWFkZXIgdmFsdWUASW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHF1b3RlIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAFBhdXNlZCBieSBvbl9oZWFkZXJzX2NvbXBsZXRlAEludmFsaWQgRU9GIHN0YXRlAG9uX3Jlc2V0IHBhdXNlAG9uX2NodW5rX2hlYWRlciBwYXVzZQBvbl9tZXNzYWdlX2JlZ2luIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZSBwYXVzZQBvbl9zdGF0dXNfY29tcGxldGUgcGF1c2UAb25fdmVyc2lvbl9jb21wbGV0ZSBwYXVzZQBvbl91cmxfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlIHBhdXNlAG9uX21lc3NhZ2VfY29tcGxldGUgcGF1c2UAb25fbWV0aG9kX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fbmFtZSBwYXVzZQBVbmV4cGVjdGVkIHNwYWNlIGFmdGVyIHN0YXJ0IGxpbmUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fbmFtZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIG5hbWUAUGF1c2Ugb24gQ09OTkVDVC9VcGdyYWRlAFBhdXNlIG9uIFBSSS9VcGdyYWRlAEV4cGVjdGVkIEhUVFAvMiBDb25uZWN0aW9uIFByZWZhY2UAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9tZXRob2QARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgbWV0aG9kAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX2ZpZWxkAFBhdXNlZABJbnZhbGlkIHdvcmQgZW5jb3VudGVyZWQASW52YWxpZCBtZXRob2QgZW5jb3VudGVyZWQAVW5leHBlY3RlZCBjaGFyIGluIHVybCBzY2hlbWEAUmVxdWVzdCBoYXMgaW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgAFNXSVRDSF9QUk9YWQBVU0VfUFJPWFkATUtBQ1RJVklUWQBVTlBST0NFU1NBQkxFX0VOVElUWQBDT1BZAE1PVkVEX1BFUk1BTkVOVExZAFRPT19FQVJMWQBOT1RJRlkARkFJTEVEX0RFUEVOREVOQ1kAQkFEX0dBVEVXQVkAUExBWQBQVVQAQ0hFQ0tPVVQAR0FURVdBWV9USU1FT1VUAFJFUVVFU1RfVElNRU9VVABORVRXT1JLX0NPTk5FQ1RfVElNRU9VVABDT05ORUNUSU9OX1RJTUVPVVQATE9HSU5fVElNRU9VVABORVRXT1JLX1JFQURfVElNRU9VVABQT1NUAE1JU0RJUkVDVEVEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfTE9BRF9CQUxBTkNFRF9SRVFVRVNUAEJBRF9SRVFVRVNUAEhUVFBfUkVRVUVTVF9TRU5UX1RPX0hUVFBTX1BPUlQAUkVQT1JUAElNX0FfVEVBUE9UAFJFU0VUX0NPTlRFTlQATk9fQ09OVEVOVABQQVJUSUFMX0NPTlRFTlQASFBFX0lOVkFMSURfQ09OU1RBTlQASFBFX0NCX1JFU0VUAEdFVABIUEVfU1RSSUNUAENPTkZMSUNUAFRFTVBPUkFSWV9SRURJUkVDVABQRVJNQU5FTlRfUkVESVJFQ1QAQ09OTkVDVABNVUxUSV9TVEFUVVMASFBFX0lOVkFMSURfU1RBVFVTAFRPT19NQU5ZX1JFUVVFU1RTAEVBUkxZX0hJTlRTAFVOQVZBSUxBQkxFX0ZPUl9MRUdBTF9SRUFTT05TAE9QVElPTlMAU1dJVENISU5HX1BST1RPQ09MUwBWQVJJQU5UX0FMU09fTkVHT1RJQVRFUwBNVUxUSVBMRV9DSE9JQ0VTAElOVEVSTkFMX1NFUlZFUl9FUlJPUgBXRUJfU0VSVkVSX1VOS05PV05fRVJST1IAUkFJTEdVTl9FUlJPUgBJREVOVElUWV9QUk9WSURFUl9BVVRIRU5USUNBVElPTl9FUlJPUgBTU0xfQ0VSVElGSUNBVEVfRVJST1IASU5WQUxJRF9YX0ZPUldBUkRFRF9GT1IAU0VUX1BBUkFNRVRFUgBHRVRfUEFSQU1FVEVSAEhQRV9VU0VSAFNFRV9PVEhFUgBIUEVfQ0JfQ0hVTktfSEVBREVSAE1LQ0FMRU5EQVIAU0VUVVAAV0VCX1NFUlZFUl9JU19ET1dOAFRFQVJET1dOAEhQRV9DTE9TRURfQ09OTkVDVElPTgBIRVVSSVNUSUNfRVhQSVJBVElPTgBESVNDT05ORUNURURfT1BFUkFUSU9OAE5PTl9BVVRIT1JJVEFUSVZFX0lORk9STUFUSU9OAEhQRV9JTlZBTElEX1ZFUlNJT04ASFBFX0NCX01FU1NBR0VfQkVHSU4AU0lURV9JU19GUk9aRU4ASFBFX0lOVkFMSURfSEVBREVSX1RPS0VOAElOVkFMSURfVE9LRU4ARk9SQklEREVOAEVOSEFOQ0VfWU9VUl9DQUxNAEhQRV9JTlZBTElEX1VSTABCTE9DS0VEX0JZX1BBUkVOVEFMX0NPTlRST0wATUtDT0wAQUNMAEhQRV9JTlRFUk5BTABSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFX1VOT0ZGSUNJQUwASFBFX09LAFVOTElOSwBVTkxPQ0sAUFJJAFJFVFJZX1dJVEgASFBFX0lOVkFMSURfQ09OVEVOVF9MRU5HVEgASFBFX1VORVhQRUNURURfQ09OVEVOVF9MRU5HVEgARkxVU0gAUFJPUFBBVENIAE0tU0VBUkNIAFVSSV9UT09fTE9ORwBQUk9DRVNTSU5HAE1JU0NFTExBTkVPVVNfUEVSU0lTVEVOVF9XQVJOSU5HAE1JU0NFTExBTkVPVVNfV0FSTklORwBIUEVfSU5WQUxJRF9UUkFOU0ZFUl9FTkNPRElORwBFeHBlY3RlZCBDUkxGAEhQRV9JTlZBTElEX0NIVU5LX1NJWkUATU9WRQBDT05USU5VRQBIUEVfQ0JfU1RBVFVTX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJTX0NPTVBMRVRFAEhQRV9DQl9WRVJTSU9OX0NPTVBMRVRFAEhQRV9DQl9VUkxfQ09NUExFVEUASFBFX0NCX0NIVU5LX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX05BTUVfQ09NUExFVEUASFBFX0NCX01FU1NBR0VfQ09NUExFVEUASFBFX0NCX01FVEhPRF9DT01QTEVURQBIUEVfQ0JfSEVBREVSX0ZJRUxEX0NPTVBMRVRFAERFTEVURQBIUEVfSU5WQUxJRF9FT0ZfU1RBVEUASU5WQUxJRF9TU0xfQ0VSVElGSUNBVEUAUEFVU0UATk9fUkVTUE9OU0UAVU5TVVBQT1JURURfTUVESUFfVFlQRQBHT05FAE5PVF9BQ0NFUFRBQkxFAFNFUlZJQ0VfVU5BVkFJTEFCTEUAUkFOR0VfTk9UX1NBVElTRklBQkxFAE9SSUdJTl9JU19VTlJFQUNIQUJMRQBSRVNQT05TRV9JU19TVEFMRQBQVVJHRQBNRVJHRQBSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFAFJFUVVFU1RfSEVBREVSX1RPT19MQVJHRQBQQVlMT0FEX1RPT19MQVJHRQBJTlNVRkZJQ0lFTlRfU1RPUkFHRQBIUEVfUEFVU0VEX1VQR1JBREUASFBFX1BBVVNFRF9IMl9VUEdSQURFAFNPVVJDRQBBTk5PVU5DRQBUUkFDRQBIUEVfVU5FWFBFQ1RFRF9TUEFDRQBERVNDUklCRQBVTlNVQlNDUklCRQBSRUNPUkQASFBFX0lOVkFMSURfTUVUSE9EAE5PVF9GT1VORABQUk9QRklORABVTkJJTkQAUkVCSU5EAFVOQVVUSE9SSVpFRABNRVRIT0RfTk9UX0FMTE9XRUQASFRUUF9WRVJTSU9OX05PVF9TVVBQT1JURUQAQUxSRUFEWV9SRVBPUlRFRABBQ0NFUFRFRABOT1RfSU1QTEVNRU5URUQATE9PUF9ERVRFQ1RFRABIUEVfQ1JfRVhQRUNURUQASFBFX0xGX0VYUEVDVEVEAENSRUFURUQASU1fVVNFRABIUEVfUEFVU0VEAFRJTUVPVVRfT0NDVVJFRABQQVlNRU5UX1JFUVVJUkVEAFBSRUNPTkRJVElPTl9SRVFVSVJFRABQUk9YWV9BVVRIRU5USUNBVElPTl9SRVFVSVJFRABORVRXT1JLX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAExFTkdUSF9SRVFVSVJFRABTU0xfQ0VSVElGSUNBVEVfUkVRVUlSRUQAVVBHUkFERV9SRVFVSVJFRABQQUdFX0VYUElSRUQAUFJFQ09ORElUSU9OX0ZBSUxFRABFWFBFQ1RBVElPTl9GQUlMRUQAUkVWQUxJREFUSU9OX0ZBSUxFRABTU0xfSEFORFNIQUtFX0ZBSUxFRABMT0NLRUQAVFJBTlNGT1JNQVRJT05fQVBQTElFRABOT1RfTU9ESUZJRUQATk9UX0VYVEVOREVEAEJBTkRXSURUSF9MSU1JVF9FWENFRURFRABTSVRFX0lTX09WRVJMT0FERUQASEVBRABFeHBlY3RlZCBIVFRQLwAAXhMAACYTAAAwEAAA8BcAAJ0TAAAVEgAAORcAAPASAAAKEAAAdRIAAK0SAACCEwAATxQAAH8QAACgFQAAIxQAAIkSAACLFAAATRUAANQRAADPFAAAEBgAAMkWAADcFgAAwREAAOAXAAC7FAAAdBQAAHwVAADlFAAACBcAAB8QAABlFQAAoxQAACgVAAACFQAAmRUAACwQAACLGQAATw8AANQOAABqEAAAzhAAAAIXAACJDgAAbhMAABwTAABmFAAAVhcAAMETAADNEwAAbBMAAGgXAABmFwAAXxcAACITAADODwAAaQ4AANgOAABjFgAAyxMAAKoOAAAoFwAAJhcAAMUTAABdFgAA6BEAAGcTAABlEwAA8hYAAHMTAAAdFwAA+RYAAPMRAADPDgAAzhUAAAwSAACzEQAApREAAGEQAAAyFwAAuxMAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIDAgICAgIAAAICAAICAAICAgICAgICAgIABAAAAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAACAAICAgICAAACAgACAgACAgICAgICAgICAAMABAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbG9zZWVlcC1hbGl2ZQAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEBAQEBAQEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBY2h1bmtlZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEAAAEBAAEBAAEBAQEBAQEBAQEAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AAAAAAAAAAAAAAAAAAAByYW5zZmVyLWVuY29kaW5ncGdyYWRlDQoNCg0KU00NCg0KVFRQL0NFL1RTUC8AAAAAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQIAAQMAAAAAAAAAAAAAAAAAAAAAAAAEAQEFAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAAAAQAAAgAAAAAAAAAAAAAAAAAAAAAAAAMEAAAEBAQEBAQEBAQEBAUEBAQEBAQEBAQEBAQABAAGBwQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAABAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAIAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOT1VOQ0VFQ0tPVVRORUNURVRFQ1JJQkVMVVNIRVRFQURTRUFSQ0hSR0VDVElWSVRZTEVOREFSVkVPVElGWVBUSU9OU0NIU0VBWVNUQVRDSEdFT1JESVJFQ1RPUlRSQ0hQQVJBTUVURVJVUkNFQlNDUklCRUFSRE9XTkFDRUlORE5LQ0tVQlNDUklCRUhUVFAvQURUUC8="},3434:a=>{a.exports="AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAwABBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJs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IAH9CwMAIABBMGogAf0LAwAgAEEgaiAB/QsDACAAQd0BNgIcQQALewEBfwJAIAAoAgwiAw0AAkAgACgCBEUNACAAIAE2AgQLAkAgACABIAIQxICAgAAiAw0AIAAoAgwPCyAAIAM2AhxBACEDIAAoAgQiAUUNACAAIAEgAiAAKAIIEYGAgIAAACIBRQ0AIAAgAjYCFCAAIAE2AgwgASEDCyADC+TzAQMOfwN+BH8jgICAgABBEGsiAySAgICAACABIQQgASEFIAEhBiABIQcgASEIIAEhCSABIQogASELIAEhDCABIQ0gASEOIAEhDwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAKAIcIhBBf2oO3QHaAQHZAQIDBAUGBwgJCgsMDQ7YAQ8Q1wEREtYBExQVFhcYGRob4AHfARwdHtUBHyAhIiMkJdQBJicoKSorLNMB0gEtLtEB0AEvMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUbbAUdISUrPAc4BS80BTMwBTU5PUFFSU1RVVldYWVpbXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gAGBAYIBgwGEAYUBhgGHAYgBiQGKAYsBjAGNAY4BjwGQAZEB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QAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIBAOxwEAAQID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YWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fdmFsdWVgIGNhbGxiYWNrIGVycm9yAGBvbl9zdGF0dXNfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl92ZXJzaW9uX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdXJsX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAEVtcHR5IENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhcmFjdGVyIGluIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBNaXNzaW5nIGV4cGVjdGVkIExGIGFmdGVyIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AgaGVhZGVyIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGUgdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZWQgdmFsdWUAUGF1c2VkIGJ5IG9uX2hlYWRlcnNfY29tcGxldGUASW52YWxpZCBFT0Ygc3RhdGUAb25fcmVzZXQgcGF1c2UAb25fY2h1bmtfaGVhZGVyIHBhdXNlAG9uX21lc3NhZ2VfYmVnaW4gcGF1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlIHBhdXNlAG9uX3N0YXR1c19jb21wbGV0ZSBwYXVzZQBvbl92ZXJzaW9uX2NvbXBsZXRlIHBhdXNlAG9uX3VybF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGUgcGF1c2UAb25fbWVzc2FnZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXRob2RfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lIHBhdXNlAFVuZXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgc3RhcnQgbGluZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgbmFtZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AAU1dJVENIX1BST1hZAFVTRV9QUk9YWQBNS0FDVElWSVRZAFVOUFJPQ0VTU0FCTEVfRU5USVRZAENPUFkATU9WRURfUEVSTUFORU5UTFkAVE9PX0VBUkxZAE5PVElGWQBGQUlMRURfREVQRU5ERU5DWQBCQURfR0FURVdBWQBQTEFZAFBVVABDSEVDS09VVABHQVRFV0FZX1RJTUVPVVQAUkVRVUVTVF9USU1FT1VUAE5FVFdPUktfQ09OTkVDVF9USU1FT1VUAENPTk5FQ1RJT05fVElNRU9VVABMT0dJTl9USU1FT1VUAE5FVFdPUktfUkVBRF9USU1FT1VUAFBPU1QATUlTRElSRUNURURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9MT0FEX0JBTEFOQ0VEX1JFUVVFU1QAQkFEX1JFUVVFU1QASFRUUF9SRVFVRVNUX1NFTlRfVE9fSFRUUFNfUE9SVABSRVBPUlQASU1fQV9URUFQT1QAUkVTRVRfQ09OVEVOVABOT19DT05URU5UAFBBUlRJQUxfQ09OVEVOVABIUEVfSU5WQUxJRF9DT05TVEFOVABIUEVfQ0JfUkVTRVQAR0VUAEhQRV9TVFJJQ1QAQ09ORkxJQ1QAVEVNUE9SQVJZX1JFRElSRUNUAFBFUk1BTkVOVF9SRURJUkVDVABDT05ORUNUAE1VTFRJX1NUQVRVUwBIUEVfSU5WQUxJRF9TVEFUVVMAVE9PX01BTllfUkVRVUVTVFMARUFSTFlfSElOVFMAVU5BVkFJTEFCTEVfRk9SX0xFR0FMX1JFQVNPTlMAT1BUSU9OUwBTV0lUQ0hJTkdfUFJPVE9DT0xTAFZBUklBTlRfQUxTT19ORUdPVElBVEVTAE1VTFRJUExFX0NIT0lDRVMASU5URVJOQUxfU0VSVkVSX0VSUk9SAFdFQl9TRVJWRVJfVU5LTk9XTl9FUlJPUgBSQUlMR1VOX0VSUk9SAElERU5USVRZX1BST1ZJREVSX0FVVEhFTlRJQ0FUSU9OX0VSUk9SAFNTTF9DRVJUSUZJQ0FURV9FUlJPUgBJTlZBTElEX1hfRk9SV0FSREVEX0ZPUgBTRVRfUEFSQU1FVEVSAEdFVF9QQVJBTUVURVIASFBFX1VTRVIAU0VFX09USEVSAEhQRV9DQl9DSFVOS19IRUFERVIATUtDQUxFTkRBUgBTRVRVUABXRUJfU0VSVkVSX0lTX0RPV04AVEVBUkRPV04ASFBFX0NMT1NFRF9DT05ORUNUSU9OAEhFVVJJU1RJQ19FWFBJUkFUSU9OAERJU0NPTk5FQ1RFRF9PUEVSQVRJT04ATk9OX0FVVEhPUklUQVRJVkVfSU5GT1JNQVRJT04ASFBFX0lOVkFMSURfVkVSU0lPTgBIUEVfQ0JfTUVTU0FHRV9CRUdJTgBTSVRFX0lTX0ZST1pFTgBIUEVfSU5WQUxJRF9IRUFERVJfVE9LRU4ASU5WQUxJRF9UT0tFTgBGT1JCSURERU4ARU5IQU5DRV9ZT1VSX0NBTE0ASFBFX0lOVkFMSURfVVJMAEJMT0NLRURfQllfUEFSRU5UQUxfQ09OVFJPTABNS0NPTABBQ0wASFBFX0lOVEVSTkFMAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0VfVU5PRkZJQ0lBTABIUEVfT0sAVU5MSU5LAFVOTE9DSwBQUkkAUkVUUllfV0lUSABIUEVfSU5WQUxJRF9DT05URU5UX0xFTkdUSABIUEVfVU5FWFBFQ1RFRF9DT05URU5UX0xFTkdUSABGTFVTSABQUk9QUEFUQ0gATS1TRUFSQ0gAVVJJX1RPT19MT05HAFBST0NFU1NJTkcATUlTQ0VMTEFORU9VU19QRVJTSVNURU5UX1dBUk5JTkcATUlTQ0VMTEFORU9VU19XQVJOSU5HAEhQRV9JTlZBTElEX1RSQU5TRkVSX0VOQ09ESU5HAEV4cGVjdGVkIENSTEYASFBFX0lOVkFMSURfQ0hVTktfU0laRQBNT1ZFAENPTlRJTlVFAEhQRV9DQl9TVEFUVVNfQ09NUExFVEUASFBFX0NCX0hFQURFUlNfQ09NUExFVEUASFBFX0NCX1ZFUlNJT05fQ09NUExFVEUASFBFX0NCX1VSTF9DT01QTEVURQBIUEVfQ0JfQ0hVTktfQ09NUExFVEUASFBFX0NCX0hFQURFUl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fTkFNRV9DT01QTEVURQBIUEVfQ0JfTUVTU0FHRV9DT01QTEVURQBIUEVfQ0JfTUVUSE9EX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfRklFTERfQ09NUExFVEUAREVMRVRFAEhQRV9JTlZBTElEX0VPRl9TVEFURQBJTlZBTElEX1NTTF9DRVJUSUZJQ0FURQBQQVVTRQBOT19SRVNQT05TRQBVTlNVUFBPUlRFRF9NRURJQV9UWVBFAEdPTkUATk9UX0FDQ0VQVEFCTEUAU0VSVklDRV9VTkFWQUlMQUJMRQBSQU5HRV9OT1RfU0FUSVNGSUFCTEUAT1JJR0lOX0lTX1VOUkVBQ0hBQkxFAFJFU1BPTlNFX0lTX1NUQUxFAFBVUkdFAE1FUkdFAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0UAUkVRVUVTVF9IRUFERVJfVE9PX0xBUkdFAFBBWUxPQURfVE9PX0xBUkdFAElOU1VGRklDSUVOVF9TVE9SQUdFAEhQRV9QQVVTRURfVVBHUkFERQBIUEVfUEFVU0VEX0gyX1VQR1JBREUAU09VUkNFAEFOTk9VTkNFAFRSQUNFAEhQRV9VTkVYUEVDVEVEX1NQQUNFAERFU0NSSUJFAFVOU1VCU0NSSUJFAFJFQ09SRABIUEVfSU5WQUxJRF9NRVRIT0QATk9UX0ZPVU5EAFBST1BGSU5EAFVOQklORABSRUJJTkQAVU5BVVRIT1JJWkVEAE1FVEhPRF9OT1RfQUxMT1dFRABIVFRQX1ZFUlNJT05fTk9UX1NVUFBPUlRFRABBTFJFQURZX1JFUE9SVEVEAEFDQ0VQVEVEAE5PVF9JTVBMRU1FTlRFRABMT09QX0RFVEVDVEVEAEhQRV9DUl9FWFBFQ1RFRABIUEVfTEZfRVhQRUNURUQAQ1JFQVRFRABJTV9VU0VEAEhQRV9QQVVTRUQAVElNRU9VVF9PQ0NVUkVEAFBBWU1FTlRfUkVRVUlSRUQAUFJFQ09ORElUSU9OX1JFUVVJUkVEAFBST1hZX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAE5FVFdPUktfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATEVOR1RIX1JFUVVJUkVEAFNTTF9DRVJUSUZJQ0FURV9SRVFVSVJFRABVUEdSQURFX1JFUVVJUkVEAFBBR0VfRVhQSVJFRABQUkVDT05ESVRJT05fRkFJTEVEAEVYUEVDVEFUSU9OX0ZBSUxFRABSRVZBTElEQVRJT05fRkFJTEVEAFNTTF9IQU5EU0hBS0VfRkFJTEVEAExPQ0tFRABUUkFOU0ZPUk1BVElPTl9BUFBMSUVEAE5PVF9NT0RJRklFRABOT1RfRVhURU5ERUQAQkFORFdJRFRIX0xJTUlUX0VYQ0VFREVEAFNJVEVfSVNfT1ZFUkxPQURFRABIRUFEAEV4cGVjdGVkIEhUVFAvAABeEwAAJhMAADAQAADwFwAAnRMAABUSAAA5FwAA8BIAAAoQAAB1EgAArRIAAIITAABPFAAAfxAAAKAVAAAjFAAAiRIAAIsUAABNFQAA1BEAAM8UAAAQGAAAyRYAANwWAADBEQAA4BcAALsUAAB0FAAAfBUAAOUUAAAIFwAAHxAAAGUVAACjFAAAKBUAAAIVAACZFQAALBAAAIsZAABPDwAA1A4AAGoQAADOEAAAAhcAAIkOAABuEwAAHBMAAGYUAABWFwAAwRMAAM0TAABsEwAAaBcAAGYXAABfFwAAIhMAAM4PAABpDgAA2A4AAGMWAADLEwAAqg4AACgXAAAmFwAAxRMAAF0WAADoEQAAZxMAAGUTAADyFgAAcxMAAB0XAAD5FgAA8xEAAM8OAADOFQAADBIAALMRAAClEQAAYRAAADIXAAC7EwAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAgMCAgICAgAAAgIAAgIAAgICAgICAgICAgAEAAAAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAAIAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIAAgICAgIAAAICAAICAAICAgICAgICAgIAAwAEAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsb3NlZWVwLWFsaXZlAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQFjaHVua2VkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVjdGlvbmVudC1sZW5ndGhvbnJveHktY29ubmVjdGlvbgAAAAAAAAAAAAAAAAAAAHJhbnNmZXItZW5jb2RpbmdwZ3JhZGUNCg0KDQpTTQ0KDQpUVFAvQ0UvVFNQLwAAAAAAAAAAAAAAAAECAAEDAAAAAAAAAAAAAAAAAAAAAAAABAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQUBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAABAAACAAAAAAAAAAAAAAAAAAAAAAAAAwQAAAQEBAQEBAQEBAQEBQQEBAQEBAQEBAQEBAAEAAYHBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAgAAAAACAAAAAAAAAAAAAAAAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE5PVU5DRUVDS09VVE5FQ1RFVEVDUklCRUxVU0hFVEVBRFNFQVJDSFJHRUNUSVZJVFlMRU5EQVJWRU9USUZZUFRJT05TQ0hTRUFZU1RBVENIR0VPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFSFRUUC9BRFRQLw=="},172:(a,C)=>{Object.defineProperty(C,"__esModule",{value:true});C.enumToMap=void 0;function enumToMap(a){const C={};Object.keys(a).forEach((q=>{const re=a[q];if(typeof re==="number"){C[q]=re}}));return C}C.enumToMap=enumToMap},7501:(a,C,q)=>{const{kClients:re}=q(6443);const ae=q(9965);const{kAgent:Ue,kMockAgentSet:lt,kMockAgentGet:Pt,kDispatches:Wt,kIsMockActive:Ar,kNetConnect:Er,kGetNetConnect:Br,kOptions:Qr,kFactory:Ir}=q(1117);const Dr=q(7365);const kr=q(4004);const{matchValue:Fr,buildMockOptions:Nr}=q(3397);const{InvalidArgumentError:Ur,UndiciError:Lr}=q(8707);const Mr=q(992);const Pr=q(1529);const Gr=q(6142);class FakeWeakRef{constructor(a){this.value=a}deref(){return this.value}}class MockAgent extends Mr{constructor(a){super(a);this[Er]=true;this[Ar]=true;if(a&&a.agent&&typeof a.agent.dispatch!=="function"){throw new Ur("Argument opts.agent must implement Agent")}const C=a&&a.agent?a.agent:new ae(a);this[Ue]=C;this[re]=C[re];this[Qr]=Nr(a)}get(a){let C=this[Pt](a);if(!C){C=this[Ir](a);this[lt](a,C)}return C}dispatch(a,C){this.get(a.origin);return this[Ue].dispatch(a,C)}async close(){await this[Ue].close();this[re].clear()}deactivate(){this[Ar]=false}activate(){this[Ar]=true}enableNetConnect(a){if(typeof a==="string"||typeof a==="function"||a instanceof RegExp){if(Array.isArray(this[Er])){this[Er].push(a)}else{this[Er]=[a]}}else if(typeof a==="undefined"){this[Er]=true}else{throw new Ur("Unsupported matcher. Must be one of String|Function|RegExp.")}}disableNetConnect(){this[Er]=false}get isMockActive(){return this[Ar]}[lt](a,C){this[re].set(a,new FakeWeakRef(C))}[Ir](a){const C=Object.assign({agent:this},this[Qr]);return this[Qr]&&this[Qr].connections===1?new Dr(a,C):new kr(a,C)}[Pt](a){const C=this[re].get(a);if(C){return C.deref()}if(typeof a!=="string"){const C=this[Ir]("http://localhost:9999");this[lt](a,C);return C}for(const[C,q]of Array.from(this[re])){const re=q.deref();if(re&&typeof C!=="string"&&Fr(C,a)){const C=this[Ir](a);this[lt](a,C);C[Wt]=re[Wt];return C}}}[Br](){return this[Er]}pendingInterceptors(){const a=this[re];return Array.from(a.entries()).flatMap((([a,C])=>C.deref()[Wt].map((C=>({...C,origin:a}))))).filter((({pending:a})=>a))}assertNoPendingInterceptors({pendingInterceptorsFormatter:a=new Gr}={}){const C=this.pendingInterceptors();if(C.length===0){return}const q=new Pr("interceptor","interceptors").pluralize(C.length);throw new Lr(`\n${q.count} ${q.noun} ${q.is} pending:\n\n${a.format(C)}\n`.trim())}}a.exports=MockAgent},7365:(a,C,q)=>{const{promisify:re}=q(9023);const ae=q(6197);const{buildMockDispatch:Ue}=q(3397);const{kDispatches:lt,kMockAgent:Pt,kClose:Wt,kOriginalClose:Ar,kOrigin:Er,kOriginalDispatch:Br,kConnected:Qr}=q(1117);const{MockInterceptor:Ir}=q(1511);const Dr=q(6443);const{InvalidArgumentError:kr}=q(8707);class MockClient extends ae{constructor(a,C){super(a,C);if(!C||!C.agent||typeof C.agent.dispatch!=="function"){throw new kr("Argument opts.agent must implement Agent")}this[Pt]=C.agent;this[Er]=a;this[lt]=[];this[Qr]=1;this[Br]=this.dispatch;this[Ar]=this.close.bind(this);this.dispatch=Ue.call(this);this.close=this[Wt]}get[Dr.kConnected](){return this[Qr]}intercept(a){return new Ir(a,this[lt])}async[Wt](){await re(this[Ar])();this[Qr]=0;this[Pt][Dr.kClients].delete(this[Er])}}a.exports=MockClient},2429:(a,C,q)=>{const{UndiciError:re}=q(8707);class MockNotMatchedError extends re{constructor(a){super(a);Error.captureStackTrace(this,MockNotMatchedError);this.name="MockNotMatchedError";this.message=a||"The request does not match any registered mock dispatches";this.code="UND_MOCK_ERR_MOCK_NOT_MATCHED"}}a.exports={MockNotMatchedError:MockNotMatchedError}},1511:(a,C,q)=>{const{getResponseData:re,buildKey:ae,addMockDispatch:Ue}=q(3397);const{kDispatches:lt,kDispatchKey:Pt,kDefaultHeaders:Wt,kDefaultTrailers:Ar,kContentLength:Er,kMockDispatch:Br}=q(1117);const{InvalidArgumentError:Qr}=q(8707);const{buildURL:Ir}=q(3440);class MockScope{constructor(a){this[Br]=a}delay(a){if(typeof a!=="number"||!Number.isInteger(a)||a<=0){throw new Qr("waitInMs must be a valid integer > 0")}this[Br].delay=a;return this}persist(){this[Br].persist=true;return this}times(a){if(typeof a!=="number"||!Number.isInteger(a)||a<=0){throw new Qr("repeatTimes must be a valid integer > 0")}this[Br].times=a;return this}}class MockInterceptor{constructor(a,C){if(typeof a!=="object"){throw new Qr("opts must be an object")}if(typeof a.path==="undefined"){throw new Qr("opts.path must be defined")}if(typeof a.method==="undefined"){a.method="GET"}if(typeof a.path==="string"){if(a.query){a.path=Ir(a.path,a.query)}else{const C=new URL(a.path,"data://");a.path=C.pathname+C.search}}if(typeof a.method==="string"){a.method=a.method.toUpperCase()}this[Pt]=ae(a);this[lt]=C;this[Wt]={};this[Ar]={};this[Er]=false}createMockScopeDispatchData(a,C,q={}){const ae=re(C);const Ue=this[Er]?{"content-length":ae.length}:{};const lt={...this[Wt],...Ue,...q.headers};const Pt={...this[Ar],...q.trailers};return{statusCode:a,data:C,headers:lt,trailers:Pt}}validateReplyParameters(a,C,q){if(typeof a==="undefined"){throw new Qr("statusCode must be defined")}if(typeof C==="undefined"){throw new Qr("data must be defined")}if(typeof q!=="object"){throw new Qr("responseOptions must be an object")}}reply(a){if(typeof a==="function"){const wrappedDefaultsCallback=C=>{const q=a(C);if(typeof q!=="object"){throw new Qr("reply options callback must return an object")}const{statusCode:re,data:ae="",responseOptions:Ue={}}=q;this.validateReplyParameters(re,ae,Ue);return{...this.createMockScopeDispatchData(re,ae,Ue)}};const C=Ue(this[lt],this[Pt],wrappedDefaultsCallback);return new MockScope(C)}const[C,q="",re={}]=[...arguments];this.validateReplyParameters(C,q,re);const ae=this.createMockScopeDispatchData(C,q,re);const Wt=Ue(this[lt],this[Pt],ae);return new MockScope(Wt)}replyWithError(a){if(typeof a==="undefined"){throw new Qr("error must be defined")}const C=Ue(this[lt],this[Pt],{error:a});return new MockScope(C)}defaultReplyHeaders(a){if(typeof a==="undefined"){throw new Qr("headers must be defined")}this[Wt]=a;return this}defaultReplyTrailers(a){if(typeof a==="undefined"){throw new Qr("trailers must be defined")}this[Ar]=a;return this}replyContentLength(){this[Er]=true;return this}}a.exports.MockInterceptor=MockInterceptor;a.exports.MockScope=MockScope},4004:(a,C,q)=>{const{promisify:re}=q(9023);const ae=q(5076);const{buildMockDispatch:Ue}=q(3397);const{kDispatches:lt,kMockAgent:Pt,kClose:Wt,kOriginalClose:Ar,kOrigin:Er,kOriginalDispatch:Br,kConnected:Qr}=q(1117);const{MockInterceptor:Ir}=q(1511);const Dr=q(6443);const{InvalidArgumentError:kr}=q(8707);class MockPool extends ae{constructor(a,C){super(a,C);if(!C||!C.agent||typeof C.agent.dispatch!=="function"){throw new kr("Argument opts.agent must implement Agent")}this[Pt]=C.agent;this[Er]=a;this[lt]=[];this[Qr]=1;this[Br]=this.dispatch;this[Ar]=this.close.bind(this);this.dispatch=Ue.call(this);this.close=this[Wt]}get[Dr.kConnected](){return this[Qr]}intercept(a){return new Ir(a,this[lt])}async[Wt](){await re(this[Ar])();this[Qr]=0;this[Pt][Dr.kClients].delete(this[Er])}}a.exports=MockPool},1117:a=>{a.exports={kAgent:Symbol("agent"),kOptions:Symbol("options"),kFactory:Symbol("factory"),kDispatches:Symbol("dispatches"),kDispatchKey:Symbol("dispatch key"),kDefaultHeaders:Symbol("default headers"),kDefaultTrailers:Symbol("default trailers"),kContentLength:Symbol("content length"),kMockAgent:Symbol("mock agent"),kMockAgentSet:Symbol("mock agent set"),kMockAgentGet:Symbol("mock agent get"),kMockDispatch:Symbol("mock dispatch"),kClose:Symbol("close"),kOriginalClose:Symbol("original agent close"),kOrigin:Symbol("origin"),kIsMockActive:Symbol("is mock active"),kNetConnect:Symbol("net connect"),kGetNetConnect:Symbol("get net connect"),kConnected:Symbol("connected")}},3397:(a,C,q)=>{const{MockNotMatchedError:re}=q(2429);const{kDispatches:ae,kMockAgent:Ue,kOriginalDispatch:lt,kOrigin:Pt,kGetNetConnect:Wt}=q(1117);const{buildURL:Ar,nop:Er}=q(3440);const{STATUS_CODES:Br}=q(8611);const{types:{isPromise:Qr}}=q(9023);function matchValue(a,C){if(typeof a==="string"){return a===C}if(a instanceof RegExp){return a.test(C)}if(typeof a==="function"){return a(C)===true}return false}function lowerCaseEntries(a){return Object.fromEntries(Object.entries(a).map((([a,C])=>[a.toLocaleLowerCase(),C])))}function getHeaderByName(a,C){if(Array.isArray(a)){for(let q=0;q!a)).filter((({path:a})=>matchValue(safeUrl(a),ae)));if(Ue.length===0){throw new re(`Mock dispatch not matched for path '${ae}'`)}Ue=Ue.filter((({method:a})=>matchValue(a,C.method)));if(Ue.length===0){throw new re(`Mock dispatch not matched for method '${C.method}'`)}Ue=Ue.filter((({body:a})=>typeof a!=="undefined"?matchValue(a,C.body):true));if(Ue.length===0){throw new re(`Mock dispatch not matched for body '${C.body}'`)}Ue=Ue.filter((a=>matchHeaders(a,C.headers)));if(Ue.length===0){throw new re(`Mock dispatch not matched for headers '${typeof C.headers==="object"?JSON.stringify(C.headers):C.headers}'`)}return Ue[0]}function addMockDispatch(a,C,q){const re={timesInvoked:0,times:1,persist:false,consumed:false};const ae=typeof q==="function"?{callback:q}:{...q};const Ue={...re,...C,pending:true,data:{error:null,...ae}};a.push(Ue);return Ue}function deleteMockDispatch(a,C){const q=a.findIndex((a=>{if(!a.consumed){return false}return matchKey(a,C)}));if(q!==-1){a.splice(q,1)}}function buildKey(a){const{path:C,method:q,body:re,headers:ae,query:Ue}=a;return{path:C,method:q,body:re,headers:ae,query:Ue}}function generateKeyValues(a){return Object.entries(a).reduce(((a,[C,q])=>[...a,Buffer.from(`${C}`),Array.isArray(q)?q.map((a=>Buffer.from(`${a}`))):Buffer.from(`${q}`)]),[])}function getStatusText(a){return Br[a]||"unknown"}async function getResponse(a){const C=[];for await(const q of a){C.push(q)}return Buffer.concat(C).toString("utf8")}function mockDispatch(a,C){const q=buildKey(a);const re=getMockDispatch(this[ae],q);re.timesInvoked++;if(re.data.callback){re.data={...re.data,...re.data.callback(a)}}const{data:{statusCode:Ue,data:lt,headers:Pt,trailers:Wt,error:Ar},delay:Br,persist:Ir}=re;const{timesInvoked:Dr,times:kr}=re;re.consumed=!Ir&&Dr>=kr;re.pending=Dr0){setTimeout((()=>{handleReply(this[ae])}),Br)}else{handleReply(this[ae])}function handleReply(re,ae=lt){const Ar=Array.isArray(a.headers)?buildHeadersFromArray(a.headers):a.headers;const Br=typeof ae==="function"?ae({...a,headers:Ar}):ae;if(Qr(Br)){Br.then((a=>handleReply(re,a)));return}const Ir=getResponseData(Br);const Dr=generateKeyValues(Pt);const kr=generateKeyValues(Wt);C.abort=Er;C.onHeaders(Ue,Dr,resume,getStatusText(Ue));C.onData(Buffer.from(Ir));C.onComplete(kr);deleteMockDispatch(re,q)}function resume(){}return true}function buildMockDispatch(){const a=this[Ue];const C=this[Pt];const q=this[lt];return function dispatch(ae,Ue){if(a.isMockActive){try{mockDispatch.call(this,ae,Ue)}catch(lt){if(lt instanceof re){const Pt=a[Wt]();if(Pt===false){throw new re(`${lt.message}: subsequent request to origin ${C} was not allowed (net.connect disabled)`)}if(checkNetConnect(Pt,C)){q.call(this,ae,Ue)}else{throw new re(`${lt.message}: subsequent request to origin ${C} was not allowed (net.connect is not enabled for this origin)`)}}else{throw lt}}}else{q.call(this,ae,Ue)}}}function checkNetConnect(a,C){const q=new URL(C);if(a===true){return true}else if(Array.isArray(a)&&a.some((a=>matchValue(a,q.host)))){return true}return false}function buildMockOptions(a){if(a){const{agent:C,...q}=a;return q}}a.exports={getResponseData:getResponseData,getMockDispatch:getMockDispatch,addMockDispatch:addMockDispatch,deleteMockDispatch:deleteMockDispatch,buildKey:buildKey,generateKeyValues:generateKeyValues,matchValue:matchValue,getResponse:getResponse,getStatusText:getStatusText,mockDispatch:mockDispatch,buildMockDispatch:buildMockDispatch,checkNetConnect:checkNetConnect,buildMockOptions:buildMockOptions,getHeaderByName:getHeaderByName}},6142:(a,C,q)=>{const{Transform:re}=q(2203);const{Console:ae}=q(4236);a.exports=class PendingInterceptorsFormatter{constructor({disableColors:a}={}){this.transform=new re({transform(a,C,q){q(null,a)}});this.logger=new ae({stdout:this.transform,inspectOptions:{colors:!a&&!process.env.CI}})}format(a){const C=a.map((({method:a,path:C,data:{statusCode:q},persist:re,times:ae,timesInvoked:Ue,origin:lt})=>({Method:a,Origin:lt,Path:C,"Status code":q,Persistent:re?"✅":"❌",Invocations:Ue,Remaining:re?Infinity:ae-Ue})));this.logger.table(C);return this.transform.read().toString()}}},1529:a=>{const C={pronoun:"it",is:"is",was:"was",this:"this"};const q={pronoun:"they",is:"are",was:"were",this:"these"};a.exports=class Pluralizer{constructor(a,C){this.singular=a;this.plural=C}pluralize(a){const re=a===1;const ae=re?C:q;const Ue=re?this.singular:this.plural;return{...ae,count:a,noun:Ue}}}},4869:a=>{const C=2048;const q=C-1;class FixedCircularBuffer{constructor(){this.bottom=0;this.top=0;this.list=new Array(C);this.next=null}isEmpty(){return this.top===this.bottom}isFull(){return(this.top+1&q)===this.bottom}push(a){this.list[this.top]=a;this.top=this.top+1&q}shift(){const a=this.list[this.bottom];if(a===undefined)return null;this.list[this.bottom]=undefined;this.bottom=this.bottom+1&q;return a}}a.exports=class FixedQueue{constructor(){this.head=this.tail=new FixedCircularBuffer}isEmpty(){return this.head.isEmpty()}push(a){if(this.head.isFull()){this.head=this.head.next=new FixedCircularBuffer}this.head.push(a)}shift(){const a=this.tail;const C=a.shift();if(a.isEmpty()&&a.next!==null){this.tail=a.next}return C}}},8640:(a,C,q)=>{const re=q(1);const ae=q(4869);const{kConnected:Ue,kSize:lt,kRunning:Pt,kPending:Wt,kQueued:Ar,kBusy:Er,kFree:Br,kUrl:Qr,kClose:Ir,kDestroy:Dr,kDispatch:kr}=q(6443);const Fr=q(4622);const Nr=Symbol("clients");const Ur=Symbol("needDrain");const Lr=Symbol("queue");const Mr=Symbol("closed resolve");const Pr=Symbol("onDrain");const Gr=Symbol("onConnect");const Or=Symbol("onDisconnect");const Vr=Symbol("onConnectionError");const Hr=Symbol("get dispatcher");const xr=Symbol("add client");const Yr=Symbol("remove client");const Jr=Symbol("stats");class PoolBase extends re{constructor(){super();this[Lr]=new ae;this[Nr]=[];this[Ar]=0;const a=this;this[Pr]=function onDrain(C,q){const re=a[Lr];let ae=false;while(!ae){const C=re.shift();if(!C){break}a[Ar]--;ae=!this.dispatch(C.opts,C.handler)}this[Ur]=ae;if(!this[Ur]&&a[Ur]){a[Ur]=false;a.emit("drain",C,[a,...q])}if(a[Mr]&&re.isEmpty()){Promise.all(a[Nr].map((a=>a.close()))).then(a[Mr])}};this[Gr]=(C,q)=>{a.emit("connect",C,[a,...q])};this[Or]=(C,q,re)=>{a.emit("disconnect",C,[a,...q],re)};this[Vr]=(C,q,re)=>{a.emit("connectionError",C,[a,...q],re)};this[Jr]=new Fr(this)}get[Er](){return this[Ur]}get[Ue](){return this[Nr].filter((a=>a[Ue])).length}get[Br](){return this[Nr].filter((a=>a[Ue]&&!a[Ur])).length}get[Wt](){let a=this[Ar];for(const{[Wt]:C}of this[Nr]){a+=C}return a}get[Pt](){let a=0;for(const{[Pt]:C}of this[Nr]){a+=C}return a}get[lt](){let a=this[Ar];for(const{[lt]:C}of this[Nr]){a+=C}return a}get stats(){return this[Jr]}async[Ir](){if(this[Lr].isEmpty()){return Promise.all(this[Nr].map((a=>a.close())))}else{return new Promise((a=>{this[Mr]=a}))}}async[Dr](a){while(true){const C=this[Lr].shift();if(!C){break}C.handler.onError(a)}return Promise.all(this[Nr].map((C=>C.destroy(a))))}[kr](a,C){const q=this[Hr]();if(!q){this[Ur]=true;this[Lr].push({opts:a,handler:C});this[Ar]++}else if(!q.dispatch(a,C)){q[Ur]=true;this[Ur]=!this[Hr]()}return!this[Ur]}[xr](a){a.on("drain",this[Pr]).on("connect",this[Gr]).on("disconnect",this[Or]).on("connectionError",this[Vr]);this[Nr].push(a);if(this[Ur]){process.nextTick((()=>{if(this[Ur]){this[Pr](a[Qr],[this,a])}}))}return this}[Yr](a){a.close((()=>{const C=this[Nr].indexOf(a);if(C!==-1){this[Nr].splice(C,1)}}));this[Ur]=this[Nr].some((a=>!a[Ur]&&a.closed!==true&&a.destroyed!==true))}}a.exports={PoolBase:PoolBase,kClients:Nr,kNeedDrain:Ur,kAddClient:xr,kRemoveClient:Yr,kGetDispatcher:Hr}},4622:(a,C,q)=>{const{kFree:re,kConnected:ae,kPending:Ue,kQueued:lt,kRunning:Pt,kSize:Wt}=q(6443);const Ar=Symbol("pool");class PoolStats{constructor(a){this[Ar]=a}get connected(){return this[Ar][ae]}get free(){return this[Ar][re]}get pending(){return this[Ar][Ue]}get queued(){return this[Ar][lt]}get running(){return this[Ar][Pt]}get size(){return this[Ar][Wt]}}a.exports=PoolStats},5076:(a,C,q)=>{const{PoolBase:re,kClients:ae,kNeedDrain:Ue,kAddClient:lt,kGetDispatcher:Pt}=q(8640);const Wt=q(6197);const{InvalidArgumentError:Ar}=q(8707);const Er=q(3440);const{kUrl:Br,kInterceptors:Qr}=q(6443);const Ir=q(9136);const Dr=Symbol("options");const kr=Symbol("connections");const Fr=Symbol("factory");function defaultFactory(a,C){return new Wt(a,C)}class Pool extends re{constructor(a,{connections:C,factory:q=defaultFactory,connect:re,connectTimeout:Ue,tls:lt,maxCachedSessions:Pt,socketPath:Wt,autoSelectFamily:Nr,autoSelectFamilyAttemptTimeout:Ur,allowH2:Lr,...Mr}={}){super();if(C!=null&&(!Number.isFinite(C)||C<0)){throw new Ar("invalid connections")}if(typeof q!=="function"){throw new Ar("factory must be a function.")}if(re!=null&&typeof re!=="function"&&typeof re!=="object"){throw new Ar("connect must be a function or an object")}if(typeof re!=="function"){re=Ir({...lt,maxCachedSessions:Pt,allowH2:Lr,socketPath:Wt,timeout:Ue,...Er.nodeHasAutoSelectFamily&&Nr?{autoSelectFamily:Nr,autoSelectFamilyAttemptTimeout:Ur}:undefined,...re})}this[Qr]=Mr.interceptors&&Mr.interceptors.Pool&&Array.isArray(Mr.interceptors.Pool)?Mr.interceptors.Pool:[];this[kr]=C||null;this[Br]=Er.parseOrigin(a);this[Dr]={...Er.deepClone(Mr),connect:re,allowH2:Lr};this[Dr].interceptors=Mr.interceptors?{...Mr.interceptors}:undefined;this[Fr]=q;this.on("connectionError",((a,C,q)=>{for(const a of C){const C=this[ae].indexOf(a);if(C!==-1){this[ae].splice(C,1)}}}))}[Pt](){let a=this[ae].find((a=>!a[Ue]));if(a){return a}if(!this[kr]||this[ae].length{const{kProxy:re,kClose:ae,kDestroy:Ue,kInterceptors:lt}=q(6443);const{URL:Pt}=q(7016);const Wt=q(9965);const Ar=q(5076);const Er=q(1);const{InvalidArgumentError:Br,RequestAbortedError:Qr}=q(8707);const Ir=q(9136);const Dr=Symbol("proxy agent");const kr=Symbol("proxy client");const Fr=Symbol("proxy headers");const Nr=Symbol("request tls settings");const Ur=Symbol("proxy tls settings");const Lr=Symbol("connect endpoint function");function defaultProtocolPort(a){return a==="https:"?443:80}function buildProxyOptions(a){if(typeof a==="string"){a={uri:a}}if(!a||!a.uri){throw new Br("Proxy opts.uri is mandatory")}return{uri:a.uri,protocol:a.protocol||"https"}}function defaultFactory(a,C){return new Ar(a,C)}class ProxyAgent extends Er{constructor(a){super(a);this[re]=buildProxyOptions(a);this[Dr]=new Wt(a);this[lt]=a.interceptors&&a.interceptors.ProxyAgent&&Array.isArray(a.interceptors.ProxyAgent)?a.interceptors.ProxyAgent:[];if(typeof a==="string"){a={uri:a}}if(!a||!a.uri){throw new Br("Proxy opts.uri is mandatory")}const{clientFactory:C=defaultFactory}=a;if(typeof C!=="function"){throw new Br("Proxy opts.clientFactory must be a function.")}this[Nr]=a.requestTls;this[Ur]=a.proxyTls;this[Fr]=a.headers||{};const q=new Pt(a.uri);const{origin:ae,port:Ue,host:Ar,username:Er,password:Mr}=q;if(a.auth&&a.token){throw new Br("opts.auth cannot be used in combination with opts.token")}else if(a.auth){this[Fr]["proxy-authorization"]=`Basic ${a.auth}`}else if(a.token){this[Fr]["proxy-authorization"]=a.token}else if(Er&&Mr){this[Fr]["proxy-authorization"]=`Basic ${Buffer.from(`${decodeURIComponent(Er)}:${decodeURIComponent(Mr)}`).toString("base64")}`}const Pr=Ir({...a.proxyTls});this[Lr]=Ir({...a.requestTls});this[kr]=C(q,{connect:Pr});this[Dr]=new Wt({...a,connect:async(a,C)=>{let q=a.host;if(!a.port){q+=`:${defaultProtocolPort(a.protocol)}`}try{const{socket:re,statusCode:lt}=await this[kr].connect({origin:ae,port:Ue,path:q,signal:a.signal,headers:{...this[Fr],host:Ar}});if(lt!==200){re.on("error",(()=>{})).destroy();C(new Qr(`Proxy response (${lt}) !== 200 when HTTP Tunneling`))}if(a.protocol!=="https:"){C(null,re);return}let Pt;if(this[Nr]){Pt=this[Nr].servername}else{Pt=a.servername}this[Lr]({...a,servername:Pt,httpSocket:re},C)}catch(a){C(a)}}})}dispatch(a,C){const{host:q}=new Pt(a.origin);const re=buildHeaders(a.headers);throwIfProxyAuthIsSent(re);return this[Dr].dispatch({...a,headers:{...re,host:q}},C)}async[ae](){await this[Dr].close();await this[kr].close()}async[Ue](){await this[Dr].destroy();await this[kr].destroy()}}function buildHeaders(a){if(Array.isArray(a)){const C={};for(let q=0;qa.toLowerCase()==="proxy-authorization"));if(C){throw new Br("Proxy-Authorization should be sent in ProxyAgent constructor")}}a.exports=ProxyAgent},8804:a=>{let C=Date.now();let q;const re=[];function onTimeout(){C=Date.now();let a=re.length;let q=0;while(q0&&C>=ae.state){ae.state=-1;ae.callback(ae.opaque)}if(ae.state===-1){ae.state=-2;if(q!==a-1){re[q]=re.pop()}else{re.pop()}a-=1}else{q+=1}}if(re.length>0){refreshTimeout()}}function refreshTimeout(){if(q&&q.refresh){q.refresh()}else{clearTimeout(q);q=setTimeout(onTimeout,1e3);if(q.unref){q.unref()}}}class Timeout{constructor(a,C,q){this.callback=a;this.delay=C;this.opaque=q;this.state=-2;this.refresh()}refresh(){if(this.state===-2){re.push(this);if(!q||re.length===1){refreshTimeout()}}this.state=0}clear(){this.state=-1}}a.exports={setTimeout(a,C,q){return C<1e3?setTimeout(a,C,q):new Timeout(a,C,q)},clearTimeout(a){if(a instanceof Timeout){a.clear()}else{clearTimeout(a)}}}},8550:(a,C,q)=>{const re=q(1637);const{uid:ae,states:Ue}=q(5913);const{kReadyState:lt,kSentClose:Pt,kByteParser:Wt,kReceivedClose:Ar}=q(2933);const{fireEvent:Er,failWebsocketConnection:Br}=q(3574);const{CloseEvent:Qr}=q(6255);const{makeRequest:Ir}=q(5194);const{fetching:Dr}=q(2315);const{Headers:kr}=q(6349);const{getGlobalDispatcher:Fr}=q(2581);const{kHeadersList:Nr}=q(6443);const Ur={};Ur.open=re.channel("undici:websocket:open");Ur.close=re.channel("undici:websocket:close");Ur.socketError=re.channel("undici:websocket:socket_error");let Lr;try{Lr=q(6982)}catch{}function establishWebSocketConnection(a,C,q,re,Ue){const lt=a;lt.protocol=a.protocol==="ws:"?"http:":"https:";const Pt=Ir({urlList:[lt],serviceWorkers:"none",referrer:"no-referrer",mode:"websocket",credentials:"include",cache:"no-store",redirect:"error"});if(Ue.headers){const a=new kr(Ue.headers)[Nr];Pt.headersList=a}const Wt=Lr.randomBytes(16).toString("base64");Pt.headersList.append("sec-websocket-key",Wt);Pt.headersList.append("sec-websocket-version","13");for(const a of C){Pt.headersList.append("sec-websocket-protocol",a)}const Ar="";const Er=Dr({request:Pt,useParallelQueue:true,dispatcher:Ue.dispatcher??Fr(),processResponse(a){if(a.type==="error"||a.status!==101){Br(q,"Received network error or non-101 status code.");return}if(C.length!==0&&!a.headersList.get("Sec-WebSocket-Protocol")){Br(q,"Server did not respond with sent protocols.");return}if(a.headersList.get("Upgrade")?.toLowerCase()!=="websocket"){Br(q,'Server did not set Upgrade header to "websocket".');return}if(a.headersList.get("Connection")?.toLowerCase()!=="upgrade"){Br(q,'Server did not set Connection header to "upgrade".');return}const Ue=a.headersList.get("Sec-WebSocket-Accept");const lt=Lr.createHash("sha1").update(Wt+ae).digest("base64");if(Ue!==lt){Br(q,"Incorrect hash received in Sec-WebSocket-Accept header.");return}const Er=a.headersList.get("Sec-WebSocket-Extensions");if(Er!==null&&Er!==Ar){Br(q,"Received different permessage-deflate than the one set.");return}const Qr=a.headersList.get("Sec-WebSocket-Protocol");if(Qr!==null&&Qr!==Pt.headersList.get("Sec-WebSocket-Protocol")){Br(q,"Protocol was not set in the opening handshake.");return}a.socket.on("data",onSocketData);a.socket.on("close",onSocketClose);a.socket.on("error",onSocketError);if(Ur.open.hasSubscribers){Ur.open.publish({address:a.socket.address(),protocol:Qr,extensions:Er})}re(a)}});return Er}function onSocketData(a){if(!this.ws[Wt].write(a)){this.pause()}}function onSocketClose(){const{ws:a}=this;const C=a[Pt]&&a[Ar];let q=1005;let re="";const ae=a[Wt].closingInfo;if(ae){q=ae.code??1005;re=ae.reason}else if(!a[Pt]){q=1006}a[lt]=Ue.CLOSED;Er("close",a,Qr,{wasClean:C,code:q,reason:re});if(Ur.close.hasSubscribers){Ur.close.publish({websocket:a,code:q,reason:re})}}function onSocketError(a){const{ws:C}=this;C[lt]=Ue.CLOSING;if(Ur.socketError.hasSubscribers){Ur.socketError.publish(a)}this.destroy()}a.exports={establishWebSocketConnection:establishWebSocketConnection}},5913:a=>{const C="258EAFA5-E914-47DA-95CA-C5AB0DC85B11";const q={enumerable:true,writable:false,configurable:false};const re={CONNECTING:0,OPEN:1,CLOSING:2,CLOSED:3};const ae={CONTINUATION:0,TEXT:1,BINARY:2,CLOSE:8,PING:9,PONG:10};const Ue=2**16-1;const lt={INFO:0,PAYLOADLENGTH_16:2,PAYLOADLENGTH_64:3,READ_DATA:4};const Pt=Buffer.allocUnsafe(0);a.exports={uid:C,staticPropertyDescriptors:q,states:re,opcodes:ae,maxUnsigned16Bit:Ue,parserStates:lt,emptyBuffer:Pt}},6255:(a,C,q)=>{const{webidl:re}=q(4222);const{kEnumerableProperty:ae}=q(3440);const{MessagePort:Ue}=q(8167);class MessageEvent extends Event{#a;constructor(a,C={}){re.argumentLengthCheck(arguments,1,{header:"MessageEvent constructor"});a=re.converters.DOMString(a);C=re.converters.MessageEventInit(C);super(a,C);this.#a=C}get data(){re.brandCheck(this,MessageEvent);return this.#a.data}get origin(){re.brandCheck(this,MessageEvent);return this.#a.origin}get lastEventId(){re.brandCheck(this,MessageEvent);return this.#a.lastEventId}get source(){re.brandCheck(this,MessageEvent);return this.#a.source}get ports(){re.brandCheck(this,MessageEvent);if(!Object.isFrozen(this.#a.ports)){Object.freeze(this.#a.ports)}return this.#a.ports}initMessageEvent(a,C=false,q=false,ae=null,Ue="",lt="",Pt=null,Wt=[]){re.brandCheck(this,MessageEvent);re.argumentLengthCheck(arguments,1,{header:"MessageEvent.initMessageEvent"});return new MessageEvent(a,{bubbles:C,cancelable:q,data:ae,origin:Ue,lastEventId:lt,source:Pt,ports:Wt})}}class CloseEvent extends Event{#a;constructor(a,C={}){re.argumentLengthCheck(arguments,1,{header:"CloseEvent constructor"});a=re.converters.DOMString(a);C=re.converters.CloseEventInit(C);super(a,C);this.#a=C}get wasClean(){re.brandCheck(this,CloseEvent);return this.#a.wasClean}get code(){re.brandCheck(this,CloseEvent);return this.#a.code}get reason(){re.brandCheck(this,CloseEvent);return this.#a.reason}}class ErrorEvent extends Event{#a;constructor(a,C){re.argumentLengthCheck(arguments,1,{header:"ErrorEvent constructor"});super(a,C);a=re.converters.DOMString(a);C=re.converters.ErrorEventInit(C??{});this.#a=C}get message(){re.brandCheck(this,ErrorEvent);return this.#a.message}get filename(){re.brandCheck(this,ErrorEvent);return this.#a.filename}get lineno(){re.brandCheck(this,ErrorEvent);return this.#a.lineno}get colno(){re.brandCheck(this,ErrorEvent);return this.#a.colno}get error(){re.brandCheck(this,ErrorEvent);return this.#a.error}}Object.defineProperties(MessageEvent.prototype,{[Symbol.toStringTag]:{value:"MessageEvent",configurable:true},data:ae,origin:ae,lastEventId:ae,source:ae,ports:ae,initMessageEvent:ae});Object.defineProperties(CloseEvent.prototype,{[Symbol.toStringTag]:{value:"CloseEvent",configurable:true},reason:ae,code:ae,wasClean:ae});Object.defineProperties(ErrorEvent.prototype,{[Symbol.toStringTag]:{value:"ErrorEvent",configurable:true},message:ae,filename:ae,lineno:ae,colno:ae,error:ae});re.converters.MessagePort=re.interfaceConverter(Ue);re.converters["sequence"]=re.sequenceConverter(re.converters.MessagePort);const lt=[{key:"bubbles",converter:re.converters.boolean,defaultValue:false},{key:"cancelable",converter:re.converters.boolean,defaultValue:false},{key:"composed",converter:re.converters.boolean,defaultValue:false}];re.converters.MessageEventInit=re.dictionaryConverter([...lt,{key:"data",converter:re.converters.any,defaultValue:null},{key:"origin",converter:re.converters.USVString,defaultValue:""},{key:"lastEventId",converter:re.converters.DOMString,defaultValue:""},{key:"source",converter:re.nullableConverter(re.converters.MessagePort),defaultValue:null},{key:"ports",converter:re.converters["sequence"],get defaultValue(){return[]}}]);re.converters.CloseEventInit=re.dictionaryConverter([...lt,{key:"wasClean",converter:re.converters.boolean,defaultValue:false},{key:"code",converter:re.converters["unsigned short"],defaultValue:0},{key:"reason",converter:re.converters.USVString,defaultValue:""}]);re.converters.ErrorEventInit=re.dictionaryConverter([...lt,{key:"message",converter:re.converters.DOMString,defaultValue:""},{key:"filename",converter:re.converters.USVString,defaultValue:""},{key:"lineno",converter:re.converters["unsigned long"],defaultValue:0},{key:"colno",converter:re.converters["unsigned long"],defaultValue:0},{key:"error",converter:re.converters.any}]);a.exports={MessageEvent:MessageEvent,CloseEvent:CloseEvent,ErrorEvent:ErrorEvent}},1237:(a,C,q)=>{const{maxUnsigned16Bit:re}=q(5913);let ae;try{ae=q(6982)}catch{}class WebsocketFrameSend{constructor(a){this.frameData=a;this.maskKey=ae.randomBytes(4)}createFrame(a){const C=this.frameData?.byteLength??0;let q=C;let ae=6;if(C>re){ae+=8;q=127}else if(C>125){ae+=2;q=126}const Ue=Buffer.allocUnsafe(C+ae);Ue[0]=Ue[1]=0;Ue[0]|=128;Ue[0]=(Ue[0]&240)+a; -/*! ws. MIT License. Einar Otto Stangvik */Ue[ae-4]=this.maskKey[0];Ue[ae-3]=this.maskKey[1];Ue[ae-2]=this.maskKey[2];Ue[ae-1]=this.maskKey[3];Ue[1]=q;if(q===126){Ue.writeUInt16BE(C,2)}else if(q===127){Ue[2]=Ue[3]=0;Ue.writeUIntBE(C,4,6)}Ue[1]|=128;for(let a=0;a{const{Writable:re}=q(2203);const ae=q(1637);const{parserStates:Ue,opcodes:lt,states:Pt,emptyBuffer:Wt}=q(5913);const{kReadyState:Ar,kSentClose:Er,kResponse:Br,kReceivedClose:Qr}=q(2933);const{isValidStatusCode:Ir,failWebsocketConnection:Dr,websocketMessageReceived:kr}=q(3574);const{WebsocketFrameSend:Fr}=q(1237);const Nr={};Nr.ping=ae.channel("undici:websocket:ping");Nr.pong=ae.channel("undici:websocket:pong");class ByteParser extends re{#o=[];#i=0;#n=Ue.INFO;#d={};#p=[];constructor(a){super();this.ws=a}_write(a,C,q){this.#o.push(a);this.#i+=a.length;this.run(q)}run(a){while(true){if(this.#n===Ue.INFO){if(this.#i<2){return a()}const C=this.consume(2);this.#d.fin=(C[0]&128)!==0;this.#d.opcode=C[0]&15;this.#d.originalOpcode??=this.#d.opcode;this.#d.fragmented=!this.#d.fin&&this.#d.opcode!==lt.CONTINUATION;if(this.#d.fragmented&&this.#d.opcode!==lt.BINARY&&this.#d.opcode!==lt.TEXT){Dr(this.ws,"Invalid frame type was fragmented.");return}const q=C[1]&127;if(q<=125){this.#d.payloadLength=q;this.#n=Ue.READ_DATA}else if(q===126){this.#n=Ue.PAYLOADLENGTH_16}else if(q===127){this.#n=Ue.PAYLOADLENGTH_64}if(this.#d.fragmented&&q>125){Dr(this.ws,"Fragmented frame exceeded 125 bytes.");return}else if((this.#d.opcode===lt.PING||this.#d.opcode===lt.PONG||this.#d.opcode===lt.CLOSE)&&q>125){Dr(this.ws,"Payload length for control frame exceeded 125 bytes.");return}else if(this.#d.opcode===lt.CLOSE){if(q===1){Dr(this.ws,"Received close frame with a 1-byte body.");return}const a=this.consume(q);this.#d.closeInfo=this.parseCloseBody(false,a);if(!this.ws[Er]){const a=Buffer.allocUnsafe(2);a.writeUInt16BE(this.#d.closeInfo.code,0);const C=new Fr(a);this.ws[Br].socket.write(C.createFrame(lt.CLOSE),(a=>{if(!a){this.ws[Er]=true}}))}this.ws[Ar]=Pt.CLOSING;this.ws[Qr]=true;this.end();return}else if(this.#d.opcode===lt.PING){const C=this.consume(q);if(!this.ws[Qr]){const a=new Fr(C);this.ws[Br].socket.write(a.createFrame(lt.PONG));if(Nr.ping.hasSubscribers){Nr.ping.publish({payload:C})}}this.#n=Ue.INFO;if(this.#i>0){continue}else{a();return}}else if(this.#d.opcode===lt.PONG){const C=this.consume(q);if(Nr.pong.hasSubscribers){Nr.pong.publish({payload:C})}if(this.#i>0){continue}else{a();return}}}else if(this.#n===Ue.PAYLOADLENGTH_16){if(this.#i<2){return a()}const C=this.consume(2);this.#d.payloadLength=C.readUInt16BE(0);this.#n=Ue.READ_DATA}else if(this.#n===Ue.PAYLOADLENGTH_64){if(this.#i<8){return a()}const C=this.consume(8);const q=C.readUInt32BE(0);if(q>2**31-1){Dr(this.ws,"Received payload length > 2^31 bytes.");return}const re=C.readUInt32BE(4);this.#d.payloadLength=(q<<8)+re;this.#n=Ue.READ_DATA}else if(this.#n===Ue.READ_DATA){if(this.#i=this.#d.payloadLength){const a=this.consume(this.#d.payloadLength);this.#p.push(a);if(!this.#d.fragmented||this.#d.fin&&this.#d.opcode===lt.CONTINUATION){const a=Buffer.concat(this.#p);kr(this.ws,this.#d.originalOpcode,a);this.#d={};this.#p.length=0}this.#n=Ue.INFO}}if(this.#i>0){continue}else{a();break}}}consume(a){if(a>this.#i){return null}else if(a===0){return Wt}if(this.#o[0].length===a){this.#i-=this.#o[0].length;return this.#o.shift()}const C=Buffer.allocUnsafe(a);let q=0;while(q!==a){const re=this.#o[0];const{length:ae}=re;if(ae+q===a){C.set(this.#o.shift(),q);break}else if(ae+q>a){C.set(re.subarray(0,a-q),q);this.#o[0]=re.subarray(a-q);break}else{C.set(this.#o.shift(),q);q+=re.length}}this.#i-=a;return C}parseCloseBody(a,C){let q;if(C.length>=2){q=C.readUInt16BE(0)}if(a){if(!Ir(q)){return null}return{code:q}}let re=C.subarray(2);if(re[0]===239&&re[1]===187&&re[2]===191){re=re.subarray(3)}if(q!==undefined&&!Ir(q)){return null}try{re=new TextDecoder("utf-8",{fatal:true}).decode(re)}catch{return null}return{code:q,reason:re}}get closingInfo(){return this.#d.closeInfo}}a.exports={ByteParser:ByteParser}},2933:a=>{a.exports={kWebSocketURL:Symbol("url"),kReadyState:Symbol("ready state"),kController:Symbol("controller"),kResponse:Symbol("response"),kBinaryType:Symbol("binary type"),kSentClose:Symbol("sent close"),kReceivedClose:Symbol("received close"),kByteParser:Symbol("byte parser")}},3574:(a,C,q)=>{const{kReadyState:re,kController:ae,kResponse:Ue,kBinaryType:lt,kWebSocketURL:Pt}=q(2933);const{states:Wt,opcodes:Ar}=q(5913);const{MessageEvent:Er,ErrorEvent:Br}=q(6255);function isEstablished(a){return a[re]===Wt.OPEN}function isClosing(a){return a[re]===Wt.CLOSING}function isClosed(a){return a[re]===Wt.CLOSED}function fireEvent(a,C,q=Event,re){const ae=new q(a,re);C.dispatchEvent(ae)}function websocketMessageReceived(a,C,q){if(a[re]!==Wt.OPEN){return}let ae;if(C===Ar.TEXT){try{ae=new TextDecoder("utf-8",{fatal:true}).decode(q)}catch{failWebsocketConnection(a,"Received invalid UTF-8 in text frame.");return}}else if(C===Ar.BINARY){if(a[lt]==="blob"){ae=new Blob([q])}else{ae=new Uint8Array(q).buffer}}fireEvent("message",a,Er,{origin:a[Pt].origin,data:ae})}function isValidSubprotocol(a){if(a.length===0){return false}for(const C of a){const a=C.charCodeAt(0);if(a<33||a>126||C==="("||C===")"||C==="<"||C===">"||C==="@"||C===","||C===";"||C===":"||C==="\\"||C==='"'||C==="/"||C==="["||C==="]"||C==="?"||C==="="||C==="{"||C==="}"||a===32||a===9){return false}}return true}function isValidStatusCode(a){if(a>=1e3&&a<1015){return a!==1004&&a!==1005&&a!==1006}return a>=3e3&&a<=4999}function failWebsocketConnection(a,C){const{[ae]:q,[Ue]:re}=a;q.abort();if(re?.socket&&!re.socket.destroyed){re.socket.destroy()}if(C){fireEvent("error",a,Br,{error:new Error(C)})}}a.exports={isEstablished:isEstablished,isClosing:isClosing,isClosed:isClosed,fireEvent:fireEvent,isValidSubprotocol:isValidSubprotocol,isValidStatusCode:isValidStatusCode,failWebsocketConnection:failWebsocketConnection,websocketMessageReceived:websocketMessageReceived}},5171:(a,C,q)=>{const{webidl:re}=q(4222);const{DOMException:ae}=q(7326);const{URLSerializer:Ue}=q(4322);const{getGlobalOrigin:lt}=q(5628);const{staticPropertyDescriptors:Pt,states:Wt,opcodes:Ar,emptyBuffer:Er}=q(5913);const{kWebSocketURL:Br,kReadyState:Qr,kController:Ir,kBinaryType:Dr,kResponse:kr,kSentClose:Fr,kByteParser:Nr}=q(2933);const{isEstablished:Ur,isClosing:Lr,isValidSubprotocol:Mr,failWebsocketConnection:Pr,fireEvent:Gr}=q(3574);const{establishWebSocketConnection:Or}=q(8550);const{WebsocketFrameSend:Vr}=q(1237);const{ByteParser:Hr}=q(3171);const{kEnumerableProperty:xr,isBlobLike:Yr}=q(3440);const{getGlobalDispatcher:Jr}=q(2581);const{types:Wr}=q(9023);let jr=false;class WebSocket extends EventTarget{#l={open:null,error:null,close:null,message:null};#c=0;#u="";#g="";constructor(a,C=[]){super();re.argumentLengthCheck(arguments,1,{header:"WebSocket constructor"});if(!jr){jr=true;process.emitWarning("WebSockets are experimental, expect them to change at any time.",{code:"UNDICI-WS"})}const q=re.converters["DOMString or sequence or WebSocketInit"](C);a=re.converters.USVString(a);C=q.protocols;const Ue=lt();let Pt;try{Pt=new URL(a,Ue)}catch(a){throw new ae(a,"SyntaxError")}if(Pt.protocol==="http:"){Pt.protocol="ws:"}else if(Pt.protocol==="https:"){Pt.protocol="wss:"}if(Pt.protocol!=="ws:"&&Pt.protocol!=="wss:"){throw new ae(`Expected a ws: or wss: protocol, got ${Pt.protocol}`,"SyntaxError")}if(Pt.hash||Pt.href.endsWith("#")){throw new ae("Got fragment","SyntaxError")}if(typeof C==="string"){C=[C]}if(C.length!==new Set(C.map((a=>a.toLowerCase()))).size){throw new ae("Invalid Sec-WebSocket-Protocol value","SyntaxError")}if(C.length>0&&!C.every((a=>Mr(a)))){throw new ae("Invalid Sec-WebSocket-Protocol value","SyntaxError")}this[Br]=new URL(Pt.href);this[Ir]=Or(Pt,C,this,(a=>this.#m(a)),q);this[Qr]=WebSocket.CONNECTING;this[Dr]="blob"}close(a=undefined,C=undefined){re.brandCheck(this,WebSocket);if(a!==undefined){a=re.converters["unsigned short"](a,{clamp:true})}if(C!==undefined){C=re.converters.USVString(C)}if(a!==undefined){if(a!==1e3&&(a<3e3||a>4999)){throw new ae("invalid code","InvalidAccessError")}}let q=0;if(C!==undefined){q=Buffer.byteLength(C);if(q>123){throw new ae(`Reason must be less than 123 bytes; received ${q}`,"SyntaxError")}}if(this[Qr]===WebSocket.CLOSING||this[Qr]===WebSocket.CLOSED){}else if(!Ur(this)){Pr(this,"Connection was closed before it was established.");this[Qr]=WebSocket.CLOSING}else if(!Lr(this)){const re=new Vr;if(a!==undefined&&C===undefined){re.frameData=Buffer.allocUnsafe(2);re.frameData.writeUInt16BE(a,0)}else if(a!==undefined&&C!==undefined){re.frameData=Buffer.allocUnsafe(2+q);re.frameData.writeUInt16BE(a,0);re.frameData.write(C,2,"utf-8")}else{re.frameData=Er}const ae=this[kr].socket;ae.write(re.createFrame(Ar.CLOSE),(a=>{if(!a){this[Fr]=true}}));this[Qr]=Wt.CLOSING}else{this[Qr]=WebSocket.CLOSING}}send(a){re.brandCheck(this,WebSocket);re.argumentLengthCheck(arguments,1,{header:"WebSocket.send"});a=re.converters.WebSocketSendData(a);if(this[Qr]===WebSocket.CONNECTING){throw new ae("Sent before connected.","InvalidStateError")}if(!Ur(this)||Lr(this)){return}const C=this[kr].socket;if(typeof a==="string"){const q=Buffer.from(a);const re=new Vr(q);const ae=re.createFrame(Ar.TEXT);this.#c+=q.byteLength;C.write(ae,(()=>{this.#c-=q.byteLength}))}else if(Wr.isArrayBuffer(a)){const q=Buffer.from(a);const re=new Vr(q);const ae=re.createFrame(Ar.BINARY);this.#c+=q.byteLength;C.write(ae,(()=>{this.#c-=q.byteLength}))}else if(ArrayBuffer.isView(a)){const q=Buffer.from(a,a.byteOffset,a.byteLength);const re=new Vr(q);const ae=re.createFrame(Ar.BINARY);this.#c+=q.byteLength;C.write(ae,(()=>{this.#c-=q.byteLength}))}else if(Yr(a)){const q=new Vr;a.arrayBuffer().then((a=>{const re=Buffer.from(a);q.frameData=re;const ae=q.createFrame(Ar.BINARY);this.#c+=re.byteLength;C.write(ae,(()=>{this.#c-=re.byteLength}))}))}}get readyState(){re.brandCheck(this,WebSocket);return this[Qr]}get bufferedAmount(){re.brandCheck(this,WebSocket);return this.#c}get url(){re.brandCheck(this,WebSocket);return Ue(this[Br])}get extensions(){re.brandCheck(this,WebSocket);return this.#g}get protocol(){re.brandCheck(this,WebSocket);return this.#u}get onopen(){re.brandCheck(this,WebSocket);return this.#l.open}set onopen(a){re.brandCheck(this,WebSocket);if(this.#l.open){this.removeEventListener("open",this.#l.open)}if(typeof a==="function"){this.#l.open=a;this.addEventListener("open",a)}else{this.#l.open=null}}get onerror(){re.brandCheck(this,WebSocket);return this.#l.error}set onerror(a){re.brandCheck(this,WebSocket);if(this.#l.error){this.removeEventListener("error",this.#l.error)}if(typeof a==="function"){this.#l.error=a;this.addEventListener("error",a)}else{this.#l.error=null}}get onclose(){re.brandCheck(this,WebSocket);return this.#l.close}set onclose(a){re.brandCheck(this,WebSocket);if(this.#l.close){this.removeEventListener("close",this.#l.close)}if(typeof a==="function"){this.#l.close=a;this.addEventListener("close",a)}else{this.#l.close=null}}get onmessage(){re.brandCheck(this,WebSocket);return this.#l.message}set onmessage(a){re.brandCheck(this,WebSocket);if(this.#l.message){this.removeEventListener("message",this.#l.message)}if(typeof a==="function"){this.#l.message=a;this.addEventListener("message",a)}else{this.#l.message=null}}get binaryType(){re.brandCheck(this,WebSocket);return this[Dr]}set binaryType(a){re.brandCheck(this,WebSocket);if(a!=="blob"&&a!=="arraybuffer"){this[Dr]="blob"}else{this[Dr]=a}}#m(a){this[kr]=a;const C=new Hr(this);C.on("drain",(function onParserDrain(){this.ws[kr].socket.resume()}));a.socket.ws=this;this[Nr]=C;this[Qr]=Wt.OPEN;const q=a.headersList.get("sec-websocket-extensions");if(q!==null){this.#g=q}const re=a.headersList.get("sec-websocket-protocol");if(re!==null){this.#u=re}Gr("open",this)}}WebSocket.CONNECTING=WebSocket.prototype.CONNECTING=Wt.CONNECTING;WebSocket.OPEN=WebSocket.prototype.OPEN=Wt.OPEN;WebSocket.CLOSING=WebSocket.prototype.CLOSING=Wt.CLOSING;WebSocket.CLOSED=WebSocket.prototype.CLOSED=Wt.CLOSED;Object.defineProperties(WebSocket.prototype,{CONNECTING:Pt,OPEN:Pt,CLOSING:Pt,CLOSED:Pt,url:xr,readyState:xr,bufferedAmount:xr,onopen:xr,onerror:xr,onclose:xr,close:xr,onmessage:xr,binaryType:xr,send:xr,extensions:xr,protocol:xr,[Symbol.toStringTag]:{value:"WebSocket",writable:false,enumerable:false,configurable:true}});Object.defineProperties(WebSocket,{CONNECTING:Pt,OPEN:Pt,CLOSING:Pt,CLOSED:Pt});re.converters["sequence"]=re.sequenceConverter(re.converters.DOMString);re.converters["DOMString or sequence"]=function(a){if(re.util.Type(a)==="Object"&&Symbol.iterator in a){return re.converters["sequence"](a)}return re.converters.DOMString(a)};re.converters.WebSocketInit=re.dictionaryConverter([{key:"protocols",converter:re.converters["DOMString or sequence"],get defaultValue(){return[]}},{key:"dispatcher",converter:a=>a,get defaultValue(){return Jr()}},{key:"headers",converter:re.nullableConverter(re.converters.HeadersInit)}]);re.converters["DOMString or sequence or WebSocketInit"]=function(a){if(re.util.Type(a)==="Object"&&!(Symbol.iterator in a)){return re.converters.WebSocketInit(a)}return{protocols:re.converters["DOMString or sequence"](a)}};re.converters.WebSocketSendData=function(a){if(re.util.Type(a)==="Object"){if(Yr(a)){return re.converters.Blob(a,{strict:false})}if(ArrayBuffer.isView(a)||Wr.isAnyArrayBuffer(a)){return re.converters.BufferSource(a)}}return re.converters.USVString(a)};a.exports={WebSocket:WebSocket}},3843:(a,C)=>{Object.defineProperty(C,"__esModule",{value:true});function getUserAgent(){if(typeof navigator==="object"&&"userAgent"in navigator){return navigator.userAgent}if(typeof process==="object"&&process.version!==undefined){return`Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`}return""}C.getUserAgent=getUserAgent},7125:a=>{var C={};a.exports=C;function sign(a){return a<0?-1:1}function evenRound(a){if(a%1===.5&&(a&1)===0){return Math.floor(a)}else{return Math.round(a)}}function createNumberConversion(a,C){if(!C.unsigned){--a}const q=C.unsigned?0:-Math.pow(2,a);const re=Math.pow(2,a)-1;const ae=C.moduloBitLength?Math.pow(2,C.moduloBitLength):Math.pow(2,a);const Ue=C.moduloBitLength?Math.pow(2,C.moduloBitLength-1):Math.pow(2,a-1);return function(a,lt){if(!lt)lt={};let Pt=+a;if(lt.enforceRange){if(!Number.isFinite(Pt)){throw new TypeError("Argument is not a finite number")}Pt=sign(Pt)*Math.floor(Math.abs(Pt));if(Ptre){throw new TypeError("Argument is not in byte range")}return Pt}if(!isNaN(Pt)&<.clamp){Pt=evenRound(Pt);if(Ptre)Pt=re;return Pt}if(!Number.isFinite(Pt)||Pt===0){return 0}Pt=sign(Pt)*Math.floor(Math.abs(Pt));Pt=Pt%ae;if(!C.unsigned&&Pt>=Ue){return Pt-ae}else if(C.unsigned){if(Pt<0){Pt+=ae}else if(Pt===-0){return 0}}return Pt}}C["void"]=function(){return undefined};C["boolean"]=function(a){return!!a};C["byte"]=createNumberConversion(8,{unsigned:false});C["octet"]=createNumberConversion(8,{unsigned:true});C["short"]=createNumberConversion(16,{unsigned:false});C["unsigned short"]=createNumberConversion(16,{unsigned:true});C["long"]=createNumberConversion(32,{unsigned:false});C["unsigned long"]=createNumberConversion(32,{unsigned:true});C["long long"]=createNumberConversion(32,{unsigned:false,moduloBitLength:64});C["unsigned long long"]=createNumberConversion(32,{unsigned:true,moduloBitLength:64});C["double"]=function(a){const C=+a;if(!Number.isFinite(C)){throw new TypeError("Argument is not a finite floating-point value")}return C};C["unrestricted double"]=function(a){const C=+a;if(isNaN(C)){throw new TypeError("Argument is NaN")}return C};C["float"]=C["double"];C["unrestricted float"]=C["unrestricted double"];C["DOMString"]=function(a,C){if(!C)C={};if(C.treatNullAsEmptyString&&a===null){return""}return String(a)};C["ByteString"]=function(a,C){const q=String(a);let re=undefined;for(let a=0;(re=q.codePointAt(a))!==undefined;++a){if(re>255){throw new TypeError("Argument is not a valid bytestring")}}return q};C["USVString"]=function(a){const C=String(a);const q=C.length;const re=[];for(let a=0;a57343){re.push(String.fromCodePoint(ae))}else if(56320<=ae&&ae<=57343){re.push(String.fromCodePoint(65533))}else{if(a===q-1){re.push(String.fromCodePoint(65533))}else{const q=C.charCodeAt(a+1);if(56320<=q&&q<=57343){const C=ae&1023;const Ue=q&1023;re.push(String.fromCodePoint((2<<15)+(2<<9)*C+Ue));++a}else{re.push(String.fromCodePoint(65533))}}}}return re.join("")};C["Date"]=function(a,C){if(!(a instanceof Date)){throw new TypeError("Argument is not a Date object")}if(isNaN(a)){return undefined}return a};C["RegExp"]=function(a,C){if(!(a instanceof RegExp)){a=new RegExp(a)}return a}},3184:(a,C,q)=>{const re=q(905);C.implementation=class URLImpl{constructor(a){const C=a[0];const q=a[1];let ae=null;if(q!==undefined){ae=re.basicURLParse(q);if(ae==="failure"){throw new TypeError("Invalid base URL")}}const Ue=re.basicURLParse(C,{baseURL:ae});if(Ue==="failure"){throw new TypeError("Invalid URL")}this._url=Ue}get href(){return re.serializeURL(this._url)}set href(a){const C=re.basicURLParse(a);if(C==="failure"){throw new TypeError("Invalid URL")}this._url=C}get origin(){return re.serializeURLOrigin(this._url)}get protocol(){return this._url.scheme+":"}set protocol(a){re.basicURLParse(a+":",{url:this._url,stateOverride:"scheme start"})}get username(){return this._url.username}set username(a){if(re.cannotHaveAUsernamePasswordPort(this._url)){return}re.setTheUsername(this._url,a)}get password(){return this._url.password}set password(a){if(re.cannotHaveAUsernamePasswordPort(this._url)){return}re.setThePassword(this._url,a)}get host(){const a=this._url;if(a.host===null){return""}if(a.port===null){return re.serializeHost(a.host)}return re.serializeHost(a.host)+":"+re.serializeInteger(a.port)}set host(a){if(this._url.cannotBeABaseURL){return}re.basicURLParse(a,{url:this._url,stateOverride:"host"})}get hostname(){if(this._url.host===null){return""}return re.serializeHost(this._url.host)}set hostname(a){if(this._url.cannotBeABaseURL){return}re.basicURLParse(a,{url:this._url,stateOverride:"hostname"})}get port(){if(this._url.port===null){return""}return re.serializeInteger(this._url.port)}set port(a){if(re.cannotHaveAUsernamePasswordPort(this._url)){return}if(a===""){this._url.port=null}else{re.basicURLParse(a,{url:this._url,stateOverride:"port"})}}get pathname(){if(this._url.cannotBeABaseURL){return this._url.path[0]}if(this._url.path.length===0){return""}return"/"+this._url.path.join("/")}set pathname(a){if(this._url.cannotBeABaseURL){return}this._url.path=[];re.basicURLParse(a,{url:this._url,stateOverride:"path start"})}get search(){if(this._url.query===null||this._url.query===""){return""}return"?"+this._url.query}set search(a){const C=this._url;if(a===""){C.query=null;return}const q=a[0]==="?"?a.substring(1):a;C.query="";re.basicURLParse(q,{url:C,stateOverride:"query"})}get hash(){if(this._url.fragment===null||this._url.fragment===""){return""}return"#"+this._url.fragment}set hash(a){if(a===""){this._url.fragment=null;return}const C=a[0]==="#"?a.substring(1):a;this._url.fragment="";re.basicURLParse(C,{url:this._url,stateOverride:"fragment"})}toJSON(){return this.href}}},6633:(a,C,q)=>{const re=q(7125);const ae=q(9857);const Ue=q(3184);const lt=ae.implSymbol;function URL(C){if(!this||this[lt]||!(this instanceof URL)){throw new TypeError("Failed to construct 'URL': Please use the 'new' operator, this DOM object constructor cannot be called as a function.")}if(arguments.length<1){throw new TypeError("Failed to construct 'URL': 1 argument required, but only "+arguments.length+" present.")}const q=[];for(let a=0;a{C.URL=q(6633)["interface"];C.serializeURL=q(905).serializeURL;C.serializeURLOrigin=q(905).serializeURLOrigin;C.basicURLParse=q(905).basicURLParse;C.setTheUsername=q(905).setTheUsername;C.setThePassword=q(905).setThePassword;C.serializeHost=q(905).serializeHost;C.serializeInteger=q(905).serializeInteger;C.parseURL=q(905).parseURL},905:(a,C,q)=>{const re=q(4876);const ae=q(1552);const Ue={ftp:21,file:null,gopher:70,http:80,https:443,ws:80,wss:443};const lt=Symbol("failure");function countSymbols(a){return re.ucs2.decode(a).length}function at(a,C){const q=a[C];return isNaN(q)?undefined:String.fromCodePoint(q)}function isASCIIDigit(a){return a>=48&&a<=57}function isASCIIAlpha(a){return a>=65&&a<=90||a>=97&&a<=122}function isASCIIAlphanumeric(a){return isASCIIAlpha(a)||isASCIIDigit(a)}function isASCIIHex(a){return isASCIIDigit(a)||a>=65&&a<=70||a>=97&&a<=102}function isSingleDot(a){return a==="."||a.toLowerCase()==="%2e"}function isDoubleDot(a){a=a.toLowerCase();return a===".."||a==="%2e."||a===".%2e"||a==="%2e%2e"}function isWindowsDriveLetterCodePoints(a,C){return isASCIIAlpha(a)&&(C===58||C===124)}function isWindowsDriveLetterString(a){return a.length===2&&isASCIIAlpha(a.codePointAt(0))&&(a[1]===":"||a[1]==="|")}function isNormalizedWindowsDriveLetterString(a){return a.length===2&&isASCIIAlpha(a.codePointAt(0))&&a[1]===":"}function containsForbiddenHostCodePoint(a){return a.search(/\u0000|\u0009|\u000A|\u000D|\u0020|#|%|\/|:|\?|@|\[|\\|\]/)!==-1}function containsForbiddenHostCodePointExcludingPercent(a){return a.search(/\u0000|\u0009|\u000A|\u000D|\u0020|#|\/|:|\?|@|\[|\\|\]/)!==-1}function isSpecialScheme(a){return Ue[a]!==undefined}function isSpecial(a){return isSpecialScheme(a.scheme)}function defaultPort(a){return Ue[a]}function percentEncode(a){let C=a.toString(16).toUpperCase();if(C.length===1){C="0"+C}return"%"+C}function utf8PercentEncode(a){const C=new Buffer(a);let q="";for(let a=0;a126}const Pt=new Set([32,34,35,60,62,63,96,123,125]);function isPathPercentEncode(a){return isC0ControlPercentEncode(a)||Pt.has(a)}const Wt=new Set([47,58,59,61,64,91,92,93,94,124]);function isUserinfoPercentEncode(a){return isPathPercentEncode(a)||Wt.has(a)}function percentEncodeChar(a,C){const q=String.fromCodePoint(a);if(C(a)){return utf8PercentEncode(q)}return q}function parseIPv4Number(a){let C=10;if(a.length>=2&&a.charAt(0)==="0"&&a.charAt(1).toLowerCase()==="x"){a=a.substring(2);C=16}else if(a.length>=2&&a.charAt(0)==="0"){a=a.substring(1);C=8}if(a===""){return 0}const q=C===10?/[^0-9]/:C===16?/[^0-9A-Fa-f]/:/[^0-7]/;if(q.test(a)){return lt}return parseInt(a,C)}function parseIPv4(a){const C=a.split(".");if(C[C.length-1]===""){if(C.length>1){C.pop()}}if(C.length>4){return a}const q=[];for(const re of C){if(re===""){return a}const C=parseIPv4Number(re);if(C===lt){return a}q.push(C)}for(let a=0;a255){return lt}}if(q[q.length-1]>=Math.pow(256,5-q.length)){return lt}let re=q.pop();let ae=0;for(const a of q){re+=a*Math.pow(256,3-ae);++ae}return re}function serializeIPv4(a){let C="";let q=a;for(let a=1;a<=4;++a){C=String(q%256)+C;if(a!==4){C="."+C}q=Math.floor(q/256)}return C}function parseIPv6(a){const C=[0,0,0,0,0,0,0,0];let q=0;let ae=null;let Ue=0;a=re.ucs2.decode(a);if(a[Ue]===58){if(a[Ue+1]!==58){return lt}Ue+=2;++q;ae=q}while(Ue6){return lt}let re=0;while(a[Ue]!==undefined){let ae=null;if(re>0){if(a[Ue]===46&&re<4){++Ue}else{return lt}}if(!isASCIIDigit(a[Ue])){return lt}while(isASCIIDigit(a[Ue])){const C=parseInt(at(a,Ue));if(ae===null){ae=C}else if(ae===0){return lt}else{ae=ae*10+C}if(ae>255){return lt}++Ue}C[q]=C[q]*256+ae;++re;if(re===2||re===4){++q}}if(re!==4){return lt}break}else if(a[Ue]===58){++Ue;if(a[Ue]===undefined){return lt}}else if(a[Ue]!==undefined){return lt}C[q]=re;++q}if(ae!==null){let a=q-ae;q=7;while(q!==0&&a>0){const re=C[ae+a-1];C[ae+a-1]=C[q];C[q]=re;--q;--a}}else if(ae===null&&q!==8){return lt}return C}function serializeIPv6(a){let C="";const q=findLongestZeroSequence(a);const re=q.idx;let ae=false;for(let q=0;q<=7;++q){if(ae&&a[q]===0){continue}else if(ae){ae=false}if(re===q){const a=q===0?"::":":";C+=a;ae=true;continue}C+=a[q].toString(16);if(q!==7){C+=":"}}return C}function parseHost(a,C){if(a[0]==="["){if(a[a.length-1]!=="]"){return lt}return parseIPv6(a.substring(1,a.length-1))}if(!C){return parseOpaqueHost(a)}const q=utf8PercentDecode(a);const re=ae.toASCII(q,false,ae.PROCESSING_OPTIONS.NONTRANSITIONAL,false);if(re===null){return lt}if(containsForbiddenHostCodePoint(re)){return lt}const Ue=parseIPv4(re);if(typeof Ue==="number"||Ue===lt){return Ue}return re}function parseOpaqueHost(a){if(containsForbiddenHostCodePointExcludingPercent(a)){return lt}let C="";const q=re.ucs2.decode(a);for(let a=0;aq){C=re;q=ae}re=null;ae=0}else{if(re===null){re=Ue}++ae}}if(ae>q){C=re;q=ae}return{idx:C,len:q}}function serializeHost(a){if(typeof a==="number"){return serializeIPv4(a)}if(a instanceof Array){return"["+serializeIPv6(a)+"]"}return a}function trimControlChars(a){return a.replace(/^[\u0000-\u001F\u0020]+|[\u0000-\u001F\u0020]+$/g,"")}function trimTabAndNewline(a){return a.replace(/\u0009|\u000A|\u000D/g,"")}function shortenPath(a){const C=a.path;if(C.length===0){return}if(a.scheme==="file"&&C.length===1&&isNormalizedWindowsDriveLetter(C[0])){return}C.pop()}function includesCredentials(a){return a.username!==""||a.password!==""}function cannotHaveAUsernamePasswordPort(a){return a.host===null||a.host===""||a.cannotBeABaseURL||a.scheme==="file"}function isNormalizedWindowsDriveLetter(a){return/^[A-Za-z]:$/.test(a)}function URLStateMachine(a,C,q,ae,Ue){this.pointer=0;this.input=a;this.base=C||null;this.encodingOverride=q||"utf-8";this.stateOverride=Ue;this.url=ae;this.failure=false;this.parseError=false;if(!this.url){this.url={scheme:"",username:"",password:"",host:null,port:null,path:[],query:null,fragment:null,cannotBeABaseURL:false};const a=trimControlChars(this.input);if(a!==this.input){this.parseError=true}this.input=a}const Pt=trimTabAndNewline(this.input);if(Pt!==this.input){this.parseError=true}this.input=Pt;this.state=Ue||"scheme start";this.buffer="";this.atFlag=false;this.arrFlag=false;this.passwordTokenSeenFlag=false;this.input=re.ucs2.decode(this.input);for(;this.pointer<=this.input.length;++this.pointer){const a=this.input[this.pointer];const C=isNaN(a)?undefined:String.fromCodePoint(a);const q=this["parse "+this.state](a,C);if(!q){break}else if(q===lt){this.failure=true;break}}}URLStateMachine.prototype["parse scheme start"]=function parseSchemeStart(a,C){if(isASCIIAlpha(a)){this.buffer+=C.toLowerCase();this.state="scheme"}else if(!this.stateOverride){this.state="no scheme";--this.pointer}else{this.parseError=true;return lt}return true};URLStateMachine.prototype["parse scheme"]=function parseScheme(a,C){if(isASCIIAlphanumeric(a)||a===43||a===45||a===46){this.buffer+=C.toLowerCase()}else if(a===58){if(this.stateOverride){if(isSpecial(this.url)&&!isSpecialScheme(this.buffer)){return false}if(!isSpecial(this.url)&&isSpecialScheme(this.buffer)){return false}if((includesCredentials(this.url)||this.url.port!==null)&&this.buffer==="file"){return false}if(this.url.scheme==="file"&&(this.url.host===""||this.url.host===null)){return false}}this.url.scheme=this.buffer;this.buffer="";if(this.stateOverride){return false}if(this.url.scheme==="file"){if(this.input[this.pointer+1]!==47||this.input[this.pointer+2]!==47){this.parseError=true}this.state="file"}else if(isSpecial(this.url)&&this.base!==null&&this.base.scheme===this.url.scheme){this.state="special relative or authority"}else if(isSpecial(this.url)){this.state="special authority slashes"}else if(this.input[this.pointer+1]===47){this.state="path or authority";++this.pointer}else{this.url.cannotBeABaseURL=true;this.url.path.push("");this.state="cannot-be-a-base-URL path"}}else if(!this.stateOverride){this.buffer="";this.state="no scheme";this.pointer=-1}else{this.parseError=true;return lt}return true};URLStateMachine.prototype["parse no scheme"]=function parseNoScheme(a){if(this.base===null||this.base.cannotBeABaseURL&&a!==35){return lt}else if(this.base.cannotBeABaseURL&&a===35){this.url.scheme=this.base.scheme;this.url.path=this.base.path.slice();this.url.query=this.base.query;this.url.fragment="";this.url.cannotBeABaseURL=true;this.state="fragment"}else if(this.base.scheme==="file"){this.state="file";--this.pointer}else{this.state="relative";--this.pointer}return true};URLStateMachine.prototype["parse special relative or authority"]=function parseSpecialRelativeOrAuthority(a){if(a===47&&this.input[this.pointer+1]===47){this.state="special authority ignore slashes";++this.pointer}else{this.parseError=true;this.state="relative";--this.pointer}return true};URLStateMachine.prototype["parse path or authority"]=function parsePathOrAuthority(a){if(a===47){this.state="authority"}else{this.state="path";--this.pointer}return true};URLStateMachine.prototype["parse relative"]=function parseRelative(a){this.url.scheme=this.base.scheme;if(isNaN(a)){this.url.username=this.base.username;this.url.password=this.base.password;this.url.host=this.base.host;this.url.port=this.base.port;this.url.path=this.base.path.slice();this.url.query=this.base.query}else if(a===47){this.state="relative slash"}else if(a===63){this.url.username=this.base.username;this.url.password=this.base.password;this.url.host=this.base.host;this.url.port=this.base.port;this.url.path=this.base.path.slice();this.url.query="";this.state="query"}else if(a===35){this.url.username=this.base.username;this.url.password=this.base.password;this.url.host=this.base.host;this.url.port=this.base.port;this.url.path=this.base.path.slice();this.url.query=this.base.query;this.url.fragment="";this.state="fragment"}else if(isSpecial(this.url)&&a===92){this.parseError=true;this.state="relative slash"}else{this.url.username=this.base.username;this.url.password=this.base.password;this.url.host=this.base.host;this.url.port=this.base.port;this.url.path=this.base.path.slice(0,this.base.path.length-1);this.state="path";--this.pointer}return true};URLStateMachine.prototype["parse relative slash"]=function parseRelativeSlash(a){if(isSpecial(this.url)&&(a===47||a===92)){if(a===92){this.parseError=true}this.state="special authority ignore slashes"}else if(a===47){this.state="authority"}else{this.url.username=this.base.username;this.url.password=this.base.password;this.url.host=this.base.host;this.url.port=this.base.port;this.state="path";--this.pointer}return true};URLStateMachine.prototype["parse special authority slashes"]=function parseSpecialAuthoritySlashes(a){if(a===47&&this.input[this.pointer+1]===47){this.state="special authority ignore slashes";++this.pointer}else{this.parseError=true;this.state="special authority ignore slashes";--this.pointer}return true};URLStateMachine.prototype["parse special authority ignore slashes"]=function parseSpecialAuthorityIgnoreSlashes(a){if(a!==47&&a!==92){this.state="authority";--this.pointer}else{this.parseError=true}return true};URLStateMachine.prototype["parse authority"]=function parseAuthority(a,C){if(a===64){this.parseError=true;if(this.atFlag){this.buffer="%40"+this.buffer}this.atFlag=true;const a=countSymbols(this.buffer);for(let C=0;CMath.pow(2,16)-1){this.parseError=true;return lt}this.url.port=a===defaultPort(this.url.scheme)?null:a;this.buffer=""}if(this.stateOverride){return false}this.state="path start";--this.pointer}else{this.parseError=true;return lt}return true};const Ar=new Set([47,92,63,35]);URLStateMachine.prototype["parse file"]=function parseFile(a){this.url.scheme="file";if(a===47||a===92){if(a===92){this.parseError=true}this.state="file slash"}else if(this.base!==null&&this.base.scheme==="file"){if(isNaN(a)){this.url.host=this.base.host;this.url.path=this.base.path.slice();this.url.query=this.base.query}else if(a===63){this.url.host=this.base.host;this.url.path=this.base.path.slice();this.url.query="";this.state="query"}else if(a===35){this.url.host=this.base.host;this.url.path=this.base.path.slice();this.url.query=this.base.query;this.url.fragment="";this.state="fragment"}else{if(this.input.length-this.pointer-1===0||!isWindowsDriveLetterCodePoints(a,this.input[this.pointer+1])||this.input.length-this.pointer-1>=2&&!Ar.has(this.input[this.pointer+2])){this.url.host=this.base.host;this.url.path=this.base.path.slice();shortenPath(this.url)}else{this.parseError=true}this.state="path";--this.pointer}}else{this.state="path";--this.pointer}return true};URLStateMachine.prototype["parse file slash"]=function parseFileSlash(a){if(a===47||a===92){if(a===92){this.parseError=true}this.state="file host"}else{if(this.base!==null&&this.base.scheme==="file"){if(isNormalizedWindowsDriveLetterString(this.base.path[0])){this.url.path.push(this.base.path[0])}else{this.url.host=this.base.host}}this.state="path";--this.pointer}return true};URLStateMachine.prototype["parse file host"]=function parseFileHost(a,C){if(isNaN(a)||a===47||a===92||a===63||a===35){--this.pointer;if(!this.stateOverride&&isWindowsDriveLetterString(this.buffer)){this.parseError=true;this.state="path"}else if(this.buffer===""){this.url.host="";if(this.stateOverride){return false}this.state="path start"}else{let a=parseHost(this.buffer,isSpecial(this.url));if(a===lt){return lt}if(a==="localhost"){a=""}this.url.host=a;if(this.stateOverride){return false}this.buffer="";this.state="path start"}}else{this.buffer+=C}return true};URLStateMachine.prototype["parse path start"]=function parsePathStart(a){if(isSpecial(this.url)){if(a===92){this.parseError=true}this.state="path";if(a!==47&&a!==92){--this.pointer}}else if(!this.stateOverride&&a===63){this.url.query="";this.state="query"}else if(!this.stateOverride&&a===35){this.url.fragment="";this.state="fragment"}else if(a!==undefined){this.state="path";if(a!==47){--this.pointer}}return true};URLStateMachine.prototype["parse path"]=function parsePath(a){if(isNaN(a)||a===47||isSpecial(this.url)&&a===92||!this.stateOverride&&(a===63||a===35)){if(isSpecial(this.url)&&a===92){this.parseError=true}if(isDoubleDot(this.buffer)){shortenPath(this.url);if(a!==47&&!(isSpecial(this.url)&&a===92)){this.url.path.push("")}}else if(isSingleDot(this.buffer)&&a!==47&&!(isSpecial(this.url)&&a===92)){this.url.path.push("")}else if(!isSingleDot(this.buffer)){if(this.url.scheme==="file"&&this.url.path.length===0&&isWindowsDriveLetterString(this.buffer)){if(this.url.host!==""&&this.url.host!==null){this.parseError=true;this.url.host=""}this.buffer=this.buffer[0]+":"}this.url.path.push(this.buffer)}this.buffer="";if(this.url.scheme==="file"&&(a===undefined||a===63||a===35)){while(this.url.path.length>1&&this.url.path[0]===""){this.parseError=true;this.url.path.shift()}}if(a===63){this.url.query="";this.state="query"}if(a===35){this.url.fragment="";this.state="fragment"}}else{if(a===37&&(!isASCIIHex(this.input[this.pointer+1])||!isASCIIHex(this.input[this.pointer+2]))){this.parseError=true}this.buffer+=percentEncodeChar(a,isPathPercentEncode)}return true};URLStateMachine.prototype["parse cannot-be-a-base-URL path"]=function parseCannotBeABaseURLPath(a){if(a===63){this.url.query="";this.state="query"}else if(a===35){this.url.fragment="";this.state="fragment"}else{if(!isNaN(a)&&a!==37){this.parseError=true}if(a===37&&(!isASCIIHex(this.input[this.pointer+1])||!isASCIIHex(this.input[this.pointer+2]))){this.parseError=true}if(!isNaN(a)){this.url.path[0]=this.url.path[0]+percentEncodeChar(a,isC0ControlPercentEncode)}}return true};URLStateMachine.prototype["parse query"]=function parseQuery(a,C){if(isNaN(a)||!this.stateOverride&&a===35){if(!isSpecial(this.url)||this.url.scheme==="ws"||this.url.scheme==="wss"){this.encodingOverride="utf-8"}const C=new Buffer(this.buffer);for(let a=0;a126||C[a]===34||C[a]===35||C[a]===60||C[a]===62){this.url.query+=percentEncode(C[a])}else{this.url.query+=String.fromCodePoint(C[a])}}this.buffer="";if(a===35){this.url.fragment="";this.state="fragment"}}else{if(a===37&&(!isASCIIHex(this.input[this.pointer+1])||!isASCIIHex(this.input[this.pointer+2]))){this.parseError=true}this.buffer+=C}return true};URLStateMachine.prototype["parse fragment"]=function parseFragment(a){if(isNaN(a)){}else if(a===0){this.parseError=true}else{if(a===37&&(!isASCIIHex(this.input[this.pointer+1])||!isASCIIHex(this.input[this.pointer+2]))){this.parseError=true}this.url.fragment+=percentEncodeChar(a,isC0ControlPercentEncode)}return true};function serializeURL(a,C){let q=a.scheme+":";if(a.host!==null){q+="//";if(a.username!==""||a.password!==""){q+=a.username;if(a.password!==""){q+=":"+a.password}q+="@"}q+=serializeHost(a.host);if(a.port!==null){q+=":"+a.port}}else if(a.host===null&&a.scheme==="file"){q+="//"}if(a.cannotBeABaseURL){q+=a.path[0]}else{for(const C of a.path){q+="/"+C}}if(a.query!==null){q+="?"+a.query}if(!C&&a.fragment!==null){q+="#"+a.fragment}return q}function serializeOrigin(a){let C=a.scheme+"://";C+=serializeHost(a.host);if(a.port!==null){C+=":"+a.port}return C}a.exports.serializeURL=serializeURL;a.exports.serializeURLOrigin=function(C){switch(C.scheme){case"blob":try{return a.exports.serializeURLOrigin(a.exports.parseURL(C.path[0]))}catch(a){return"null"}case"ftp":case"gopher":case"http":case"https":case"ws":case"wss":return serializeOrigin({scheme:C.scheme,host:C.host,port:C.port});case"file":return"file://";default:return"null"}};a.exports.basicURLParse=function(a,C){if(C===undefined){C={}}const q=new URLStateMachine(a,C.baseURL,C.encodingOverride,C.url,C.stateOverride);if(q.failure){return"failure"}return q.url};a.exports.setTheUsername=function(a,C){a.username="";const q=re.ucs2.decode(C);for(let C=0;C{a.exports.mixin=function mixin(a,C){const q=Object.getOwnPropertyNames(C);for(let re=0;re{a.exports=wrappy;function wrappy(a,C){if(a&&C)return wrappy(a)(C);if(typeof a!=="function")throw new TypeError("need wrapper function");Object.keys(a).forEach((function(C){wrapper[C]=a[C]}));return wrapper;function wrapper(){var C=new Array(arguments.length);for(var q=0;q{module.exports=eval("require")("encoding")},2613:a=>{a.exports=__WEBPACK_EXTERNAL_createRequire(import.meta.url)("assert")},290:a=>{a.exports=__WEBPACK_EXTERNAL_createRequire(import.meta.url)("async_hooks")},181:a=>{a.exports=__WEBPACK_EXTERNAL_createRequire(import.meta.url)("buffer")},5317:a=>{a.exports=__WEBPACK_EXTERNAL_createRequire(import.meta.url)("child_process")},4236:a=>{a.exports=__WEBPACK_EXTERNAL_createRequire(import.meta.url)("console")},6982:a=>{a.exports=__WEBPACK_EXTERNAL_createRequire(import.meta.url)("crypto")},1637:a=>{a.exports=__WEBPACK_EXTERNAL_createRequire(import.meta.url)("diagnostics_channel")},4434:a=>{a.exports=__WEBPACK_EXTERNAL_createRequire(import.meta.url)("events")},9896:a=>{a.exports=__WEBPACK_EXTERNAL_createRequire(import.meta.url)("fs")},8611:a=>{a.exports=__WEBPACK_EXTERNAL_createRequire(import.meta.url)("http")},5675:a=>{a.exports=__WEBPACK_EXTERNAL_createRequire(import.meta.url)("http2")},5692:a=>{a.exports=__WEBPACK_EXTERNAL_createRequire(import.meta.url)("https")},9278:a=>{a.exports=__WEBPACK_EXTERNAL_createRequire(import.meta.url)("net")},7598:a=>{a.exports=__WEBPACK_EXTERNAL_createRequire(import.meta.url)("node:crypto")},8474:a=>{a.exports=__WEBPACK_EXTERNAL_createRequire(import.meta.url)("node:events")},7075:a=>{a.exports=__WEBPACK_EXTERNAL_createRequire(import.meta.url)("node:stream")},7975:a=>{a.exports=__WEBPACK_EXTERNAL_createRequire(import.meta.url)("node:util")},857:a=>{a.exports=__WEBPACK_EXTERNAL_createRequire(import.meta.url)("os")},6928:a=>{a.exports=__WEBPACK_EXTERNAL_createRequire(import.meta.url)("path")},2987:a=>{a.exports=__WEBPACK_EXTERNAL_createRequire(import.meta.url)("perf_hooks")},4876:a=>{a.exports=__WEBPACK_EXTERNAL_createRequire(import.meta.url)("punycode")},3480:a=>{a.exports=__WEBPACK_EXTERNAL_createRequire(import.meta.url)("querystring")},2203:a=>{a.exports=__WEBPACK_EXTERNAL_createRequire(import.meta.url)("stream")},3774:a=>{a.exports=__WEBPACK_EXTERNAL_createRequire(import.meta.url)("stream/web")},3193:a=>{a.exports=__WEBPACK_EXTERNAL_createRequire(import.meta.url)("string_decoder")},3557:a=>{a.exports=__WEBPACK_EXTERNAL_createRequire(import.meta.url)("timers")},4756:a=>{a.exports=__WEBPACK_EXTERNAL_createRequire(import.meta.url)("tls")},7016:a=>{a.exports=__WEBPACK_EXTERNAL_createRequire(import.meta.url)("url")},9023:a=>{a.exports=__WEBPACK_EXTERNAL_createRequire(import.meta.url)("util")},8253:a=>{a.exports=__WEBPACK_EXTERNAL_createRequire(import.meta.url)("util/types")},8167:a=>{a.exports=__WEBPACK_EXTERNAL_createRequire(import.meta.url)("worker_threads")},3106:a=>{a.exports=__WEBPACK_EXTERNAL_createRequire(import.meta.url)("zlib")},7182:(a,C,q)=>{const re=q(7075).Writable;const ae=q(7975).inherits;const Ue=q(4136);const lt=q(612);const Pt=q(2271);const Wt=45;const Ar=Buffer.from("-");const Er=Buffer.from("\r\n");const EMPTY_FN=function(){};function Dicer(a){if(!(this instanceof Dicer)){return new Dicer(a)}re.call(this,a);if(!a||!a.headerFirst&&typeof a.boundary!=="string"){throw new TypeError("Boundary required")}if(typeof a.boundary==="string"){this.setBoundary(a.boundary)}else{this._bparser=undefined}this._headerFirst=a.headerFirst;this._dashes=0;this._parts=0;this._finished=false;this._realFinish=false;this._isPreamble=true;this._justMatched=false;this._firstWrite=true;this._inHeader=true;this._part=undefined;this._cb=undefined;this._ignoreData=false;this._partOpts={highWaterMark:a.partHwm};this._pause=false;const C=this;this._hparser=new Pt(a);this._hparser.on("header",(function(a){C._inHeader=false;C._part.emit("header",a)}))}ae(Dicer,re);Dicer.prototype.emit=function(a){if(a==="finish"&&!this._realFinish){if(!this._finished){const a=this;process.nextTick((function(){a.emit("error",new Error("Unexpected end of multipart data"));if(a._part&&!a._ignoreData){const C=a._isPreamble?"Preamble":"Part";a._part.emit("error",new Error(C+" terminated early due to unexpected end of multipart data"));a._part.push(null);process.nextTick((function(){a._realFinish=true;a.emit("finish");a._realFinish=false}));return}a._realFinish=true;a.emit("finish");a._realFinish=false}))}}else{re.prototype.emit.apply(this,arguments)}};Dicer.prototype._write=function(a,C,q){if(!this._hparser&&!this._bparser){return q()}if(this._headerFirst&&this._isPreamble){if(!this._part){this._part=new lt(this._partOpts);if(this.listenerCount("preamble")!==0){this.emit("preamble",this._part)}else{this._ignore()}}const C=this._hparser.push(a);if(!this._inHeader&&C!==undefined&&C{const re=q(8474).EventEmitter;const ae=q(7975).inherits;const Ue=q(2393);const lt=q(4136);const Pt=Buffer.from("\r\n\r\n");const Wt=/\r\n/g;const Ar=/^([^:]+):[ \t]?([\x00-\xFF]+)?$/;function HeaderParser(a){re.call(this);a=a||{};const C=this;this.nread=0;this.maxed=false;this.npairs=0;this.maxHeaderPairs=Ue(a,"maxHeaderPairs",2e3);this.maxHeaderSize=Ue(a,"maxHeaderSize",80*1024);this.buffer="";this.header={};this.finished=false;this.ss=new lt(Pt);this.ss.on("info",(function(a,q,re,ae){if(q&&!C.maxed){if(C.nread+ae-re>=C.maxHeaderSize){ae=C.maxHeaderSize-C.nread+re;C.nread=C.maxHeaderSize;C.maxed=true}else{C.nread+=ae-re}C.buffer+=q.toString("binary",re,ae)}if(a){C._finish()}}))}ae(HeaderParser,re);HeaderParser.prototype.push=function(a){const C=this.ss.push(a);if(this.finished){return C}};HeaderParser.prototype.reset=function(){this.finished=false;this.buffer="";this.header={};this.ss.reset()};HeaderParser.prototype._finish=function(){if(this.buffer){this._parseHeader()}this.ss.matches=this.ss.maxMatches;const a=this.header;this.header={};this.buffer="";this.finished=true;this.nread=this.npairs=0;this.maxed=false;this.emit("header",a)};HeaderParser.prototype._parseHeader=function(){if(this.npairs===this.maxHeaderPairs){return}const a=this.buffer.split(Wt);const C=a.length;let q,re;for(var ae=0;ae{const re=q(7975).inherits;const ae=q(7075).Readable;function PartStream(a){ae.call(this,a)}re(PartStream,ae);PartStream.prototype._read=function(a){};a.exports=PartStream},4136:(a,C,q)=>{const re=q(8474).EventEmitter;const ae=q(7975).inherits;function SBMH(a){if(typeof a==="string"){a=Buffer.from(a)}if(!Buffer.isBuffer(a)){throw new TypeError("The needle has to be a String or a Buffer.")}const C=a.length;if(C===0){throw new Error("The needle cannot be an empty String/Buffer.")}if(C>256){throw new Error("The needle cannot have a length bigger than 256.")}this.maxMatches=Infinity;this.matches=0;this._occ=new Array(256).fill(C);this._lookbehind_size=0;this._needle=a;this._bufpos=0;this._lookbehind=Buffer.alloc(C);for(var q=0;q=0){this.emit("info",false,this._lookbehind,0,this._lookbehind_size);this._lookbehind_size=0}else{const q=this._lookbehind_size+Ue;if(q>0){this.emit("info",false,this._lookbehind,0,q)}this._lookbehind.copy(this._lookbehind,0,q,this._lookbehind_size-q);this._lookbehind_size-=q;a.copy(this._lookbehind,this._lookbehind_size);this._lookbehind_size+=C;this._bufpos=C;return C}}Ue+=(Ue>=0)*this._bufpos;if(a.indexOf(q,Ue)!==-1){Ue=a.indexOf(q,Ue);++this.matches;if(Ue>0){this.emit("info",true,a,this._bufpos,Ue)}else{this.emit("info",true)}return this._bufpos=Ue+re}else{Ue=C-re}while(Ue0){this.emit("info",false,a,this._bufpos,Ue{const re=q(7075).Writable;const{inherits:ae}=q(7975);const Ue=q(7182);const lt=q(1192);const Pt=q(855);const Wt=q(8929);function Busboy(a){if(!(this instanceof Busboy)){return new Busboy(a)}if(typeof a!=="object"){throw new TypeError("Busboy expected an options-Object.")}if(typeof a.headers!=="object"){throw new TypeError("Busboy expected an options-Object with headers-attribute.")}if(typeof a.headers["content-type"]!=="string"){throw new TypeError("Missing Content-Type-header.")}const{headers:C,...q}=a;this.opts={autoDestroy:false,...q};re.call(this,this.opts);this._done=false;this._parser=this.getParserByHeaders(C);this._finished=false}ae(Busboy,re);Busboy.prototype.emit=function(a){if(a==="finish"){if(!this._done){this._parser?.end();return}else if(this._finished){return}this._finished=true}re.prototype.emit.apply(this,arguments)};Busboy.prototype.getParserByHeaders=function(a){const C=Wt(a["content-type"]);const q={defCharset:this.opts.defCharset,fileHwm:this.opts.fileHwm,headers:a,highWaterMark:this.opts.highWaterMark,isPartAFile:this.opts.isPartAFile,limits:this.opts.limits,parsedConType:C,preservePath:this.opts.preservePath};if(lt.detect.test(C[0])){return new lt(this,q)}if(Pt.detect.test(C[0])){return new Pt(this,q)}throw new Error("Unsupported Content-Type.")};Busboy.prototype._write=function(a,C,q){this._parser.write(a,q)};a.exports=Busboy;a.exports["default"]=Busboy;a.exports.Busboy=Busboy;a.exports.Dicer=Ue},1192:(a,C,q)=>{const{Readable:re}=q(7075);const{inherits:ae}=q(7975);const Ue=q(7182);const lt=q(8929);const Pt=q(2747);const Wt=q(692);const Ar=q(2393);const Er=/^boundary$/i;const Br=/^form-data$/i;const Qr=/^charset$/i;const Ir=/^filename$/i;const Dr=/^name$/i;Multipart.detect=/^multipart\/form-data/i;function Multipart(a,C){let q;let re;const ae=this;let kr;const Fr=C.limits;const Nr=C.isPartAFile||((a,C,q)=>C==="application/octet-stream"||q!==undefined);const Ur=C.parsedConType||[];const Lr=C.defCharset||"utf8";const Mr=C.preservePath;const Pr={highWaterMark:C.fileHwm};for(q=0,re=Ur.length;qxr){ae.parser.removeListener("part",onPart);ae.parser.on("part",skipPart);a.hitPartsLimit=true;a.emit("partsLimit");return skipPart(C)}if(Kr){const a=Kr;a.emit("end");a.removeAllListeners("end")}C.on("header",(function(Ue){let Ar;let Er;let kr;let Fr;let Ur;let xr;let Yr=0;if(Ue["content-type"]){kr=lt(Ue["content-type"][0]);if(kr[0]){Ar=kr[0].toLowerCase();for(q=0,re=kr.length;qOr){const re=Or-Yr+a.length;if(re>0){q.push(a.slice(0,re))}q.truncated=true;q.bytesRead=Or;C.removeAllListeners("data");q.emit("limit");return}else if(!q.push(a)){ae._pause=true}q.bytesRead=Yr};Zr=function(){Xr=undefined;q.push(null)}}else{if(jr===Hr){if(!a.hitFieldsLimit){a.hitFieldsLimit=true;a.emit("fieldsLimit")}return skipPart(C)}++jr;++zr;let q="";let re=false;Kr=C;Jr=function(a){if((Yr+=a.length)>Gr){const ae=Gr-(Yr-a.length);q+=a.toString("binary",0,ae);re=true;C.removeAllListeners("data")}else{q+=a.toString("binary")}};Zr=function(){Kr=undefined;if(q.length){q=Pt(q,"binary",Fr)}a.emit("field",Er,q,false,re,Ur,Ar);--zr;checkFinished()}}C._readableState.sync=false;C.on("data",Jr);C.on("end",Zr)})).on("error",(function(a){if(Xr){Xr.emit("error",a)}}))})).on("error",(function(C){a.emit("error",C)})).on("finish",(function(){Zr=true;checkFinished()}))}Multipart.prototype.write=function(a,C){const q=this.parser.write(a);if(q&&!this._pause){C()}else{this._needDrain=!q;this._cb=C}};Multipart.prototype.end=function(){const a=this;if(a.parser.writable){a.parser.end()}else if(!a._boy._done){process.nextTick((function(){a._boy._done=true;a._boy.emit("finish")}))}};function skipPart(a){a.resume()}function FileStream(a){re.call(this,a);this.bytesRead=0;this.truncated=false}ae(FileStream,re);FileStream.prototype._read=function(a){};a.exports=Multipart},855:(a,C,q)=>{const re=q(1496);const ae=q(2747);const Ue=q(2393);const lt=/^charset$/i;UrlEncoded.detect=/^application\/x-www-form-urlencoded/i;function UrlEncoded(a,C){const q=C.limits;const ae=C.parsedConType;this.boy=a;this.fieldSizeLimit=Ue(q,"fieldSize",1*1024*1024);this.fieldNameSizeLimit=Ue(q,"fieldNameSize",100);this.fieldsLimit=Ue(q,"fields",Infinity);let Pt;for(var Wt=0,Ar=ae.length;Wtlt){this._key+=this.decoder.write(a.toString("binary",lt,q))}this._state="val";this._hitLimit=false;this._checkingBytes=true;this._val="";this._bytesVal=0;this._valTrunc=false;this.decoder.reset();lt=q+1}else if(re!==undefined){++this._fields;let q;const Ue=this._keyTrunc;if(re>lt){q=this._key+=this.decoder.write(a.toString("binary",lt,re))}else{q=this._key}this._hitLimit=false;this._checkingBytes=true;this._key="";this._bytesKey=0;this._keyTrunc=false;this.decoder.reset();if(q.length){this.boy.emit("field",ae(q,"binary",this.charset),"",Ue,false)}lt=re+1;if(this._fields===this.fieldsLimit){return C()}}else if(this._hitLimit){if(Ue>lt){this._key+=this.decoder.write(a.toString("binary",lt,Ue))}lt=Ue;if((this._bytesKey=this._key.length)===this.fieldNameSizeLimit){this._checkingBytes=false;this._keyTrunc=true}}else{if(ltlt){this._val+=this.decoder.write(a.toString("binary",lt,re))}this.boy.emit("field",ae(this._key,"binary",this.charset),ae(this._val,"binary",this.charset),this._keyTrunc,this._valTrunc);this._state="key";this._hitLimit=false;this._checkingBytes=true;this._key="";this._bytesKey=0;this._keyTrunc=false;this.decoder.reset();lt=re+1;if(this._fields===this.fieldsLimit){return C()}}else if(this._hitLimit){if(Ue>lt){this._val+=this.decoder.write(a.toString("binary",lt,Ue))}lt=Ue;if(this._val===""&&this.fieldSizeLimit===0||(this._bytesVal=this._val.length)===this.fieldSizeLimit){this._checkingBytes=false;this._valTrunc=true}}else{if(lt0){this.boy.emit("field",ae(this._key,"binary",this.charset),"",this._keyTrunc,false)}else if(this._state==="val"){this.boy.emit("field",ae(this._key,"binary",this.charset),ae(this._val,"binary",this.charset),this._keyTrunc,this._valTrunc)}this.boy._done=true;this.boy.emit("finish")};a.exports=UrlEncoded},1496:a=>{const C=/\+/g;const q=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];function Decoder(){this.buffer=undefined}Decoder.prototype.write=function(a){a=a.replace(C," ");let re="";let ae=0;let Ue=0;const lt=a.length;for(;aeUe){re+=a.substring(Ue,ae);Ue=ae}this.buffer="";++Ue}}if(Ue{a.exports=function basename(a){if(typeof a!=="string"){return""}for(var C=a.length-1;C>=0;--C){switch(a.charCodeAt(C)){case 47:case 92:a=a.slice(C+1);return a===".."||a==="."?"":a}}return a===".."||a==="."?"":a}},2747:function(a){const C=new TextDecoder("utf-8");const q=new Map([["utf-8",C],["utf8",C]]);function getDecoder(a){let C;while(true){switch(a){case"utf-8":case"utf8":return re.utf8;case"latin1":case"ascii":case"us-ascii":case"iso-8859-1":case"iso8859-1":case"iso88591":case"iso_8859-1":case"windows-1252":case"iso_8859-1:1987":case"cp1252":case"x-cp1252":return re.latin1;case"utf16le":case"utf-16le":case"ucs2":case"ucs-2":return re.utf16le;case"base64":return re.base64;default:if(C===undefined){C=true;a=a.toLowerCase();continue}return re.other.bind(a)}}}const re={utf8:(a,C)=>{if(a.length===0){return""}if(typeof a==="string"){a=Buffer.from(a,C)}return a.utf8Slice(0,a.length)},latin1:(a,C)=>{if(a.length===0){return""}if(typeof a==="string"){return a}return a.latin1Slice(0,a.length)},utf16le:(a,C)=>{if(a.length===0){return""}if(typeof a==="string"){a=Buffer.from(a,C)}return a.ucs2Slice(0,a.length)},base64:(a,C)=>{if(a.length===0){return""}if(typeof a==="string"){a=Buffer.from(a,C)}return a.base64Slice(0,a.length)},other:(a,C)=>{if(a.length===0){return""}if(typeof a==="string"){a=Buffer.from(a,C)}if(q.has(this.toString())){try{return q.get(this).decode(a)}catch{}}return typeof a==="string"?a:a.toString()}};function decodeText(a,C,q){if(a){return getDecoder(q)(a,C)}return a}a.exports=decodeText},2393:a=>{a.exports=function getLimit(a,C,q){if(!a||a[C]===undefined||a[C]===null){return q}if(typeof a[C]!=="number"||isNaN(a[C])){throw new TypeError("Limit "+C+" is not a valid number")}return a[C]}},8929:(a,C,q)=>{const re=q(2747);const ae=/%[a-fA-F0-9][a-fA-F0-9]/g;const Ue={"%00":"\0","%01":"","%02":"","%03":"","%04":"","%05":"","%06":"","%07":"","%08":"\b","%09":"\t","%0a":"\n","%0A":"\n","%0b":"\v","%0B":"\v","%0c":"\f","%0C":"\f","%0d":"\r","%0D":"\r","%0e":"","%0E":"","%0f":"","%0F":"","%10":"","%11":"","%12":"","%13":"","%14":"","%15":"","%16":"","%17":"","%18":"","%19":"","%1a":"","%1A":"","%1b":"","%1B":"","%1c":"","%1C":"","%1d":"","%1D":"","%1e":"","%1E":"","%1f":"","%1F":"","%20":" ","%21":"!","%22":'"',"%23":"#","%24":"$","%25":"%","%26":"&","%27":"'","%28":"(","%29":")","%2a":"*","%2A":"*","%2b":"+","%2B":"+","%2c":",","%2C":",","%2d":"-","%2D":"-","%2e":".","%2E":".","%2f":"/","%2F":"/","%30":"0","%31":"1","%32":"2","%33":"3","%34":"4","%35":"5","%36":"6","%37":"7","%38":"8","%39":"9","%3a":":","%3A":":","%3b":";","%3B":";","%3c":"<","%3C":"<","%3d":"=","%3D":"=","%3e":">","%3E":">","%3f":"?","%3F":"?","%40":"@","%41":"A","%42":"B","%43":"C","%44":"D","%45":"E","%46":"F","%47":"G","%48":"H","%49":"I","%4a":"J","%4A":"J","%4b":"K","%4B":"K","%4c":"L","%4C":"L","%4d":"M","%4D":"M","%4e":"N","%4E":"N","%4f":"O","%4F":"O","%50":"P","%51":"Q","%52":"R","%53":"S","%54":"T","%55":"U","%56":"V","%57":"W","%58":"X","%59":"Y","%5a":"Z","%5A":"Z","%5b":"[","%5B":"[","%5c":"\\","%5C":"\\","%5d":"]","%5D":"]","%5e":"^","%5E":"^","%5f":"_","%5F":"_","%60":"`","%61":"a","%62":"b","%63":"c","%64":"d","%65":"e","%66":"f","%67":"g","%68":"h","%69":"i","%6a":"j","%6A":"j","%6b":"k","%6B":"k","%6c":"l","%6C":"l","%6d":"m","%6D":"m","%6e":"n","%6E":"n","%6f":"o","%6F":"o","%70":"p","%71":"q","%72":"r","%73":"s","%74":"t","%75":"u","%76":"v","%77":"w","%78":"x","%79":"y","%7a":"z","%7A":"z","%7b":"{","%7B":"{","%7c":"|","%7C":"|","%7d":"}","%7D":"}","%7e":"~","%7E":"~","%7f":"","%7F":"","%80":"€","%81":"","%82":"‚","%83":"ƒ","%84":"„","%85":"…","%86":"†","%87":"‡","%88":"ˆ","%89":"‰","%8a":"Š","%8A":"Š","%8b":"‹","%8B":"‹","%8c":"Œ","%8C":"Œ","%8d":"","%8D":"","%8e":"Ž","%8E":"Ž","%8f":"","%8F":"","%90":"","%91":"‘","%92":"’","%93":"“","%94":"”","%95":"•","%96":"–","%97":"—","%98":"˜","%99":"™","%9a":"š","%9A":"š","%9b":"›","%9B":"›","%9c":"œ","%9C":"œ","%9d":"","%9D":"","%9e":"ž","%9E":"ž","%9f":"Ÿ","%9F":"Ÿ","%a0":" ","%A0":" ","%a1":"¡","%A1":"¡","%a2":"¢","%A2":"¢","%a3":"£","%A3":"£","%a4":"¤","%A4":"¤","%a5":"¥","%A5":"¥","%a6":"¦","%A6":"¦","%a7":"§","%A7":"§","%a8":"¨","%A8":"¨","%a9":"©","%A9":"©","%aa":"ª","%Aa":"ª","%aA":"ª","%AA":"ª","%ab":"«","%Ab":"«","%aB":"«","%AB":"«","%ac":"¬","%Ac":"¬","%aC":"¬","%AC":"¬","%ad":"­","%Ad":"­","%aD":"­","%AD":"­","%ae":"®","%Ae":"®","%aE":"®","%AE":"®","%af":"¯","%Af":"¯","%aF":"¯","%AF":"¯","%b0":"°","%B0":"°","%b1":"±","%B1":"±","%b2":"²","%B2":"²","%b3":"³","%B3":"³","%b4":"´","%B4":"´","%b5":"µ","%B5":"µ","%b6":"¶","%B6":"¶","%b7":"·","%B7":"·","%b8":"¸","%B8":"¸","%b9":"¹","%B9":"¹","%ba":"º","%Ba":"º","%bA":"º","%BA":"º","%bb":"»","%Bb":"»","%bB":"»","%BB":"»","%bc":"¼","%Bc":"¼","%bC":"¼","%BC":"¼","%bd":"½","%Bd":"½","%bD":"½","%BD":"½","%be":"¾","%Be":"¾","%bE":"¾","%BE":"¾","%bf":"¿","%Bf":"¿","%bF":"¿","%BF":"¿","%c0":"À","%C0":"À","%c1":"Á","%C1":"Á","%c2":"Â","%C2":"Â","%c3":"Ã","%C3":"Ã","%c4":"Ä","%C4":"Ä","%c5":"Å","%C5":"Å","%c6":"Æ","%C6":"Æ","%c7":"Ç","%C7":"Ç","%c8":"È","%C8":"È","%c9":"É","%C9":"É","%ca":"Ê","%Ca":"Ê","%cA":"Ê","%CA":"Ê","%cb":"Ë","%Cb":"Ë","%cB":"Ë","%CB":"Ë","%cc":"Ì","%Cc":"Ì","%cC":"Ì","%CC":"Ì","%cd":"Í","%Cd":"Í","%cD":"Í","%CD":"Í","%ce":"Î","%Ce":"Î","%cE":"Î","%CE":"Î","%cf":"Ï","%Cf":"Ï","%cF":"Ï","%CF":"Ï","%d0":"Ð","%D0":"Ð","%d1":"Ñ","%D1":"Ñ","%d2":"Ò","%D2":"Ò","%d3":"Ó","%D3":"Ó","%d4":"Ô","%D4":"Ô","%d5":"Õ","%D5":"Õ","%d6":"Ö","%D6":"Ö","%d7":"×","%D7":"×","%d8":"Ø","%D8":"Ø","%d9":"Ù","%D9":"Ù","%da":"Ú","%Da":"Ú","%dA":"Ú","%DA":"Ú","%db":"Û","%Db":"Û","%dB":"Û","%DB":"Û","%dc":"Ü","%Dc":"Ü","%dC":"Ü","%DC":"Ü","%dd":"Ý","%Dd":"Ý","%dD":"Ý","%DD":"Ý","%de":"Þ","%De":"Þ","%dE":"Þ","%DE":"Þ","%df":"ß","%Df":"ß","%dF":"ß","%DF":"ß","%e0":"à","%E0":"à","%e1":"á","%E1":"á","%e2":"â","%E2":"â","%e3":"ã","%E3":"ã","%e4":"ä","%E4":"ä","%e5":"å","%E5":"å","%e6":"æ","%E6":"æ","%e7":"ç","%E7":"ç","%e8":"è","%E8":"è","%e9":"é","%E9":"é","%ea":"ê","%Ea":"ê","%eA":"ê","%EA":"ê","%eb":"ë","%Eb":"ë","%eB":"ë","%EB":"ë","%ec":"ì","%Ec":"ì","%eC":"ì","%EC":"ì","%ed":"í","%Ed":"í","%eD":"í","%ED":"í","%ee":"î","%Ee":"î","%eE":"î","%EE":"î","%ef":"ï","%Ef":"ï","%eF":"ï","%EF":"ï","%f0":"ð","%F0":"ð","%f1":"ñ","%F1":"ñ","%f2":"ò","%F2":"ò","%f3":"ó","%F3":"ó","%f4":"ô","%F4":"ô","%f5":"õ","%F5":"õ","%f6":"ö","%F6":"ö","%f7":"÷","%F7":"÷","%f8":"ø","%F8":"ø","%f9":"ù","%F9":"ù","%fa":"ú","%Fa":"ú","%fA":"ú","%FA":"ú","%fb":"û","%Fb":"û","%fB":"û","%FB":"û","%fc":"ü","%Fc":"ü","%fC":"ü","%FC":"ü","%fd":"ý","%Fd":"ý","%fD":"ý","%FD":"ý","%fe":"þ","%Fe":"þ","%fE":"þ","%FE":"þ","%ff":"ÿ","%Ff":"ÿ","%fF":"ÿ","%FF":"ÿ"};function encodedReplacer(a){return Ue[a]}const lt=0;const Pt=1;const Wt=2;const Ar=3;function parseParams(a){const C=[];let q=lt;let Ue="";let Er=false;let Br=false;let Qr=0;let Ir="";const Dr=a.length;for(var kr=0;kr{q.d(C,{Y:()=>Blob}); -/** - * @license - * web-streams-polyfill v4.0.0-beta.3 - * Copyright 2021 Mattias Buelens, Diwank Singh Tomer and other contributors. - * This code is released under the MIT license. - * SPDX-License-Identifier: MIT - */ -const re="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?Symbol:a=>`Symbol(${a})`;function t(){}function r(a){return"object"==typeof a&&null!==a||"function"==typeof a}const ae=t;function n(a,C){try{Object.defineProperty(a,"name",{value:C,configurable:!0})}catch(a){}}const Ue=Promise,lt=Promise.prototype.then,Pt=Promise.resolve.bind(Ue),Wt=Promise.reject.bind(Ue);function u(a){return new Ue(a)}function c(a){return Pt(a)}function d(a){return Wt(a)}function f(a,C,q){return lt.call(a,C,q)}function b(a,C,q){f(f(a,C,q),void 0,ae)}function h(a,C){b(a,C)}function _(a,C){b(a,void 0,C)}function p(a,C,q){return f(a,C,q)}function m(a){f(a,void 0,ae)}let y=a=>{if("function"==typeof queueMicrotask)y=queueMicrotask;else{const a=c(void 0);y=C=>f(a,C)}return y(a)};function g(a,C,q){if("function"!=typeof a)throw new TypeError("Argument is not a function");return Function.prototype.apply.call(a,C,q)}function w(a,C,q){try{return c(g(a,C,q))}catch(a){return d(a)}}class S{constructor(){this._cursor=0,this._size=0,this._front={_elements:[],_next:void 0},this._back=this._front,this._cursor=0,this._size=0}get length(){return this._size}push(a){const C=this._back;let q=C;16383===C._elements.length&&(q={_elements:[],_next:void 0}),C._elements.push(a),q!==C&&(this._back=q,C._next=q),++this._size}shift(){const a=this._front;let C=a;const q=this._cursor;let re=q+1;const ae=a._elements,Ue=ae[q];return 16384===re&&(C=a._next,re=0),--this._size,this._cursor=re,a!==C&&(this._front=C),ae[q]=void 0,Ue}forEach(a){let C=this._cursor,q=this._front,re=q._elements;for(;!(C===re.length&&void 0===q._next||C===re.length&&(q=q._next,re=q._elements,C=0,0===re.length));)a(re[C]),++C}peek(){const a=this._front,C=this._cursor;return a._elements[C]}}const Ar=re("[[AbortSteps]]"),Er=re("[[ErrorSteps]]"),Br=re("[[CancelSteps]]"),Qr=re("[[PullSteps]]"),Ir=re("[[ReleaseSteps]]");function E(a,C){a._ownerReadableStream=C,C._reader=a,"readable"===C._state?O(a):"closed"===C._state?function(a){O(a),j(a)}(a):B(a,C._storedError)}function P(a,C){return Gt(a._ownerReadableStream,C)}function W(a){const C=a._ownerReadableStream;"readable"===C._state?A(a,new TypeError("Reader was released and can no longer be used to monitor the stream's closedness")):function(a,C){B(a,C)}(a,new TypeError("Reader was released and can no longer be used to monitor the stream's closedness")),C._readableStreamController[Ir](),C._reader=void 0,a._ownerReadableStream=void 0}function k(a){return new TypeError("Cannot "+a+" a stream using a released reader")}function O(a){a._closedPromise=u(((C,q)=>{a._closedPromise_resolve=C,a._closedPromise_reject=q}))}function B(a,C){O(a),A(a,C)}function A(a,C){void 0!==a._closedPromise_reject&&(m(a._closedPromise),a._closedPromise_reject(C),a._closedPromise_resolve=void 0,a._closedPromise_reject=void 0)}function j(a){void 0!==a._closedPromise_resolve&&(a._closedPromise_resolve(void 0),a._closedPromise_resolve=void 0,a._closedPromise_reject=void 0)}const Dr=Number.isFinite||function(a){return"number"==typeof a&&isFinite(a)},kr=Math.trunc||function(a){return a<0?Math.ceil(a):Math.floor(a)};function F(a,C){if(void 0!==a&&("object"!=typeof(q=a)&&"function"!=typeof q))throw new TypeError(`${C} is not an object.`);var q}function I(a,C){if("function"!=typeof a)throw new TypeError(`${C} is not a function.`)}function D(a,C){if(!function(a){return"object"==typeof a&&null!==a||"function"==typeof a}(a))throw new TypeError(`${C} is not an object.`)}function $(a,C,q){if(void 0===a)throw new TypeError(`Parameter ${C} is required in '${q}'.`)}function M(a,C,q){if(void 0===a)throw new TypeError(`${C} is required in '${q}'.`)}function Y(a){return Number(a)}function Q(a){return 0===a?0:a}function N(a,C){const q=Number.MAX_SAFE_INTEGER;let re=Number(a);if(re=Q(re),!Dr(re))throw new TypeError(`${C} is not a finite number`);if(re=function(a){return Q(kr(a))}(re),re<0||re>q)throw new TypeError(`${C} is outside the accepted range of 0 to ${q}, inclusive`);return Dr(re)&&0!==re?re:0}function H(a){if(!r(a))return!1;if("function"!=typeof a.getReader)return!1;try{return"boolean"==typeof a.locked}catch(a){return!1}}function x(a){if(!r(a))return!1;if("function"!=typeof a.getWriter)return!1;try{return"boolean"==typeof a.locked}catch(a){return!1}}function V(a,C){if(!Vt(a))throw new TypeError(`${C} is not a ReadableStream.`)}function U(a,C){a._reader._readRequests.push(C)}function G(a,C,q){const re=a._reader._readRequests.shift();q?re._closeSteps():re._chunkSteps(C)}function X(a){return a._reader._readRequests.length}function J(a){const C=a._reader;return void 0!==C&&!!K(C)}class ReadableStreamDefaultReader{constructor(a){if($(a,1,"ReadableStreamDefaultReader"),V(a,"First parameter"),Ut(a))throw new TypeError("This stream has already been locked for exclusive reading by another reader");E(this,a),this._readRequests=new S}get closed(){return K(this)?this._closedPromise:d(ee("closed"))}cancel(a){return K(this)?void 0===this._ownerReadableStream?d(k("cancel")):P(this,a):d(ee("cancel"))}read(){if(!K(this))return d(ee("read"));if(void 0===this._ownerReadableStream)return d(k("read from"));let a,C;const q=u(((q,re)=>{a=q,C=re}));return function(a,C){const q=a._ownerReadableStream;q._disturbed=!0,"closed"===q._state?C._closeSteps():"errored"===q._state?C._errorSteps(q._storedError):q._readableStreamController[Qr](C)}(this,{_chunkSteps:C=>a({value:C,done:!1}),_closeSteps:()=>a({value:void 0,done:!0}),_errorSteps:a=>C(a)}),q}releaseLock(){if(!K(this))throw ee("releaseLock");void 0!==this._ownerReadableStream&&function(a){W(a);const C=new TypeError("Reader was released");Z(a,C)}(this)}}function K(a){return!!r(a)&&(!!Object.prototype.hasOwnProperty.call(a,"_readRequests")&&a instanceof ReadableStreamDefaultReader)}function Z(a,C){const q=a._readRequests;a._readRequests=new S,q.forEach((a=>{a._errorSteps(C)}))}function ee(a){return new TypeError(`ReadableStreamDefaultReader.prototype.${a} can only be used on a ReadableStreamDefaultReader`)}Object.defineProperties(ReadableStreamDefaultReader.prototype,{cancel:{enumerable:!0},read:{enumerable:!0},releaseLock:{enumerable:!0},closed:{enumerable:!0}}),n(ReadableStreamDefaultReader.prototype.cancel,"cancel"),n(ReadableStreamDefaultReader.prototype.read,"read"),n(ReadableStreamDefaultReader.prototype.releaseLock,"releaseLock"),"symbol"==typeof re.toStringTag&&Object.defineProperty(ReadableStreamDefaultReader.prototype,re.toStringTag,{value:"ReadableStreamDefaultReader",configurable:!0});class te{constructor(a,C){this._ongoingPromise=void 0,this._isFinished=!1,this._reader=a,this._preventCancel=C}next(){const e=()=>this._nextSteps();return this._ongoingPromise=this._ongoingPromise?p(this._ongoingPromise,e,e):e(),this._ongoingPromise}return(a){const t=()=>this._returnSteps(a);return this._ongoingPromise?p(this._ongoingPromise,t,t):t()}_nextSteps(){if(this._isFinished)return Promise.resolve({value:void 0,done:!0});const a=this._reader;return void 0===a?d(k("iterate")):f(a.read(),(a=>{var C;return this._ongoingPromise=void 0,a.done&&(this._isFinished=!0,null===(C=this._reader)||void 0===C||C.releaseLock(),this._reader=void 0),a}),(a=>{var C;throw this._ongoingPromise=void 0,this._isFinished=!0,null===(C=this._reader)||void 0===C||C.releaseLock(),this._reader=void 0,a}))}_returnSteps(a){if(this._isFinished)return Promise.resolve({value:a,done:!0});this._isFinished=!0;const C=this._reader;if(void 0===C)return d(k("finish iterating"));if(this._reader=void 0,!this._preventCancel){const q=C.cancel(a);return C.releaseLock(),p(q,(()=>({value:a,done:!0})))}return C.releaseLock(),c({value:a,done:!0})}}const Fr={next(){return oe(this)?this._asyncIteratorImpl.next():d(ne("next"))},return(a){return oe(this)?this._asyncIteratorImpl.return(a):d(ne("return"))}};function oe(a){if(!r(a))return!1;if(!Object.prototype.hasOwnProperty.call(a,"_asyncIteratorImpl"))return!1;try{return a._asyncIteratorImpl instanceof te}catch(a){return!1}}function ne(a){return new TypeError(`ReadableStreamAsyncIterator.${a} can only be used on a ReadableSteamAsyncIterator`)}"symbol"==typeof re.asyncIterator&&Object.defineProperty(Fr,re.asyncIterator,{value(){return this},writable:!0,configurable:!0});const Nr=Number.isNaN||function(a){return a!=a};function ie(a,C,q,re,ae){new Uint8Array(a).set(new Uint8Array(q,re,ae),C)}function le(a){const C=function(a,C,q){if(a.slice)return a.slice(C,q);const re=q-C,ae=new ArrayBuffer(re);return ie(ae,0,a,C,re),ae}(a.buffer,a.byteOffset,a.byteOffset+a.byteLength);return new Uint8Array(C)}function se(a){const C=a._queue.shift();return a._queueTotalSize-=C.size,a._queueTotalSize<0&&(a._queueTotalSize=0),C.value}function ue(a,C,q){if("number"!=typeof(re=q)||Nr(re)||re<0||q===1/0)throw new RangeError("Size must be a finite, non-NaN, non-negative number.");var re;a._queue.push({value:C,size:q}),a._queueTotalSize+=q}function ce(a){a._queue=new S,a._queueTotalSize=0}class ReadableStreamBYOBRequest{constructor(){throw new TypeError("Illegal constructor")}get view(){if(!fe(this))throw Be("view");return this._view}respond(a){if(!fe(this))throw Be("respond");if($(a,1,"respond"),a=N(a,"First parameter"),void 0===this._associatedReadableByteStreamController)throw new TypeError("This BYOB request has been invalidated");this._view.buffer,function(a,C){const q=a._pendingPullIntos.peek();if("closed"===a._controlledReadableByteStream._state){if(0!==C)throw new TypeError("bytesWritten must be 0 when calling respond() on a closed stream")}else{if(0===C)throw new TypeError("bytesWritten must be greater than 0 when calling respond() on a readable stream");if(q.bytesFilled+C>q.byteLength)throw new RangeError("bytesWritten out of range")}q.buffer=q.buffer,qe(a,C)}(this._associatedReadableByteStreamController,a)}respondWithNewView(a){if(!fe(this))throw Be("respondWithNewView");if($(a,1,"respondWithNewView"),!ArrayBuffer.isView(a))throw new TypeError("You can only respond with array buffer views");if(void 0===this._associatedReadableByteStreamController)throw new TypeError("This BYOB request has been invalidated");a.buffer,function(a,C){const q=a._pendingPullIntos.peek();if("closed"===a._controlledReadableByteStream._state){if(0!==C.byteLength)throw new TypeError("The view's length must be 0 when calling respondWithNewView() on a closed stream")}else if(0===C.byteLength)throw new TypeError("The view's length must be greater than 0 when calling respondWithNewView() on a readable stream");if(q.byteOffset+q.bytesFilled!==C.byteOffset)throw new RangeError("The region specified by view does not match byobRequest");if(q.bufferByteLength!==C.buffer.byteLength)throw new RangeError("The buffer of view has different capacity than byobRequest");if(q.bytesFilled+C.byteLength>q.byteLength)throw new RangeError("The region specified by view is larger than byobRequest");const re=C.byteLength;q.buffer=C.buffer,qe(a,re)}(this._associatedReadableByteStreamController,a)}}Object.defineProperties(ReadableStreamBYOBRequest.prototype,{respond:{enumerable:!0},respondWithNewView:{enumerable:!0},view:{enumerable:!0}}),n(ReadableStreamBYOBRequest.prototype.respond,"respond"),n(ReadableStreamBYOBRequest.prototype.respondWithNewView,"respondWithNewView"),"symbol"==typeof re.toStringTag&&Object.defineProperty(ReadableStreamBYOBRequest.prototype,re.toStringTag,{value:"ReadableStreamBYOBRequest",configurable:!0});class ReadableByteStreamController{constructor(){throw new TypeError("Illegal constructor")}get byobRequest(){if(!de(this))throw Ae("byobRequest");return function(a){if(null===a._byobRequest&&a._pendingPullIntos.length>0){const C=a._pendingPullIntos.peek(),q=new Uint8Array(C.buffer,C.byteOffset+C.bytesFilled,C.byteLength-C.bytesFilled),re=Object.create(ReadableStreamBYOBRequest.prototype);!function(a,C,q){a._associatedReadableByteStreamController=C,a._view=q}(re,a,q),a._byobRequest=re}return a._byobRequest}(this)}get desiredSize(){if(!de(this))throw Ae("desiredSize");return ke(this)}close(){if(!de(this))throw Ae("close");if(this._closeRequested)throw new TypeError("The stream has already been closed; do not close it again!");const a=this._controlledReadableByteStream._state;if("readable"!==a)throw new TypeError(`The stream (in ${a} state) is not in the readable state and cannot be closed`);!function(a){const C=a._controlledReadableByteStream;if(a._closeRequested||"readable"!==C._state)return;if(a._queueTotalSize>0)return void(a._closeRequested=!0);if(a._pendingPullIntos.length>0){if(a._pendingPullIntos.peek().bytesFilled>0){const C=new TypeError("Insufficient bytes to fill elements in the given buffer");throw Pe(a,C),C}}Ee(a),Xt(C)}(this)}enqueue(a){if(!de(this))throw Ae("enqueue");if($(a,1,"enqueue"),!ArrayBuffer.isView(a))throw new TypeError("chunk must be an array buffer view");if(0===a.byteLength)throw new TypeError("chunk must have non-zero byteLength");if(0===a.buffer.byteLength)throw new TypeError("chunk's buffer must have non-zero byteLength");if(this._closeRequested)throw new TypeError("stream is closed or draining");const C=this._controlledReadableByteStream._state;if("readable"!==C)throw new TypeError(`The stream (in ${C} state) is not in the readable state and cannot be enqueued to`);!function(a,C){const q=a._controlledReadableByteStream;if(a._closeRequested||"readable"!==q._state)return;const re=C.buffer,ae=C.byteOffset,Ue=C.byteLength,lt=re;if(a._pendingPullIntos.length>0){const C=a._pendingPullIntos.peek();C.buffer,0,Re(a),C.buffer=C.buffer,"none"===C.readerType&&ge(a,C)}if(J(q))if(function(a){const C=a._controlledReadableByteStream._reader;for(;C._readRequests.length>0;){if(0===a._queueTotalSize)return;We(a,C._readRequests.shift())}}(a),0===X(q))me(a,lt,ae,Ue);else{a._pendingPullIntos.length>0&&Ce(a);G(q,new Uint8Array(lt,ae,Ue),!1)}else Le(q)?(me(a,lt,ae,Ue),Te(a)):me(a,lt,ae,Ue);be(a)}(this,a)}error(a){if(!de(this))throw Ae("error");Pe(this,a)}[Br](a){he(this),ce(this);const C=this._cancelAlgorithm(a);return Ee(this),C}[Qr](a){const C=this._controlledReadableByteStream;if(this._queueTotalSize>0)return void We(this,a);const q=this._autoAllocateChunkSize;if(void 0!==q){let re;try{re=new ArrayBuffer(q)}catch(C){return void a._errorSteps(C)}const ae={buffer:re,bufferByteLength:q,byteOffset:0,byteLength:q,bytesFilled:0,elementSize:1,viewConstructor:Uint8Array,readerType:"default"};this._pendingPullIntos.push(ae)}U(C,a),be(this)}[Ir](){if(this._pendingPullIntos.length>0){const a=this._pendingPullIntos.peek();a.readerType="none",this._pendingPullIntos=new S,this._pendingPullIntos.push(a)}}}function de(a){return!!r(a)&&(!!Object.prototype.hasOwnProperty.call(a,"_controlledReadableByteStream")&&a instanceof ReadableByteStreamController)}function fe(a){return!!r(a)&&(!!Object.prototype.hasOwnProperty.call(a,"_associatedReadableByteStreamController")&&a instanceof ReadableStreamBYOBRequest)}function be(a){const C=function(a){const C=a._controlledReadableByteStream;if("readable"!==C._state)return!1;if(a._closeRequested)return!1;if(!a._started)return!1;if(J(C)&&X(C)>0)return!0;if(Le(C)&&ze(C)>0)return!0;if(ke(a)>0)return!0;return!1}(a);if(!C)return;if(a._pulling)return void(a._pullAgain=!0);a._pulling=!0;b(a._pullAlgorithm(),(()=>(a._pulling=!1,a._pullAgain&&(a._pullAgain=!1,be(a)),null)),(C=>(Pe(a,C),null)))}function he(a){Re(a),a._pendingPullIntos=new S}function _e(a,C){let q=!1;"closed"===a._state&&(q=!0);const re=pe(C);"default"===C.readerType?G(a,re,q):function(a,C,q){const re=a._reader._readIntoRequests.shift();q?re._closeSteps(C):re._chunkSteps(C)}(a,re,q)}function pe(a){const C=a.bytesFilled,q=a.elementSize;return new a.viewConstructor(a.buffer,a.byteOffset,C/q)}function me(a,C,q,re){a._queue.push({buffer:C,byteOffset:q,byteLength:re}),a._queueTotalSize+=re}function ye(a,C,q,re){let ae;try{ae=C.slice(q,q+re)}catch(C){throw Pe(a,C),C}me(a,ae,0,re)}function ge(a,C){C.bytesFilled>0&&ye(a,C.buffer,C.byteOffset,C.bytesFilled),Ce(a)}function we(a,C){const q=C.elementSize,re=C.bytesFilled-C.bytesFilled%q,ae=Math.min(a._queueTotalSize,C.byteLength-C.bytesFilled),Ue=C.bytesFilled+ae,lt=Ue-Ue%q;let Pt=ae,Wt=!1;lt>re&&(Pt=lt-C.bytesFilled,Wt=!0);const Ar=a._queue;for(;Pt>0;){const q=Ar.peek(),re=Math.min(Pt,q.byteLength),ae=C.byteOffset+C.bytesFilled;ie(C.buffer,ae,q.buffer,q.byteOffset,re),q.byteLength===re?Ar.shift():(q.byteOffset+=re,q.byteLength-=re),a._queueTotalSize-=re,Se(a,re,C),Pt-=re}return Wt}function Se(a,C,q){q.bytesFilled+=C}function ve(a){0===a._queueTotalSize&&a._closeRequested?(Ee(a),Xt(a._controlledReadableByteStream)):be(a)}function Re(a){null!==a._byobRequest&&(a._byobRequest._associatedReadableByteStreamController=void 0,a._byobRequest._view=null,a._byobRequest=null)}function Te(a){for(;a._pendingPullIntos.length>0;){if(0===a._queueTotalSize)return;const C=a._pendingPullIntos.peek();we(a,C)&&(Ce(a),_e(a._controlledReadableByteStream,C))}}function qe(a,C){const q=a._pendingPullIntos.peek();Re(a);"closed"===a._controlledReadableByteStream._state?function(a,C){"none"===C.readerType&&Ce(a);const q=a._controlledReadableByteStream;if(Le(q))for(;ze(q)>0;)_e(q,Ce(a))}(a,q):function(a,C,q){if(Se(0,C,q),"none"===q.readerType)return ge(a,q),void Te(a);if(q.bytesFilled0){const C=q.byteOffset+q.bytesFilled;ye(a,q.buffer,C-re,re)}q.bytesFilled-=re,_e(a._controlledReadableByteStream,q),Te(a)}(a,C,q),be(a)}function Ce(a){return a._pendingPullIntos.shift()}function Ee(a){a._pullAlgorithm=void 0,a._cancelAlgorithm=void 0}function Pe(a,C){const q=a._controlledReadableByteStream;"readable"===q._state&&(he(a),ce(a),Ee(a),Jt(q,C))}function We(a,C){const q=a._queue.shift();a._queueTotalSize-=q.byteLength,ve(a);const re=new Uint8Array(q.buffer,q.byteOffset,q.byteLength);C._chunkSteps(re)}function ke(a){const C=a._controlledReadableByteStream._state;return"errored"===C?null:"closed"===C?0:a._strategyHWM-a._queueTotalSize}function Oe(a,C,q){const re=Object.create(ReadableByteStreamController.prototype);let ae,Ue,lt;ae=void 0!==C.start?()=>C.start(re):()=>{},Ue=void 0!==C.pull?()=>C.pull(re):()=>c(void 0),lt=void 0!==C.cancel?a=>C.cancel(a):()=>c(void 0);const Pt=C.autoAllocateChunkSize;if(0===Pt)throw new TypeError("autoAllocateChunkSize must be greater than 0");!function(a,C,q,re,ae,Ue,lt){C._controlledReadableByteStream=a,C._pullAgain=!1,C._pulling=!1,C._byobRequest=null,C._queue=C._queueTotalSize=void 0,ce(C),C._closeRequested=!1,C._started=!1,C._strategyHWM=Ue,C._pullAlgorithm=re,C._cancelAlgorithm=ae,C._autoAllocateChunkSize=lt,C._pendingPullIntos=new S,a._readableStreamController=C,b(c(q()),(()=>(C._started=!0,be(C),null)),(a=>(Pe(C,a),null)))}(a,re,ae,Ue,lt,q,Pt)}function Be(a){return new TypeError(`ReadableStreamBYOBRequest.prototype.${a} can only be used on a ReadableStreamBYOBRequest`)}function Ae(a){return new TypeError(`ReadableByteStreamController.prototype.${a} can only be used on a ReadableByteStreamController`)}function je(a,C){a._reader._readIntoRequests.push(C)}function ze(a){return a._reader._readIntoRequests.length}function Le(a){const C=a._reader;return void 0!==C&&!!Fe(C)}Object.defineProperties(ReadableByteStreamController.prototype,{close:{enumerable:!0},enqueue:{enumerable:!0},error:{enumerable:!0},byobRequest:{enumerable:!0},desiredSize:{enumerable:!0}}),n(ReadableByteStreamController.prototype.close,"close"),n(ReadableByteStreamController.prototype.enqueue,"enqueue"),n(ReadableByteStreamController.prototype.error,"error"),"symbol"==typeof re.toStringTag&&Object.defineProperty(ReadableByteStreamController.prototype,re.toStringTag,{value:"ReadableByteStreamController",configurable:!0});class ReadableStreamBYOBReader{constructor(a){if($(a,1,"ReadableStreamBYOBReader"),V(a,"First parameter"),Ut(a))throw new TypeError("This stream has already been locked for exclusive reading by another reader");if(!de(a._readableStreamController))throw new TypeError("Cannot construct a ReadableStreamBYOBReader for a stream not constructed with a byte source");E(this,a),this._readIntoRequests=new S}get closed(){return Fe(this)?this._closedPromise:d(De("closed"))}cancel(a){return Fe(this)?void 0===this._ownerReadableStream?d(k("cancel")):P(this,a):d(De("cancel"))}read(a){if(!Fe(this))return d(De("read"));if(!ArrayBuffer.isView(a))return d(new TypeError("view must be an array buffer view"));if(0===a.byteLength)return d(new TypeError("view must have non-zero byteLength"));if(0===a.buffer.byteLength)return d(new TypeError("view's buffer must have non-zero byteLength"));if(a.buffer,void 0===this._ownerReadableStream)return d(k("read from"));let C,q;const re=u(((a,re)=>{C=a,q=re}));return function(a,C,q){const re=a._ownerReadableStream;re._disturbed=!0,"errored"===re._state?q._errorSteps(re._storedError):function(a,C,q){const re=a._controlledReadableByteStream;let ae=1;C.constructor!==DataView&&(ae=C.constructor.BYTES_PER_ELEMENT);const Ue=C.constructor,lt=C.buffer,Pt={buffer:lt,bufferByteLength:lt.byteLength,byteOffset:C.byteOffset,byteLength:C.byteLength,bytesFilled:0,elementSize:ae,viewConstructor:Ue,readerType:"byob"};if(a._pendingPullIntos.length>0)return a._pendingPullIntos.push(Pt),void je(re,q);if("closed"!==re._state){if(a._queueTotalSize>0){if(we(a,Pt)){const C=pe(Pt);return ve(a),void q._chunkSteps(C)}if(a._closeRequested){const C=new TypeError("Insufficient bytes to fill elements in the given buffer");return Pe(a,C),void q._errorSteps(C)}}a._pendingPullIntos.push(Pt),je(re,q),be(a)}else{const a=new Ue(Pt.buffer,Pt.byteOffset,0);q._closeSteps(a)}}(re._readableStreamController,C,q)}(this,a,{_chunkSteps:a=>C({value:a,done:!1}),_closeSteps:a=>C({value:a,done:!0}),_errorSteps:a=>q(a)}),re}releaseLock(){if(!Fe(this))throw De("releaseLock");void 0!==this._ownerReadableStream&&function(a){W(a);const C=new TypeError("Reader was released");Ie(a,C)}(this)}}function Fe(a){return!!r(a)&&(!!Object.prototype.hasOwnProperty.call(a,"_readIntoRequests")&&a instanceof ReadableStreamBYOBReader)}function Ie(a,C){const q=a._readIntoRequests;a._readIntoRequests=new S,q.forEach((a=>{a._errorSteps(C)}))}function De(a){return new TypeError(`ReadableStreamBYOBReader.prototype.${a} can only be used on a ReadableStreamBYOBReader`)}function $e(a,C){const{highWaterMark:q}=a;if(void 0===q)return C;if(Nr(q)||q<0)throw new RangeError("Invalid highWaterMark");return q}function Me(a){const{size:C}=a;return C||(()=>1)}function Ye(a,C){F(a,C);const q=null==a?void 0:a.highWaterMark,re=null==a?void 0:a.size;return{highWaterMark:void 0===q?void 0:Y(q),size:void 0===re?void 0:Qe(re,`${C} has member 'size' that`)}}function Qe(a,C){return I(a,C),C=>Y(a(C))}function Ne(a,C,q){return I(a,q),q=>w(a,C,[q])}function He(a,C,q){return I(a,q),()=>w(a,C,[])}function xe(a,C,q){return I(a,q),q=>g(a,C,[q])}function Ve(a,C,q){return I(a,q),(q,re)=>w(a,C,[q,re])}Object.defineProperties(ReadableStreamBYOBReader.prototype,{cancel:{enumerable:!0},read:{enumerable:!0},releaseLock:{enumerable:!0},closed:{enumerable:!0}}),n(ReadableStreamBYOBReader.prototype.cancel,"cancel"),n(ReadableStreamBYOBReader.prototype.read,"read"),n(ReadableStreamBYOBReader.prototype.releaseLock,"releaseLock"),"symbol"==typeof re.toStringTag&&Object.defineProperty(ReadableStreamBYOBReader.prototype,re.toStringTag,{value:"ReadableStreamBYOBReader",configurable:!0});const Ur="function"==typeof AbortController;class WritableStream{constructor(a={},C={}){void 0===a?a=null:D(a,"First parameter");const q=Ye(C,"Second parameter"),re=function(a,C){F(a,C);const q=null==a?void 0:a.abort,re=null==a?void 0:a.close,ae=null==a?void 0:a.start,Ue=null==a?void 0:a.type,lt=null==a?void 0:a.write;return{abort:void 0===q?void 0:Ne(q,a,`${C} has member 'abort' that`),close:void 0===re?void 0:He(re,a,`${C} has member 'close' that`),start:void 0===ae?void 0:xe(ae,a,`${C} has member 'start' that`),write:void 0===lt?void 0:Ve(lt,a,`${C} has member 'write' that`),type:Ue}}(a,"First parameter");var ae;(ae=this)._state="writable",ae._storedError=void 0,ae._writer=void 0,ae._writableStreamController=void 0,ae._writeRequests=new S,ae._inFlightWriteRequest=void 0,ae._closeRequest=void 0,ae._inFlightCloseRequest=void 0,ae._pendingAbortRequest=void 0,ae._backpressure=!1;if(void 0!==re.type)throw new RangeError("Invalid type is specified");const Ue=Me(q);!function(a,C,q,re){const ae=Object.create(WritableStreamDefaultController.prototype);let Ue,lt,Pt,Wt;Ue=void 0!==C.start?()=>C.start(ae):()=>{};lt=void 0!==C.write?a=>C.write(a,ae):()=>c(void 0);Pt=void 0!==C.close?()=>C.close():()=>c(void 0);Wt=void 0!==C.abort?a=>C.abort(a):()=>c(void 0);!function(a,C,q,re,ae,Ue,lt,Pt){C._controlledWritableStream=a,a._writableStreamController=C,C._queue=void 0,C._queueTotalSize=void 0,ce(C),C._abortReason=void 0,C._abortController=function(){if(Ur)return new AbortController}(),C._started=!1,C._strategySizeAlgorithm=Pt,C._strategyHWM=lt,C._writeAlgorithm=re,C._closeAlgorithm=ae,C._abortAlgorithm=Ue;const Wt=bt(C);nt(a,Wt);const Ar=q();b(c(Ar),(()=>(C._started=!0,dt(C),null)),(q=>(C._started=!0,Ze(a,q),null)))}(a,ae,Ue,lt,Pt,Wt,q,re)}(this,re,$e(q,1),Ue)}get locked(){if(!Ge(this))throw _t("locked");return Xe(this)}abort(a){return Ge(this)?Xe(this)?d(new TypeError("Cannot abort a stream that already has a writer")):Je(this,a):d(_t("abort"))}close(){return Ge(this)?Xe(this)?d(new TypeError("Cannot close a stream that already has a writer")):rt(this)?d(new TypeError("Cannot close an already-closing stream")):Ke(this):d(_t("close"))}getWriter(){if(!Ge(this))throw _t("getWriter");return new WritableStreamDefaultWriter(this)}}function Ge(a){return!!r(a)&&(!!Object.prototype.hasOwnProperty.call(a,"_writableStreamController")&&a instanceof WritableStream)}function Xe(a){return void 0!==a._writer}function Je(a,C){var q;if("closed"===a._state||"errored"===a._state)return c(void 0);a._writableStreamController._abortReason=C,null===(q=a._writableStreamController._abortController)||void 0===q||q.abort(C);const re=a._state;if("closed"===re||"errored"===re)return c(void 0);if(void 0!==a._pendingAbortRequest)return a._pendingAbortRequest._promise;let ae=!1;"erroring"===re&&(ae=!0,C=void 0);const Ue=u(((q,re)=>{a._pendingAbortRequest={_promise:void 0,_resolve:q,_reject:re,_reason:C,_wasAlreadyErroring:ae}}));return a._pendingAbortRequest._promise=Ue,ae||et(a,C),Ue}function Ke(a){const C=a._state;if("closed"===C||"errored"===C)return d(new TypeError(`The stream (in ${C} state) is not in the writable state and cannot be closed`));const q=u(((C,q)=>{const re={_resolve:C,_reject:q};a._closeRequest=re})),re=a._writer;var ae;return void 0!==re&&a._backpressure&&"writable"===C&&Et(re),ue(ae=a._writableStreamController,Lr,0),dt(ae),q}function Ze(a,C){"writable"!==a._state?tt(a):et(a,C)}function et(a,C){const q=a._writableStreamController;a._state="erroring",a._storedError=C;const re=a._writer;void 0!==re&&it(re,C),!function(a){if(void 0===a._inFlightWriteRequest&&void 0===a._inFlightCloseRequest)return!1;return!0}(a)&&q._started&&tt(a)}function tt(a){a._state="errored",a._writableStreamController[Er]();const C=a._storedError;if(a._writeRequests.forEach((a=>{a._reject(C)})),a._writeRequests=new S,void 0===a._pendingAbortRequest)return void ot(a);const q=a._pendingAbortRequest;if(a._pendingAbortRequest=void 0,q._wasAlreadyErroring)return q._reject(C),void ot(a);b(a._writableStreamController[Ar](q._reason),(()=>(q._resolve(),ot(a),null)),(C=>(q._reject(C),ot(a),null)))}function rt(a){return void 0!==a._closeRequest||void 0!==a._inFlightCloseRequest}function ot(a){void 0!==a._closeRequest&&(a._closeRequest._reject(a._storedError),a._closeRequest=void 0);const C=a._writer;void 0!==C&&St(C,a._storedError)}function nt(a,C){const q=a._writer;void 0!==q&&C!==a._backpressure&&(C?function(a){Rt(a)}(q):Et(q)),a._backpressure=C}Object.defineProperties(WritableStream.prototype,{abort:{enumerable:!0},close:{enumerable:!0},getWriter:{enumerable:!0},locked:{enumerable:!0}}),n(WritableStream.prototype.abort,"abort"),n(WritableStream.prototype.close,"close"),n(WritableStream.prototype.getWriter,"getWriter"),"symbol"==typeof re.toStringTag&&Object.defineProperty(WritableStream.prototype,re.toStringTag,{value:"WritableStream",configurable:!0});class WritableStreamDefaultWriter{constructor(a){if($(a,1,"WritableStreamDefaultWriter"),function(a,C){if(!Ge(a))throw new TypeError(`${C} is not a WritableStream.`)}(a,"First parameter"),Xe(a))throw new TypeError("This stream has already been locked for exclusive writing by another writer");this._ownerWritableStream=a,a._writer=this;const C=a._state;if("writable"===C)!rt(a)&&a._backpressure?Rt(this):qt(this),gt(this);else if("erroring"===C)Tt(this,a._storedError),gt(this);else if("closed"===C)qt(this),gt(q=this),vt(q);else{const C=a._storedError;Tt(this,C),wt(this,C)}var q}get closed(){return at(this)?this._closedPromise:d(mt("closed"))}get desiredSize(){if(!at(this))throw mt("desiredSize");if(void 0===this._ownerWritableStream)throw yt("desiredSize");return function(a){const C=a._ownerWritableStream,q=C._state;if("errored"===q||"erroring"===q)return null;if("closed"===q)return 0;return ct(C._writableStreamController)}(this)}get ready(){return at(this)?this._readyPromise:d(mt("ready"))}abort(a){return at(this)?void 0===this._ownerWritableStream?d(yt("abort")):function(a,C){return Je(a._ownerWritableStream,C)}(this,a):d(mt("abort"))}close(){if(!at(this))return d(mt("close"));const a=this._ownerWritableStream;return void 0===a?d(yt("close")):rt(a)?d(new TypeError("Cannot close an already-closing stream")):Ke(this._ownerWritableStream)}releaseLock(){if(!at(this))throw mt("releaseLock");void 0!==this._ownerWritableStream&&function(a){const C=a._ownerWritableStream,q=new TypeError("Writer was released and can no longer be used to monitor the stream's closedness");it(a,q),function(a,C){"pending"===a._closedPromiseState?St(a,C):function(a,C){wt(a,C)}(a,C)}(a,q),C._writer=void 0,a._ownerWritableStream=void 0}(this)}write(a){return at(this)?void 0===this._ownerWritableStream?d(yt("write to")):function(a,C){const q=a._ownerWritableStream,re=q._writableStreamController,ae=function(a,C){try{return a._strategySizeAlgorithm(C)}catch(C){return ft(a,C),1}}(re,C);if(q!==a._ownerWritableStream)return d(yt("write to"));const Ue=q._state;if("errored"===Ue)return d(q._storedError);if(rt(q)||"closed"===Ue)return d(new TypeError("The stream is closing or closed and cannot be written to"));if("erroring"===Ue)return d(q._storedError);const lt=function(a){return u(((C,q)=>{const re={_resolve:C,_reject:q};a._writeRequests.push(re)}))}(q);return function(a,C,q){try{ue(a,C,q)}catch(C){return void ft(a,C)}const re=a._controlledWritableStream;if(!rt(re)&&"writable"===re._state){nt(re,bt(a))}dt(a)}(re,C,ae),lt}(this,a):d(mt("write"))}}function at(a){return!!r(a)&&(!!Object.prototype.hasOwnProperty.call(a,"_ownerWritableStream")&&a instanceof WritableStreamDefaultWriter)}function it(a,C){"pending"===a._readyPromiseState?Ct(a,C):function(a,C){Tt(a,C)}(a,C)}Object.defineProperties(WritableStreamDefaultWriter.prototype,{abort:{enumerable:!0},close:{enumerable:!0},releaseLock:{enumerable:!0},write:{enumerable:!0},closed:{enumerable:!0},desiredSize:{enumerable:!0},ready:{enumerable:!0}}),n(WritableStreamDefaultWriter.prototype.abort,"abort"),n(WritableStreamDefaultWriter.prototype.close,"close"),n(WritableStreamDefaultWriter.prototype.releaseLock,"releaseLock"),n(WritableStreamDefaultWriter.prototype.write,"write"),"symbol"==typeof re.toStringTag&&Object.defineProperty(WritableStreamDefaultWriter.prototype,re.toStringTag,{value:"WritableStreamDefaultWriter",configurable:!0});const Lr={};class WritableStreamDefaultController{constructor(){throw new TypeError("Illegal constructor")}get abortReason(){if(!st(this))throw pt("abortReason");return this._abortReason}get signal(){if(!st(this))throw pt("signal");if(void 0===this._abortController)throw new TypeError("WritableStreamDefaultController.prototype.signal is not supported");return this._abortController.signal}error(a){if(!st(this))throw pt("error");"writable"===this._controlledWritableStream._state&&ht(this,a)}[Ar](a){const C=this._abortAlgorithm(a);return ut(this),C}[Er](){ce(this)}}function st(a){return!!r(a)&&(!!Object.prototype.hasOwnProperty.call(a,"_controlledWritableStream")&&a instanceof WritableStreamDefaultController)}function ut(a){a._writeAlgorithm=void 0,a._closeAlgorithm=void 0,a._abortAlgorithm=void 0,a._strategySizeAlgorithm=void 0}function ct(a){return a._strategyHWM-a._queueTotalSize}function dt(a){const C=a._controlledWritableStream;if(!a._started)return;if(void 0!==C._inFlightWriteRequest)return;if("erroring"===C._state)return void tt(C);if(0===a._queue.length)return;const q=a._queue.peek().value;q===Lr?function(a){const C=a._controlledWritableStream;(function(a){a._inFlightCloseRequest=a._closeRequest,a._closeRequest=void 0})(C),se(a);const q=a._closeAlgorithm();ut(a),b(q,(()=>(function(a){a._inFlightCloseRequest._resolve(void 0),a._inFlightCloseRequest=void 0,"erroring"===a._state&&(a._storedError=void 0,void 0!==a._pendingAbortRequest&&(a._pendingAbortRequest._resolve(),a._pendingAbortRequest=void 0)),a._state="closed";const C=a._writer;void 0!==C&&vt(C)}(C),null)),(a=>(function(a,C){a._inFlightCloseRequest._reject(C),a._inFlightCloseRequest=void 0,void 0!==a._pendingAbortRequest&&(a._pendingAbortRequest._reject(C),a._pendingAbortRequest=void 0),Ze(a,C)}(C,a),null)))}(a):function(a,C){const q=a._controlledWritableStream;!function(a){a._inFlightWriteRequest=a._writeRequests.shift()}(q);b(a._writeAlgorithm(C),(()=>{!function(a){a._inFlightWriteRequest._resolve(void 0),a._inFlightWriteRequest=void 0}(q);const C=q._state;if(se(a),!rt(q)&&"writable"===C){const C=bt(a);nt(q,C)}return dt(a),null}),(C=>("writable"===q._state&&ut(a),function(a,C){a._inFlightWriteRequest._reject(C),a._inFlightWriteRequest=void 0,Ze(a,C)}(q,C),null)))}(a,q)}function ft(a,C){"writable"===a._controlledWritableStream._state&&ht(a,C)}function bt(a){return ct(a)<=0}function ht(a,C){const q=a._controlledWritableStream;ut(a),et(q,C)}function _t(a){return new TypeError(`WritableStream.prototype.${a} can only be used on a WritableStream`)}function pt(a){return new TypeError(`WritableStreamDefaultController.prototype.${a} can only be used on a WritableStreamDefaultController`)}function mt(a){return new TypeError(`WritableStreamDefaultWriter.prototype.${a} can only be used on a WritableStreamDefaultWriter`)}function yt(a){return new TypeError("Cannot "+a+" a stream using a released writer")}function gt(a){a._closedPromise=u(((C,q)=>{a._closedPromise_resolve=C,a._closedPromise_reject=q,a._closedPromiseState="pending"}))}function wt(a,C){gt(a),St(a,C)}function St(a,C){void 0!==a._closedPromise_reject&&(m(a._closedPromise),a._closedPromise_reject(C),a._closedPromise_resolve=void 0,a._closedPromise_reject=void 0,a._closedPromiseState="rejected")}function vt(a){void 0!==a._closedPromise_resolve&&(a._closedPromise_resolve(void 0),a._closedPromise_resolve=void 0,a._closedPromise_reject=void 0,a._closedPromiseState="resolved")}function Rt(a){a._readyPromise=u(((C,q)=>{a._readyPromise_resolve=C,a._readyPromise_reject=q})),a._readyPromiseState="pending"}function Tt(a,C){Rt(a),Ct(a,C)}function qt(a){Rt(a),Et(a)}function Ct(a,C){void 0!==a._readyPromise_reject&&(m(a._readyPromise),a._readyPromise_reject(C),a._readyPromise_resolve=void 0,a._readyPromise_reject=void 0,a._readyPromiseState="rejected")}function Et(a){void 0!==a._readyPromise_resolve&&(a._readyPromise_resolve(void 0),a._readyPromise_resolve=void 0,a._readyPromise_reject=void 0,a._readyPromiseState="fulfilled")}Object.defineProperties(WritableStreamDefaultController.prototype,{abortReason:{enumerable:!0},signal:{enumerable:!0},error:{enumerable:!0}}),"symbol"==typeof re.toStringTag&&Object.defineProperty(WritableStreamDefaultController.prototype,re.toStringTag,{value:"WritableStreamDefaultController",configurable:!0});const Mr="undefined"!=typeof DOMException?DOMException:void 0;const Pr=function(a){if("function"!=typeof a&&"object"!=typeof a)return!1;try{return new a,!0}catch(a){return!1}}(Mr)?Mr:function(){const e=function(a,C){this.message=a||"",this.name=C||"Error",Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)};return e.prototype=Object.create(Error.prototype),Object.defineProperty(e.prototype,"constructor",{value:e,writable:!0,configurable:!0}),e}();function kt(a,C,q,re,ae,Ue){const lt=a.getReader(),Pt=C.getWriter();Vt(a)&&(a._disturbed=!0);let Wt,Ar,Er,Br=!1,Qr=!1,Ir="readable",Dr="writable",kr=!1,Fr=!1;const Nr=u((a=>{Er=a}));let Ur=Promise.resolve(void 0);return u(((Lr,Mr)=>{let Gr;function O(){if(Br)return;const a=u(((a,C)=>{!function r(q){q?a():f(function(){if(Br)return c(!0);return f(Pt.ready,(()=>f(lt.read(),(a=>!!a.done||(Ur=Pt.write(a.value),m(Ur),!1)))))}(),r,C)}(!1)}));m(a)}function B(){return Ir="closed",q?L():z((()=>(Ge(C)&&(kr=rt(C),Dr=C._state),kr||"closed"===Dr?c(void 0):"erroring"===Dr||"errored"===Dr?d(Ar):(kr=!0,Pt.close()))),!1,void 0),null}function A(a){return Br||(Ir="errored",Wt=a,re?L(!0,a):z((()=>Pt.abort(a)),!0,a)),null}function j(a){return Qr||(Dr="errored",Ar=a,ae?L(!0,a):z((()=>lt.cancel(a)),!0,a)),null}if(void 0!==Ue&&(Gr=()=>{const a=void 0!==Ue.reason?Ue.reason:new Pr("Aborted","AbortError"),C=[];re||C.push((()=>"writable"===Dr?Pt.abort(a):c(void 0))),ae||C.push((()=>"readable"===Ir?lt.cancel(a):c(void 0))),z((()=>Promise.all(C.map((a=>a())))),!0,a)},Ue.aborted?Gr():Ue.addEventListener("abort",Gr)),Vt(a)&&(Ir=a._state,Wt=a._storedError),Ge(C)&&(Dr=C._state,Ar=C._storedError,kr=rt(C)),Vt(a)&&Ge(C)&&(Fr=!0,Er()),"errored"===Ir)A(Wt);else if("erroring"===Dr||"errored"===Dr)j(Ar);else if("closed"===Ir)B();else if(kr||"closed"===Dr){const a=new TypeError("the destination writable stream closed before all data could be piped to it");ae?L(!0,a):z((()=>lt.cancel(a)),!0,a)}function z(a,C,q){function o(){return"writable"!==Dr||kr?n():h(function(){let a;return c(function t(){if(a!==Ur)return a=Ur,p(Ur,t,t)}())}(),n),null}function n(){return a?b(a(),(()=>F(C,q)),(a=>F(!0,a))):F(C,q),null}Br||(Br=!0,Fr?o():h(Nr,o))}function L(a,C){z(void 0,a,C)}function F(a,C){return Qr=!0,Pt.releaseLock(),lt.releaseLock(),void 0!==Ue&&Ue.removeEventListener("abort",Gr),a?Mr(C):Lr(void 0),null}Br||(b(lt.closed,B,A),b(Pt.closed,(function(){return Qr||(Dr="closed"),null}),j)),Fr?O():y((()=>{Fr=!0,Er(),O()}))}))}function Ot(a,C){return function(a){try{return a.getReader({mode:"byob"}).releaseLock(),!0}catch(a){return!1}}(a)?function(a){let C,q,re,ae,Ue,lt=a.getReader(),Pt=!1,Wt=!1,Ar=!1,Er=!1,Br=!1,Qr=!1;const Ir=u((a=>{Ue=a}));function y(a){_(a.closed,(C=>(a!==lt||(re.error(C),ae.error(C),Br&&Qr||Ue(void 0)),null)))}function g(){Pt&&(lt.releaseLock(),lt=a.getReader(),y(lt),Pt=!1),b(lt.read(),(a=>{var C,q;if(Ar=!1,Er=!1,a.done)return Br||re.close(),Qr||ae.close(),null===(C=re.byobRequest)||void 0===C||C.respond(0),null===(q=ae.byobRequest)||void 0===q||q.respond(0),Br&&Qr||Ue(void 0),null;const Pt=a.value,Ir=Pt;let Dr=Pt;if(!Br&&!Qr)try{Dr=le(Pt)}catch(a){return re.error(a),ae.error(a),Ue(lt.cancel(a)),null}return Br||re.enqueue(Ir),Qr||ae.enqueue(Dr),Wt=!1,Ar?S():Er&&v(),null}),(()=>(Wt=!1,null)))}function w(C,q){Pt||(lt.releaseLock(),lt=a.getReader({mode:"byob"}),y(lt),Pt=!0);const Ir=q?ae:re,Dr=q?re:ae;b(lt.read(C),(a=>{var C;Ar=!1,Er=!1;const re=q?Qr:Br,ae=q?Br:Qr;if(a.done){re||Ir.close(),ae||Dr.close();const q=a.value;return void 0!==q&&(re||Ir.byobRequest.respondWithNewView(q),ae||null===(C=Dr.byobRequest)||void 0===C||C.respond(0)),re&&ae||Ue(void 0),null}const Pt=a.value;if(ae)re||Ir.byobRequest.respondWithNewView(Pt);else{let C;try{C=le(Pt)}catch(a){return Ir.error(a),Dr.error(a),Ue(lt.cancel(a)),null}re||Ir.byobRequest.respondWithNewView(Pt),Dr.enqueue(C)}return Wt=!1,Ar?S():Er&&v(),null}),(()=>(Wt=!1,null)))}function S(){if(Wt)return Ar=!0,c(void 0);Wt=!0;const a=re.byobRequest;return null===a?g():w(a.view,!1),c(void 0)}function v(){if(Wt)return Er=!0,c(void 0);Wt=!0;const a=ae.byobRequest;return null===a?g():w(a.view,!0),c(void 0)}function R(a){if(Br=!0,C=a,Qr){const a=[C,q],re=lt.cancel(a);Ue(re)}return Ir}function T(a){if(Qr=!0,q=a,Br){const a=[C,q],re=lt.cancel(a);Ue(re)}return Ir}const Dr=new ReadableStream({type:"bytes",start(a){re=a},pull:S,cancel:R}),kr=new ReadableStream({type:"bytes",start(a){ae=a},pull:v,cancel:T});return y(lt),[Dr,kr]}(a):function(a,C){const q=a.getReader();let re,ae,Ue,lt,Pt,Wt=!1,Ar=!1,Er=!1,Br=!1;const Qr=u((a=>{Pt=a}));function m(){return Wt?(Ar=!0,c(void 0)):(Wt=!0,b(q.read(),(a=>{if(Ar=!1,a.done)return Er||Ue.close(),Br||lt.close(),Er&&Br||Pt(void 0),null;const C=a.value,q=C,re=C;return Er||Ue.enqueue(q),Br||lt.enqueue(re),Wt=!1,Ar&&m(),null}),(()=>(Wt=!1,null))),c(void 0))}function y(a){if(Er=!0,re=a,Br){const a=[re,ae],C=q.cancel(a);Pt(C)}return Qr}function g(a){if(Br=!0,ae=a,Er){const a=[re,ae],C=q.cancel(a);Pt(C)}return Qr}const Ir=new ReadableStream({start(a){Ue=a},pull:m,cancel:y}),Dr=new ReadableStream({start(a){lt=a},pull:m,cancel:g});return _(q.closed,(a=>(Ue.error(a),lt.error(a),Er&&Br||Pt(void 0),null))),[Ir,Dr]}(a)}class ReadableStreamDefaultController{constructor(){throw new TypeError("Illegal constructor")}get desiredSize(){if(!Bt(this))throw Dt("desiredSize");return Lt(this)}close(){if(!Bt(this))throw Dt("close");if(!Ft(this))throw new TypeError("The stream is not in a state that permits close");!function(a){if(!Ft(a))return;const C=a._controlledReadableStream;a._closeRequested=!0,0===a._queue.length&&(jt(a),Xt(C))}(this)}enqueue(a){if(!Bt(this))throw Dt("enqueue");if(!Ft(this))throw new TypeError("The stream is not in a state that permits enqueue");return function(a,C){if(!Ft(a))return;const q=a._controlledReadableStream;if(Ut(q)&&X(q)>0)G(q,C,!1);else{let q;try{q=a._strategySizeAlgorithm(C)}catch(C){throw zt(a,C),C}try{ue(a,C,q)}catch(C){throw zt(a,C),C}}At(a)}(this,a)}error(a){if(!Bt(this))throw Dt("error");zt(this,a)}[Br](a){ce(this);const C=this._cancelAlgorithm(a);return jt(this),C}[Qr](a){const C=this._controlledReadableStream;if(this._queue.length>0){const q=se(this);this._closeRequested&&0===this._queue.length?(jt(this),Xt(C)):At(this),a._chunkSteps(q)}else U(C,a),At(this)}[Ir](){}}function Bt(a){return!!r(a)&&(!!Object.prototype.hasOwnProperty.call(a,"_controlledReadableStream")&&a instanceof ReadableStreamDefaultController)}function At(a){const C=function(a){const C=a._controlledReadableStream;if(!Ft(a))return!1;if(!a._started)return!1;if(Ut(C)&&X(C)>0)return!0;if(Lt(a)>0)return!0;return!1}(a);if(!C)return;if(a._pulling)return void(a._pullAgain=!0);a._pulling=!0;b(a._pullAlgorithm(),(()=>(a._pulling=!1,a._pullAgain&&(a._pullAgain=!1,At(a)),null)),(C=>(zt(a,C),null)))}function jt(a){a._pullAlgorithm=void 0,a._cancelAlgorithm=void 0,a._strategySizeAlgorithm=void 0}function zt(a,C){const q=a._controlledReadableStream;"readable"===q._state&&(ce(a),jt(a),Jt(q,C))}function Lt(a){const C=a._controlledReadableStream._state;return"errored"===C?null:"closed"===C?0:a._strategyHWM-a._queueTotalSize}function Ft(a){return!a._closeRequested&&"readable"===a._controlledReadableStream._state}function It(a,C,q,re){const ae=Object.create(ReadableStreamDefaultController.prototype);let Ue,lt,Pt;Ue=void 0!==C.start?()=>C.start(ae):()=>{},lt=void 0!==C.pull?()=>C.pull(ae):()=>c(void 0),Pt=void 0!==C.cancel?a=>C.cancel(a):()=>c(void 0),function(a,C,q,re,ae,Ue,lt){C._controlledReadableStream=a,C._queue=void 0,C._queueTotalSize=void 0,ce(C),C._started=!1,C._closeRequested=!1,C._pullAgain=!1,C._pulling=!1,C._strategySizeAlgorithm=lt,C._strategyHWM=Ue,C._pullAlgorithm=re,C._cancelAlgorithm=ae,a._readableStreamController=C,b(c(q()),(()=>(C._started=!0,At(C),null)),(a=>(zt(C,a),null)))}(a,ae,Ue,lt,Pt,q,re)}function Dt(a){return new TypeError(`ReadableStreamDefaultController.prototype.${a} can only be used on a ReadableStreamDefaultController`)}function $t(a,C,q){return I(a,q),q=>w(a,C,[q])}function Mt(a,C,q){return I(a,q),q=>w(a,C,[q])}function Yt(a,C,q){return I(a,q),q=>g(a,C,[q])}function Qt(a,C){if("bytes"!==(a=`${a}`))throw new TypeError(`${C} '${a}' is not a valid enumeration value for ReadableStreamType`);return a}function Nt(a,C){if("byob"!==(a=`${a}`))throw new TypeError(`${C} '${a}' is not a valid enumeration value for ReadableStreamReaderMode`);return a}function Ht(a,C){F(a,C);const q=null==a?void 0:a.preventAbort,re=null==a?void 0:a.preventCancel,ae=null==a?void 0:a.preventClose,Ue=null==a?void 0:a.signal;return void 0!==Ue&&function(a,C){if(!function(a){if("object"!=typeof a||null===a)return!1;try{return"boolean"==typeof a.aborted}catch(a){return!1}}(a))throw new TypeError(`${C} is not an AbortSignal.`)}(Ue,`${C} has member 'signal' that`),{preventAbort:Boolean(q),preventCancel:Boolean(re),preventClose:Boolean(ae),signal:Ue}}function xt(a,C){F(a,C);const q=null==a?void 0:a.readable;M(q,"readable","ReadableWritablePair"),function(a,C){if(!H(a))throw new TypeError(`${C} is not a ReadableStream.`)}(q,`${C} has member 'readable' that`);const re=null==a?void 0:a.writable;return M(re,"writable","ReadableWritablePair"),function(a,C){if(!x(a))throw new TypeError(`${C} is not a WritableStream.`)}(re,`${C} has member 'writable' that`),{readable:q,writable:re}}Object.defineProperties(ReadableStreamDefaultController.prototype,{close:{enumerable:!0},enqueue:{enumerable:!0},error:{enumerable:!0},desiredSize:{enumerable:!0}}),n(ReadableStreamDefaultController.prototype.close,"close"),n(ReadableStreamDefaultController.prototype.enqueue,"enqueue"),n(ReadableStreamDefaultController.prototype.error,"error"),"symbol"==typeof re.toStringTag&&Object.defineProperty(ReadableStreamDefaultController.prototype,re.toStringTag,{value:"ReadableStreamDefaultController",configurable:!0});class ReadableStream{constructor(a={},C={}){void 0===a?a=null:D(a,"First parameter");const q=Ye(C,"Second parameter"),re=function(a,C){F(a,C);const q=a,re=null==q?void 0:q.autoAllocateChunkSize,ae=null==q?void 0:q.cancel,Ue=null==q?void 0:q.pull,lt=null==q?void 0:q.start,Pt=null==q?void 0:q.type;return{autoAllocateChunkSize:void 0===re?void 0:N(re,`${C} has member 'autoAllocateChunkSize' that`),cancel:void 0===ae?void 0:$t(ae,q,`${C} has member 'cancel' that`),pull:void 0===Ue?void 0:Mt(Ue,q,`${C} has member 'pull' that`),start:void 0===lt?void 0:Yt(lt,q,`${C} has member 'start' that`),type:void 0===Pt?void 0:Qt(Pt,`${C} has member 'type' that`)}}(a,"First parameter");var ae;if((ae=this)._state="readable",ae._reader=void 0,ae._storedError=void 0,ae._disturbed=!1,"bytes"===re.type){if(void 0!==q.size)throw new RangeError("The strategy for a byte stream cannot have a size function");Oe(this,re,$e(q,0))}else{const a=Me(q);It(this,re,$e(q,1),a)}}get locked(){if(!Vt(this))throw Kt("locked");return Ut(this)}cancel(a){return Vt(this)?Ut(this)?d(new TypeError("Cannot cancel a stream that already has a reader")):Gt(this,a):d(Kt("cancel"))}getReader(a){if(!Vt(this))throw Kt("getReader");return void 0===function(a,C){F(a,C);const q=null==a?void 0:a.mode;return{mode:void 0===q?void 0:Nt(q,`${C} has member 'mode' that`)}}(a,"First parameter").mode?new ReadableStreamDefaultReader(this):function(a){return new ReadableStreamBYOBReader(a)}(this)}pipeThrough(a,C={}){if(!H(this))throw Kt("pipeThrough");$(a,1,"pipeThrough");const q=xt(a,"First parameter"),re=Ht(C,"Second parameter");if(this.locked)throw new TypeError("ReadableStream.prototype.pipeThrough cannot be used on a locked ReadableStream");if(q.writable.locked)throw new TypeError("ReadableStream.prototype.pipeThrough cannot be used on a locked WritableStream");return m(kt(this,q.writable,re.preventClose,re.preventAbort,re.preventCancel,re.signal)),q.readable}pipeTo(a,C={}){if(!H(this))return d(Kt("pipeTo"));if(void 0===a)return d("Parameter 1 is required in 'pipeTo'.");if(!x(a))return d(new TypeError("ReadableStream.prototype.pipeTo's first argument must be a WritableStream"));let q;try{q=Ht(C,"Second parameter")}catch(a){return d(a)}return this.locked?d(new TypeError("ReadableStream.prototype.pipeTo cannot be used on a locked ReadableStream")):a.locked?d(new TypeError("ReadableStream.prototype.pipeTo cannot be used on a locked WritableStream")):kt(this,a,q.preventClose,q.preventAbort,q.preventCancel,q.signal)}tee(){if(!H(this))throw Kt("tee");if(this.locked)throw new TypeError("Cannot tee a stream that already has a reader");return Ot(this)}values(a){if(!H(this))throw Kt("values");return function(a,C){const q=a.getReader(),re=new te(q,C),ae=Object.create(Fr);return ae._asyncIteratorImpl=re,ae}(this,function(a,C){F(a,C);const q=null==a?void 0:a.preventCancel;return{preventCancel:Boolean(q)}}(a,"First parameter").preventCancel)}}function Vt(a){return!!r(a)&&(!!Object.prototype.hasOwnProperty.call(a,"_readableStreamController")&&a instanceof ReadableStream)}function Ut(a){return void 0!==a._reader}function Gt(a,C){if(a._disturbed=!0,"closed"===a._state)return c(void 0);if("errored"===a._state)return d(a._storedError);Xt(a);const q=a._reader;if(void 0!==q&&Fe(q)){const a=q._readIntoRequests;q._readIntoRequests=new S,a.forEach((a=>{a._closeSteps(void 0)}))}return p(a._readableStreamController[Br](C),t)}function Xt(a){a._state="closed";const C=a._reader;if(void 0!==C&&(j(C),K(C))){const a=C._readRequests;C._readRequests=new S,a.forEach((a=>{a._closeSteps()}))}}function Jt(a,C){a._state="errored",a._storedError=C;const q=a._reader;void 0!==q&&(A(q,C),K(q)?Z(q,C):Ie(q,C))}function Kt(a){return new TypeError(`ReadableStream.prototype.${a} can only be used on a ReadableStream`)}function Zt(a,C){F(a,C);const q=null==a?void 0:a.highWaterMark;return M(q,"highWaterMark","QueuingStrategyInit"),{highWaterMark:Y(q)}}Object.defineProperties(ReadableStream.prototype,{cancel:{enumerable:!0},getReader:{enumerable:!0},pipeThrough:{enumerable:!0},pipeTo:{enumerable:!0},tee:{enumerable:!0},values:{enumerable:!0},locked:{enumerable:!0}}),n(ReadableStream.prototype.cancel,"cancel"),n(ReadableStream.prototype.getReader,"getReader"),n(ReadableStream.prototype.pipeThrough,"pipeThrough"),n(ReadableStream.prototype.pipeTo,"pipeTo"),n(ReadableStream.prototype.tee,"tee"),n(ReadableStream.prototype.values,"values"),"symbol"==typeof re.toStringTag&&Object.defineProperty(ReadableStream.prototype,re.toStringTag,{value:"ReadableStream",configurable:!0}),"symbol"==typeof re.asyncIterator&&Object.defineProperty(ReadableStream.prototype,re.asyncIterator,{value:ReadableStream.prototype.values,writable:!0,configurable:!0});const er=a=>a.byteLength;n(er,"size");class ByteLengthQueuingStrategy{constructor(a){$(a,1,"ByteLengthQueuingStrategy"),a=Zt(a,"First parameter"),this._byteLengthQueuingStrategyHighWaterMark=a.highWaterMark}get highWaterMark(){if(!rr(this))throw tr("highWaterMark");return this._byteLengthQueuingStrategyHighWaterMark}get size(){if(!rr(this))throw tr("size");return er}}function tr(a){return new TypeError(`ByteLengthQueuingStrategy.prototype.${a} can only be used on a ByteLengthQueuingStrategy`)}function rr(a){return!!r(a)&&(!!Object.prototype.hasOwnProperty.call(a,"_byteLengthQueuingStrategyHighWaterMark")&&a instanceof ByteLengthQueuingStrategy)}Object.defineProperties(ByteLengthQueuingStrategy.prototype,{highWaterMark:{enumerable:!0},size:{enumerable:!0}}),"symbol"==typeof re.toStringTag&&Object.defineProperty(ByteLengthQueuingStrategy.prototype,re.toStringTag,{value:"ByteLengthQueuingStrategy",configurable:!0});const or=()=>1;n(or,"size");class CountQueuingStrategy{constructor(a){$(a,1,"CountQueuingStrategy"),a=Zt(a,"First parameter"),this._countQueuingStrategyHighWaterMark=a.highWaterMark}get highWaterMark(){if(!ar(this))throw nr("highWaterMark");return this._countQueuingStrategyHighWaterMark}get size(){if(!ar(this))throw nr("size");return or}}function nr(a){return new TypeError(`CountQueuingStrategy.prototype.${a} can only be used on a CountQueuingStrategy`)}function ar(a){return!!r(a)&&(!!Object.prototype.hasOwnProperty.call(a,"_countQueuingStrategyHighWaterMark")&&a instanceof CountQueuingStrategy)}function ir(a,C,q){return I(a,q),q=>w(a,C,[q])}function lr(a,C,q){return I(a,q),q=>g(a,C,[q])}function sr(a,C,q){return I(a,q),(q,re)=>w(a,C,[q,re])}Object.defineProperties(CountQueuingStrategy.prototype,{highWaterMark:{enumerable:!0},size:{enumerable:!0}}),"symbol"==typeof re.toStringTag&&Object.defineProperty(CountQueuingStrategy.prototype,re.toStringTag,{value:"CountQueuingStrategy",configurable:!0});class TransformStream{constructor(a={},C={},q={}){void 0===a&&(a=null);const re=Ye(C,"Second parameter"),ae=Ye(q,"Third parameter"),Ue=function(a,C){F(a,C);const q=null==a?void 0:a.flush,re=null==a?void 0:a.readableType,ae=null==a?void 0:a.start,Ue=null==a?void 0:a.transform,lt=null==a?void 0:a.writableType;return{flush:void 0===q?void 0:ir(q,a,`${C} has member 'flush' that`),readableType:re,start:void 0===ae?void 0:lr(ae,a,`${C} has member 'start' that`),transform:void 0===Ue?void 0:sr(Ue,a,`${C} has member 'transform' that`),writableType:lt}}(a,"First parameter");if(void 0!==Ue.readableType)throw new RangeError("Invalid readableType specified");if(void 0!==Ue.writableType)throw new RangeError("Invalid writableType specified");const lt=$e(ae,0),Pt=Me(ae),Wt=$e(re,1),Ar=Me(re);let Er;!function(a,C,q,re,ae,Ue){function i(){return C}function l(C){return function(a,C){const q=a._transformStreamController;if(a._backpressure){return p(a._backpressureChangePromise,(()=>{if("erroring"===(Ge(a._writable)?a._writable._state:a._writableState))throw Ge(a._writable)?a._writable._storedError:a._writableStoredError;return pr(q,C)}))}return pr(q,C)}(a,C)}function s(C){return function(a,C){return cr(a,C),c(void 0)}(a,C)}function u(){return function(a){const C=a._transformStreamController,q=C._flushAlgorithm();return hr(C),p(q,(()=>{if("errored"===a._readableState)throw a._readableStoredError;gr(a)&&wr(a)}),(C=>{throw cr(a,C),a._readableStoredError}))}(a)}function d(){return function(a){return fr(a,!1),a._backpressureChangePromise}(a)}function f(C){return dr(a,C),c(void 0)}a._writableState="writable",a._writableStoredError=void 0,a._writableHasInFlightOperation=!1,a._writableStarted=!1,a._writable=function(a,C,q,re,ae,Ue,lt){return new WritableStream({start(q){a._writableController=q;try{const C=q.signal;void 0!==C&&C.addEventListener("abort",(()=>{"writable"===a._writableState&&(a._writableState="erroring",C.reason&&(a._writableStoredError=C.reason))}))}catch(a){}return p(C(),(()=>(a._writableStarted=!0,Cr(a),null)),(C=>{throw a._writableStarted=!0,Rr(a,C),C}))},write:C=>(function(a){a._writableHasInFlightOperation=!0}(a),p(q(C),(()=>(function(a){a._writableHasInFlightOperation=!1}(a),Cr(a),null)),(C=>{throw function(a,C){a._writableHasInFlightOperation=!1,Rr(a,C)}(a,C),C}))),close:()=>(function(a){a._writableHasInFlightOperation=!0}(a),p(re(),(()=>(function(a){a._writableHasInFlightOperation=!1;"erroring"===a._writableState&&(a._writableStoredError=void 0);a._writableState="closed"}(a),null)),(C=>{throw function(a,C){a._writableHasInFlightOperation=!1,a._writableState,Rr(a,C)}(a,C),C}))),abort:C=>(a._writableState="errored",a._writableStoredError=C,ae(C))},{highWaterMark:Ue,size:lt})}(a,i,l,u,s,q,re),a._readableState="readable",a._readableStoredError=void 0,a._readableCloseRequested=!1,a._readablePulling=!1,a._readable=function(a,C,q,re,ae,Ue){return new ReadableStream({start:q=>(a._readableController=q,C().catch((C=>{Sr(a,C)}))),pull:()=>(a._readablePulling=!0,q().catch((C=>{Sr(a,C)}))),cancel:C=>(a._readableState="closed",re(C))},{highWaterMark:ae,size:Ue})}(a,i,d,f,ae,Ue),a._backpressure=void 0,a._backpressureChangePromise=void 0,a._backpressureChangePromise_resolve=void 0,fr(a,!0),a._transformStreamController=void 0}(this,u((a=>{Er=a})),Wt,Ar,lt,Pt),function(a,C){const q=Object.create(TransformStreamDefaultController.prototype);let re,ae;re=void 0!==C.transform?a=>C.transform(a,q):a=>{try{return _r(q,a),c(void 0)}catch(a){return d(a)}};ae=void 0!==C.flush?()=>C.flush(q):()=>c(void 0);!function(a,C,q,re){C._controlledTransformStream=a,a._transformStreamController=C,C._transformAlgorithm=q,C._flushAlgorithm=re}(a,q,re,ae)}(this,Ue),void 0!==Ue.start?Er(Ue.start(this._transformStreamController)):Er(void 0)}get readable(){if(!ur(this))throw yr("readable");return this._readable}get writable(){if(!ur(this))throw yr("writable");return this._writable}}function ur(a){return!!r(a)&&(!!Object.prototype.hasOwnProperty.call(a,"_transformStreamController")&&a instanceof TransformStream)}function cr(a,C){Sr(a,C),dr(a,C)}function dr(a,C){hr(a._transformStreamController),function(a,C){a._writableController.error(C);"writable"===a._writableState&&Tr(a,C)}(a,C),a._backpressure&&fr(a,!1)}function fr(a,C){void 0!==a._backpressureChangePromise&&a._backpressureChangePromise_resolve(),a._backpressureChangePromise=u((C=>{a._backpressureChangePromise_resolve=C})),a._backpressure=C}Object.defineProperties(TransformStream.prototype,{readable:{enumerable:!0},writable:{enumerable:!0}}),"symbol"==typeof re.toStringTag&&Object.defineProperty(TransformStream.prototype,re.toStringTag,{value:"TransformStream",configurable:!0});class TransformStreamDefaultController{constructor(){throw new TypeError("Illegal constructor")}get desiredSize(){if(!br(this))throw mr("desiredSize");return vr(this._controlledTransformStream)}enqueue(a){if(!br(this))throw mr("enqueue");_r(this,a)}error(a){if(!br(this))throw mr("error");var C;C=a,cr(this._controlledTransformStream,C)}terminate(){if(!br(this))throw mr("terminate");!function(a){const C=a._controlledTransformStream;gr(C)&&wr(C);const q=new TypeError("TransformStream terminated");dr(C,q)}(this)}}function br(a){return!!r(a)&&(!!Object.prototype.hasOwnProperty.call(a,"_controlledTransformStream")&&a instanceof TransformStreamDefaultController)}function hr(a){a._transformAlgorithm=void 0,a._flushAlgorithm=void 0}function _r(a,C){const q=a._controlledTransformStream;if(!gr(q))throw new TypeError("Readable side is not in a state that permits enqueue");try{!function(a,C){a._readablePulling=!1;try{a._readableController.enqueue(C)}catch(C){throw Sr(a,C),C}}(q,C)}catch(a){throw dr(q,a),q._readableStoredError}const re=function(a){return!function(a){if(!gr(a))return!1;if(a._readablePulling)return!0;if(vr(a)>0)return!0;return!1}(a)}(q);re!==q._backpressure&&fr(q,!0)}function pr(a,C){return p(a._transformAlgorithm(C),void 0,(C=>{throw cr(a._controlledTransformStream,C),C}))}function mr(a){return new TypeError(`TransformStreamDefaultController.prototype.${a} can only be used on a TransformStreamDefaultController`)}function yr(a){return new TypeError(`TransformStream.prototype.${a} can only be used on a TransformStream`)}function gr(a){return!a._readableCloseRequested&&"readable"===a._readableState}function wr(a){a._readableState="closed",a._readableCloseRequested=!0,a._readableController.close()}function Sr(a,C){"readable"===a._readableState&&(a._readableState="errored",a._readableStoredError=C),a._readableController.error(C)}function vr(a){return a._readableController.desiredSize}function Rr(a,C){"writable"!==a._writableState?qr(a):Tr(a,C)}function Tr(a,C){a._writableState="erroring",a._writableStoredError=C,!function(a){return a._writableHasInFlightOperation}(a)&&a._writableStarted&&qr(a)}function qr(a){a._writableState="errored"}function Cr(a){"erroring"===a._writableState&&qr(a)}Object.defineProperties(TransformStreamDefaultController.prototype,{enqueue:{enumerable:!0},error:{enumerable:!0},terminate:{enumerable:!0},desiredSize:{enumerable:!0}}),n(TransformStreamDefaultController.prototype.enqueue,"enqueue"),n(TransformStreamDefaultController.prototype.error,"error"),n(TransformStreamDefaultController.prototype.terminate,"terminate"),"symbol"==typeof re.toStringTag&&Object.defineProperty(TransformStreamDefaultController.prototype,re.toStringTag,{value:"TransformStreamDefaultController",configurable:!0});var Gr=q(5122); -/*! Based on fetch-blob. MIT License. Jimmy Wärting & David Frank */ -const Or=65536;async function*clonePart(a){const C=a.byteOffset+a.byteLength;let q=a.byteOffset;while(q!==C){const re=Math.min(C-q,Or);const ae=a.buffer.slice(q,q+re);q+=ae.byteLength;yield new Uint8Array(ae)}}async function*consumeNodeBlob(a){let C=0;while(C!==a.size){const q=a.slice(C,Math.min(a.size,C+Or));const re=await q.arrayBuffer();C+=re.byteLength;yield new Uint8Array(re)}}async function*consumeBlobParts(a,C=false){for(const q of a){if(ArrayBuffer.isView(q)){if(C){yield*clonePart(q)}else{yield q}}else if((0,Gr.T)(q.stream)){yield*q.stream()}else{yield*consumeNodeBlob(q)}}}function*sliceBlob(a,C,q=0,re){re!==null&&re!==void 0?re:re=C;let ae=q<0?Math.max(C+q,0):Math.min(q,C);let Ue=re<0?Math.max(C+re,0):Math.min(re,C);const lt=Math.max(Ue-ae,0);let Pt=0;for(const C of a){if(Pt>=lt){break}const a=ArrayBuffer.isView(C)?C.byteLength:C.size;if(ae&&a<=ae){ae-=a;Ue-=a}else{let q;if(ArrayBuffer.isView(C)){q=C.subarray(ae,Math.min(a,Ue));Pt+=q.byteLength}else{q=C.slice(ae,Math.min(a,Ue));Pt+=q.size}Ue-=a;ae=0;yield q}}} -/*! Based on fetch-blob. MIT License. Jimmy Wärting & David Frank */ -var Vr=undefined&&undefined.__classPrivateFieldGet||function(a,C,q,re){if(q==="a"&&!re)throw new TypeError("Private accessor was defined without a getter");if(typeof C==="function"?a!==C||!re:!C.has(a))throw new TypeError("Cannot read private member from an object whose class did not declare it");return q==="m"?re:q==="a"?re.call(a):re?re.value:C.get(a)};var Hr=undefined&&undefined.__classPrivateFieldSet||function(a,C,q,re,ae){if(re==="m")throw new TypeError("Private method is not writable");if(re==="a"&&!ae)throw new TypeError("Private accessor was defined without a setter");if(typeof C==="function"?a!==C||!ae:!C.has(a))throw new TypeError("Cannot write private member to an object whose class did not declare it");return re==="a"?ae.call(a,q):ae?ae.value=q:C.set(a,q),q};var xr,Yr,Jr;class Blob{constructor(a=[],C={}){xr.set(this,[]);Yr.set(this,"");Jr.set(this,0);C!==null&&C!==void 0?C:C={};if(typeof a!=="object"||a===null){throw new TypeError("Failed to construct 'Blob': "+"The provided value cannot be converted to a sequence.")}if(!(0,Gr.T)(a[Symbol.iterator])){throw new TypeError("Failed to construct 'Blob': "+"The object must have a callable @@iterator property.")}if(typeof C!=="object"&&!(0,Gr.T)(C)){throw new TypeError("Failed to construct 'Blob': parameter 2 cannot convert to dictionary.")}const q=new TextEncoder;for(const C of a){let a;if(ArrayBuffer.isView(C)){a=new Uint8Array(C.buffer.slice(C.byteOffset,C.byteOffset+C.byteLength))}else if(C instanceof ArrayBuffer){a=new Uint8Array(C.slice(0))}else if(C instanceof Blob){a=C}else{a=q.encode(String(C))}Hr(this,Jr,Vr(this,Jr,"f")+(ArrayBuffer.isView(a)?a.byteLength:a.size),"f");Vr(this,xr,"f").push(a)}const re=C.type===undefined?"":String(C.type);Hr(this,Yr,/^[\x20-\x7E]*$/.test(re)?re:"","f")}static[(xr=new WeakMap,Yr=new WeakMap,Jr=new WeakMap,Symbol.hasInstance)](a){return Boolean(a&&typeof a==="object"&&(0,Gr.T)(a.constructor)&&((0,Gr.T)(a.stream)||(0,Gr.T)(a.arrayBuffer))&&/^(Blob|File)$/.test(a[Symbol.toStringTag]))}get type(){return Vr(this,Yr,"f")}get size(){return Vr(this,Jr,"f")}slice(a,C,q){return new Blob(sliceBlob(Vr(this,xr,"f"),this.size,a,C),{type:q})}async text(){const a=new TextDecoder;let C="";for await(const q of consumeBlobParts(Vr(this,xr,"f"))){C+=a.decode(q,{stream:true})}C+=a.decode();return C}async arrayBuffer(){const a=new Uint8Array(this.size);let C=0;for await(const q of consumeBlobParts(Vr(this,xr,"f"))){a.set(q,C);C+=q.length}return a.buffer}stream(){const a=consumeBlobParts(Vr(this,xr,"f"),true);return new ReadableStream({async pull(C){const{value:q,done:re}=await a.next();if(re){return queueMicrotask((()=>C.close()))}C.enqueue(q)},async cancel(){await a.return()}})}get[Symbol.toStringTag](){return"Blob"}}Object.defineProperties(Blob.prototype,{type:{enumerable:true},size:{enumerable:true},slice:{enumerable:true},stream:{enumerable:true},text:{enumerable:true},arrayBuffer:{enumerable:true}})},2928:(a,C,q)=>{q.d(C,{Z:()=>File});var re=q(6220);var ae=undefined&&undefined.__classPrivateFieldSet||function(a,C,q,re,ae){if(re==="m")throw new TypeError("Private method is not writable");if(re==="a"&&!ae)throw new TypeError("Private accessor was defined without a setter");if(typeof C==="function"?a!==C||!ae:!C.has(a))throw new TypeError("Cannot write private member to an object whose class did not declare it");return re==="a"?ae.call(a,q):ae?ae.value=q:C.set(a,q),q};var Ue=undefined&&undefined.__classPrivateFieldGet||function(a,C,q,re){if(q==="a"&&!re)throw new TypeError("Private accessor was defined without a getter");if(typeof C==="function"?a!==C||!re:!C.has(a))throw new TypeError("Cannot read private member from an object whose class did not declare it");return q==="m"?re:q==="a"?re.call(a):re?re.value:C.get(a)};var lt,Pt;class File extends re.Y{constructor(a,C,q={}){super(a,q);lt.set(this,void 0);Pt.set(this,0);if(arguments.length<2){throw new TypeError("Failed to construct 'File': 2 arguments required, "+`but only ${arguments.length} present.`)}ae(this,lt,String(C),"f");const re=q.lastModified===undefined?Date.now():Number(q.lastModified);if(!Number.isNaN(re)){ae(this,Pt,re,"f")}}static[(lt=new WeakMap,Pt=new WeakMap,Symbol.hasInstance)](a){return a instanceof re.Y&&a[Symbol.toStringTag]==="File"&&typeof a.name==="string"}get name(){return Ue(this,lt,"f")}get lastModified(){return Ue(this,Pt,"f")}get webkitRelativePath(){return""}get[Symbol.toStringTag](){return"File"}}},928:(a,C,q)=>{q.d(C,{f:()=>isFile});var re=q(2928);const isFile=a=>a instanceof re.Z},5122:(a,C,q)=>{q.d(C,{T:()=>isFunction});const isFunction=a=>typeof a==="function"},2472:a=>{a.exports=JSON.parse('[[[0,44],"disallowed_STD3_valid"],[[45,46],"valid"],[[47,47],"disallowed_STD3_valid"],[[48,57],"valid"],[[58,64],"disallowed_STD3_valid"],[[65,65],"mapped",[97]],[[66,66],"mapped",[98]],[[67,67],"mapped",[99]],[[68,68],"mapped",[100]],[[69,69],"mapped",[101]],[[70,70],"mapped",[102]],[[71,71],"mapped",[103]],[[72,72],"mapped",[104]],[[73,73],"mapped",[105]],[[74,74],"mapped",[106]],[[75,75],"mapped",[107]],[[76,76],"mapped",[108]],[[77,77],"mapped",[109]],[[78,78],"mapped",[110]],[[79,79],"mapped",[111]],[[80,80],"mapped",[112]],[[81,81],"mapped",[113]],[[82,82],"mapped",[114]],[[83,83],"mapped",[115]],[[84,84],"mapped",[116]],[[85,85],"mapped",[117]],[[86,86],"mapped",[118]],[[87,87],"mapped",[119]],[[88,88],"mapped",[120]],[[89,89],"mapped",[121]],[[90,90],"mapped",[122]],[[91,96],"disallowed_STD3_valid"],[[97,122],"valid"],[[123,127],"disallowed_STD3_valid"],[[128,159],"disallowed"],[[160,160],"disallowed_STD3_mapped",[32]],[[161,167],"valid",[],"NV8"],[[168,168],"disallowed_STD3_mapped",[32,776]],[[169,169],"valid",[],"NV8"],[[170,170],"mapped",[97]],[[171,172],"valid",[],"NV8"],[[173,173],"ignored"],[[174,174],"valid",[],"NV8"],[[175,175],"disallowed_STD3_mapped",[32,772]],[[176,177],"valid",[],"NV8"],[[178,178],"mapped",[50]],[[179,179],"mapped",[51]],[[180,180],"disallowed_STD3_mapped",[32,769]],[[181,181],"mapped",[956]],[[182,182],"valid",[],"NV8"],[[183,183],"valid"],[[184,184],"disallowed_STD3_mapped",[32,807]],[[185,185],"mapped",[49]],[[186,186],"mapped",[111]],[[187,187],"valid",[],"NV8"],[[188,188],"mapped",[49,8260,52]],[[189,189],"mapped",[49,8260,50]],[[190,190],"mapped",[51,8260,52]],[[191,191],"valid",[],"NV8"],[[192,192],"mapped",[224]],[[193,193],"mapped",[225]],[[194,194],"mapped",[226]],[[195,195],"mapped",[227]],[[196,196],"mapped",[228]],[[197,197],"mapped",[229]],[[198,198],"mapped",[230]],[[199,199],"mapped",[231]],[[200,200],"mapped",[232]],[[201,201],"mapped",[233]],[[202,202],"mapped",[234]],[[203,203],"mapped",[235]],[[204,204],"mapped",[236]],[[205,205],"mapped",[237]],[[206,206],"mapped",[238]],[[207,207],"mapped",[239]],[[208,208],"mapped",[240]],[[209,209],"mapped",[241]],[[210,210],"mapped",[242]],[[211,211],"mapped",[243]],[[212,212],"mapped",[244]],[[213,213],"mapped",[245]],[[214,214],"mapped",[246]],[[215,215],"valid",[],"NV8"],[[216,216],"mapped",[248]],[[217,217],"mapped",[249]],[[218,218],"mapped",[250]],[[219,219],"mapped",[251]],[[220,220],"mapped",[252]],[[221,221],"mapped",[253]],[[222,222],"mapped",[254]],[[223,223],"deviation",[115,115]],[[224,246],"valid"],[[247,247],"valid",[],"NV8"],[[248,255],"valid"],[[256,256],"mapped",[257]],[[257,257],"valid"],[[258,258],"mapped",[259]],[[259,259],"valid"],[[260,260],"mapped",[261]],[[261,261],"valid"],[[262,262],"mapped",[263]],[[263,263],"valid"],[[264,264],"mapped",[265]],[[265,265],"valid"],[[266,266],"mapped",[267]],[[267,267],"valid"],[[268,268],"mapped",[269]],[[269,269],"valid"],[[270,270],"mapped",[271]],[[271,271],"valid"],[[272,272],"mapped",[273]],[[273,273],"valid"],[[274,274],"mapped",[275]],[[275,275],"valid"],[[276,276],"mapped",[277]],[[277,277],"valid"],[[278,278],"mapped",[279]],[[279,279],"valid"],[[280,280],"mapped",[281]],[[281,281],"valid"],[[282,282],"mapped",[283]],[[283,283],"valid"],[[284,284],"mapped",[285]],[[285,285],"valid"],[[286,286],"mapped",[287]],[[287,287],"valid"],[[288,288],"mapped",[289]],[[289,289],"valid"],[[290,290],"mapped",[291]],[[291,291],"valid"],[[292,292],"mapped",[293]],[[293,293],"valid"],[[294,294],"mapped",[295]],[[295,295],"valid"],[[296,296],"mapped",[297]],[[297,297],"valid"],[[298,298],"mapped",[299]],[[299,299],"valid"],[[300,300],"mapped",[301]],[[301,301],"valid"],[[302,302],"mapped",[303]],[[303,303],"valid"],[[304,304],"mapped",[105,775]],[[305,305],"valid"],[[306,307],"mapped",[105,106]],[[308,308],"mapped",[309]],[[309,309],"valid"],[[310,310],"mapped",[311]],[[311,312],"valid"],[[313,313],"mapped",[314]],[[314,314],"valid"],[[315,315],"mapped",[316]],[[316,316],"valid"],[[317,317],"mapped",[318]],[[318,318],"valid"],[[319,320],"mapped",[108,183]],[[321,321],"mapped",[322]],[[322,322],"valid"],[[323,323],"mapped",[324]],[[324,324],"valid"],[[325,325],"mapped",[326]],[[326,326],"valid"],[[327,327],"mapped",[328]],[[328,328],"valid"],[[329,329],"mapped",[700,110]],[[330,330],"mapped",[331]],[[331,331],"valid"],[[332,332],"mapped",[333]],[[333,333],"valid"],[[334,334],"mapped",[335]],[[335,335],"valid"],[[336,336],"mapped",[337]],[[337,337],"valid"],[[338,338],"mapped",[339]],[[339,339],"valid"],[[340,340],"mapped",[341]],[[341,341],"valid"],[[342,342],"mapped",[343]],[[343,343],"valid"],[[344,344],"mapped",[345]],[[345,345],"valid"],[[346,346],"mapped",[347]],[[347,347],"valid"],[[348,348],"mapped",[349]],[[349,349],"valid"],[[350,350],"mapped",[351]],[[351,351],"valid"],[[352,352],"mapped",[353]],[[353,353],"valid"],[[354,354],"mapped",[355]],[[355,355],"valid"],[[356,356],"mapped",[357]],[[357,357],"valid"],[[358,358],"mapped",[359]],[[359,359],"valid"],[[360,360],"mapped",[361]],[[361,361],"valid"],[[362,362],"mapped",[363]],[[363,363],"valid"],[[364,364],"mapped",[365]],[[365,365],"valid"],[[366,366],"mapped",[367]],[[367,367],"valid"],[[368,368],"mapped",[369]],[[369,369],"valid"],[[370,370],"mapped",[371]],[[371,371],"valid"],[[372,372],"mapped",[373]],[[373,373],"valid"],[[374,374],"mapped",[375]],[[375,375],"valid"],[[376,376],"mapped",[255]],[[377,377],"mapped",[378]],[[378,378],"valid"],[[379,379],"mapped",[380]],[[380,380],"valid"],[[381,381],"mapped",[382]],[[382,382],"valid"],[[383,383],"mapped",[115]],[[384,384],"valid"],[[385,385],"mapped",[595]],[[386,386],"mapped",[387]],[[387,387],"valid"],[[388,388],"mapped",[389]],[[389,389],"valid"],[[390,390],"mapped",[596]],[[391,391],"mapped",[392]],[[392,392],"valid"],[[393,393],"mapped",[598]],[[394,394],"mapped",[599]],[[395,395],"mapped",[396]],[[396,397],"valid"],[[398,398],"mapped",[477]],[[399,399],"mapped",[601]],[[400,400],"mapped",[603]],[[401,401],"mapped",[402]],[[402,402],"valid"],[[403,403],"mapped",[608]],[[404,404],"mapped",[611]],[[405,405],"valid"],[[406,406],"mapped",[617]],[[407,407],"mapped",[616]],[[408,408],"mapped",[409]],[[409,411],"valid"],[[412,412],"mapped",[623]],[[413,413],"mapped",[626]],[[414,414],"valid"],[[415,415],"mapped",[629]],[[416,416],"mapped",[417]],[[417,417],"valid"],[[418,418],"mapped",[419]],[[419,419],"valid"],[[420,420],"mapped",[421]],[[421,421],"valid"],[[422,422],"mapped",[640]],[[423,423],"mapped",[424]],[[424,424],"valid"],[[425,425],"mapped",[643]],[[426,427],"valid"],[[428,428],"mapped",[429]],[[429,429],"valid"],[[430,430],"mapped",[648]],[[431,431],"mapped",[432]],[[432,432],"valid"],[[433,433],"mapped",[650]],[[434,434],"mapped",[651]],[[435,435],"mapped",[436]],[[436,436],"valid"],[[437,437],"mapped",[438]],[[438,438],"valid"],[[439,439],"mapped",[658]],[[440,440],"mapped",[441]],[[441,443],"valid"],[[444,444],"mapped",[445]],[[445,451],"valid"],[[452,454],"mapped",[100,382]],[[455,457],"mapped",[108,106]],[[458,460],"mapped",[110,106]],[[461,461],"mapped",[462]],[[462,462],"valid"],[[463,463],"mapped",[464]],[[464,464],"valid"],[[465,465],"mapped",[466]],[[466,466],"valid"],[[467,467],"mapped",[468]],[[468,468],"valid"],[[469,469],"mapped",[470]],[[470,470],"valid"],[[471,471],"mapped",[472]],[[472,472],"valid"],[[473,473],"mapped",[474]],[[474,474],"valid"],[[475,475],"mapped",[476]],[[476,477],"valid"],[[478,478],"mapped",[479]],[[479,479],"valid"],[[480,480],"mapped",[481]],[[481,481],"valid"],[[482,482],"mapped",[483]],[[483,483],"valid"],[[484,484],"mapped",[485]],[[485,485],"valid"],[[486,486],"mapped",[487]],[[487,487],"valid"],[[488,488],"mapped",[489]],[[489,489],"valid"],[[490,490],"mapped",[491]],[[491,491],"valid"],[[492,492],"mapped",[493]],[[493,493],"valid"],[[494,494],"mapped",[495]],[[495,496],"valid"],[[497,499],"mapped",[100,122]],[[500,500],"mapped",[501]],[[501,501],"valid"],[[502,502],"mapped",[405]],[[503,503],"mapped",[447]],[[504,504],"mapped",[505]],[[505,505],"valid"],[[506,506],"mapped",[507]],[[507,507],"valid"],[[508,508],"mapped",[509]],[[509,509],"valid"],[[510,510],"mapped",[511]],[[511,511],"valid"],[[512,512],"mapped",[513]],[[513,513],"valid"],[[514,514],"mapped",[515]],[[515,515],"valid"],[[516,516],"mapped",[517]],[[517,517],"valid"],[[518,518],"mapped",[519]],[[519,519],"valid"],[[520,520],"mapped",[521]],[[521,521],"valid"],[[522,522],"mapped",[523]],[[523,523],"valid"],[[524,524],"mapped",[525]],[[525,525],"valid"],[[526,526],"mapped",[527]],[[527,527],"valid"],[[528,528],"mapped",[529]],[[529,529],"valid"],[[530,530],"mapped",[531]],[[531,531],"valid"],[[532,532],"mapped",[533]],[[533,533],"valid"],[[534,534],"mapped",[535]],[[535,535],"valid"],[[536,536],"mapped",[537]],[[537,537],"valid"],[[538,538],"mapped",[539]],[[539,539],"valid"],[[540,540],"mapped",[541]],[[541,541],"valid"],[[542,542],"mapped",[543]],[[543,543],"valid"],[[544,544],"mapped",[414]],[[545,545],"valid"],[[546,546],"mapped",[547]],[[547,547],"valid"],[[548,548],"mapped",[549]],[[549,549],"valid"],[[550,550],"mapped",[551]],[[551,551],"valid"],[[552,552],"mapped",[553]],[[553,553],"valid"],[[554,554],"mapped",[555]],[[555,555],"valid"],[[556,556],"mapped",[557]],[[557,557],"valid"],[[558,558],"mapped",[559]],[[559,559],"valid"],[[560,560],"mapped",[561]],[[561,561],"valid"],[[562,562],"mapped",[563]],[[563,563],"valid"],[[564,566],"valid"],[[567,569],"valid"],[[570,570],"mapped",[11365]],[[571,571],"mapped",[572]],[[572,572],"valid"],[[573,573],"mapped",[410]],[[574,574],"mapped",[11366]],[[575,576],"valid"],[[577,577],"mapped",[578]],[[578,578],"valid"],[[579,579],"mapped",[384]],[[580,580],"mapped",[649]],[[581,581],"mapped",[652]],[[582,582],"mapped",[583]],[[583,583],"valid"],[[584,584],"mapped",[585]],[[585,585],"valid"],[[586,586],"mapped",[587]],[[587,587],"valid"],[[588,588],"mapped",[589]],[[589,589],"valid"],[[590,590],"mapped",[591]],[[591,591],"valid"],[[592,680],"valid"],[[681,685],"valid"],[[686,687],"valid"],[[688,688],"mapped",[104]],[[689,689],"mapped",[614]],[[690,690],"mapped",[106]],[[691,691],"mapped",[114]],[[692,692],"mapped",[633]],[[693,693],"mapped",[635]],[[694,694],"mapped",[641]],[[695,695],"mapped",[119]],[[696,696],"mapped",[121]],[[697,705],"valid"],[[706,709],"valid",[],"NV8"],[[710,721],"valid"],[[722,727],"valid",[],"NV8"],[[728,728],"disallowed_STD3_mapped",[32,774]],[[729,729],"disallowed_STD3_mapped",[32,775]],[[730,730],"disallowed_STD3_mapped",[32,778]],[[731,731],"disallowed_STD3_mapped",[32,808]],[[732,732],"disallowed_STD3_mapped",[32,771]],[[733,733],"disallowed_STD3_mapped",[32,779]],[[734,734],"valid",[],"NV8"],[[735,735],"valid",[],"NV8"],[[736,736],"mapped",[611]],[[737,737],"mapped",[108]],[[738,738],"mapped",[115]],[[739,739],"mapped",[120]],[[740,740],"mapped",[661]],[[741,745],"valid",[],"NV8"],[[746,747],"valid",[],"NV8"],[[748,748],"valid"],[[749,749],"valid",[],"NV8"],[[750,750],"valid"],[[751,767],"valid",[],"NV8"],[[768,831],"valid"],[[832,832],"mapped",[768]],[[833,833],"mapped",[769]],[[834,834],"valid"],[[835,835],"mapped",[787]],[[836,836],"mapped",[776,769]],[[837,837],"mapped",[953]],[[838,846],"valid"],[[847,847],"ignored"],[[848,855],"valid"],[[856,860],"valid"],[[861,863],"valid"],[[864,865],"valid"],[[866,866],"valid"],[[867,879],"valid"],[[880,880],"mapped",[881]],[[881,881],"valid"],[[882,882],"mapped",[883]],[[883,883],"valid"],[[884,884],"mapped",[697]],[[885,885],"valid"],[[886,886],"mapped",[887]],[[887,887],"valid"],[[888,889],"disallowed"],[[890,890],"disallowed_STD3_mapped",[32,953]],[[891,893],"valid"],[[894,894],"disallowed_STD3_mapped",[59]],[[895,895],"mapped",[1011]],[[896,899],"disallowed"],[[900,900],"disallowed_STD3_mapped",[32,769]],[[901,901],"disallowed_STD3_mapped",[32,776,769]],[[902,902],"mapped",[940]],[[903,903],"mapped",[183]],[[904,904],"mapped",[941]],[[905,905],"mapped",[942]],[[906,906],"mapped",[943]],[[907,907],"disallowed"],[[908,908],"mapped",[972]],[[909,909],"disallowed"],[[910,910],"mapped",[973]],[[911,911],"mapped",[974]],[[912,912],"valid"],[[913,913],"mapped",[945]],[[914,914],"mapped",[946]],[[915,915],"mapped",[947]],[[916,916],"mapped",[948]],[[917,917],"mapped",[949]],[[918,918],"mapped",[950]],[[919,919],"mapped",[951]],[[920,920],"mapped",[952]],[[921,921],"mapped",[953]],[[922,922],"mapped",[954]],[[923,923],"mapped",[955]],[[924,924],"mapped",[956]],[[925,925],"mapped",[957]],[[926,926],"mapped",[958]],[[927,927],"mapped",[959]],[[928,928],"mapped",[960]],[[929,929],"mapped",[961]],[[930,930],"disallowed"],[[931,931],"mapped",[963]],[[932,932],"mapped",[964]],[[933,933],"mapped",[965]],[[934,934],"mapped",[966]],[[935,935],"mapped",[967]],[[936,936],"mapped",[968]],[[937,937],"mapped",[969]],[[938,938],"mapped",[970]],[[939,939],"mapped",[971]],[[940,961],"valid"],[[962,962],"deviation",[963]],[[963,974],"valid"],[[975,975],"mapped",[983]],[[976,976],"mapped",[946]],[[977,977],"mapped",[952]],[[978,978],"mapped",[965]],[[979,979],"mapped",[973]],[[980,980],"mapped",[971]],[[981,981],"mapped",[966]],[[982,982],"mapped",[960]],[[983,983],"valid"],[[984,984],"mapped",[985]],[[985,985],"valid"],[[986,986],"mapped",[987]],[[987,987],"valid"],[[988,988],"mapped",[989]],[[989,989],"valid"],[[990,990],"mapped",[991]],[[991,991],"valid"],[[992,992],"mapped",[993]],[[993,993],"valid"],[[994,994],"mapped",[995]],[[995,995],"valid"],[[996,996],"mapped",[997]],[[997,997],"valid"],[[998,998],"mapped",[999]],[[999,999],"valid"],[[1000,1000],"mapped",[1001]],[[1001,1001],"valid"],[[1002,1002],"mapped",[1003]],[[1003,1003],"valid"],[[1004,1004],"mapped",[1005]],[[1005,1005],"valid"],[[1006,1006],"mapped",[1007]],[[1007,1007],"valid"],[[1008,1008],"mapped",[954]],[[1009,1009],"mapped",[961]],[[1010,1010],"mapped",[963]],[[1011,1011],"valid"],[[1012,1012],"mapped",[952]],[[1013,1013],"mapped",[949]],[[1014,1014],"valid",[],"NV8"],[[1015,1015],"mapped",[1016]],[[1016,1016],"valid"],[[1017,1017],"mapped",[963]],[[1018,1018],"mapped",[1019]],[[1019,1019],"valid"],[[1020,1020],"valid"],[[1021,1021],"mapped",[891]],[[1022,1022],"mapped",[892]],[[1023,1023],"mapped",[893]],[[1024,1024],"mapped",[1104]],[[1025,1025],"mapped",[1105]],[[1026,1026],"mapped",[1106]],[[1027,1027],"mapped",[1107]],[[1028,1028],"mapped",[1108]],[[1029,1029],"mapped",[1109]],[[1030,1030],"mapped",[1110]],[[1031,1031],"mapped",[1111]],[[1032,1032],"mapped",[1112]],[[1033,1033],"mapped",[1113]],[[1034,1034],"mapped",[1114]],[[1035,1035],"mapped",[1115]],[[1036,1036],"mapped",[1116]],[[1037,1037],"mapped",[1117]],[[1038,1038],"mapped",[1118]],[[1039,1039],"mapped",[1119]],[[1040,1040],"mapped",[1072]],[[1041,1041],"mapped",[1073]],[[1042,1042],"mapped",[1074]],[[1043,1043],"mapped",[1075]],[[1044,1044],"mapped",[1076]],[[1045,1045],"mapped",[1077]],[[1046,1046],"mapped",[1078]],[[1047,1047],"mapped",[1079]],[[1048,1048],"mapped",[1080]],[[1049,1049],"mapped",[1081]],[[1050,1050],"mapped",[1082]],[[1051,1051],"mapped",[1083]],[[1052,1052],"mapped",[1084]],[[1053,1053],"mapped",[1085]],[[1054,1054],"mapped",[1086]],[[1055,1055],"mapped",[1087]],[[1056,1056],"mapped",[1088]],[[1057,1057],"mapped",[1089]],[[1058,1058],"mapped",[1090]],[[1059,1059],"mapped",[1091]],[[1060,1060],"mapped",[1092]],[[1061,1061],"mapped",[1093]],[[1062,1062],"mapped",[1094]],[[1063,1063],"mapped",[1095]],[[1064,1064],"mapped",[1096]],[[1065,1065],"mapped",[1097]],[[1066,1066],"mapped",[1098]],[[1067,1067],"mapped",[1099]],[[1068,1068],"mapped",[1100]],[[1069,1069],"mapped",[1101]],[[1070,1070],"mapped",[1102]],[[1071,1071],"mapped",[1103]],[[1072,1103],"valid"],[[1104,1104],"valid"],[[1105,1116],"valid"],[[1117,1117],"valid"],[[1118,1119],"valid"],[[1120,1120],"mapped",[1121]],[[1121,1121],"valid"],[[1122,1122],"mapped",[1123]],[[1123,1123],"valid"],[[1124,1124],"mapped",[1125]],[[1125,1125],"valid"],[[1126,1126],"mapped",[1127]],[[1127,1127],"valid"],[[1128,1128],"mapped",[1129]],[[1129,1129],"valid"],[[1130,1130],"mapped",[1131]],[[1131,1131],"valid"],[[1132,1132],"mapped",[1133]],[[1133,1133],"valid"],[[1134,1134],"mapped",[1135]],[[1135,1135],"valid"],[[1136,1136],"mapped",[1137]],[[1137,1137],"valid"],[[1138,1138],"mapped",[1139]],[[1139,1139],"valid"],[[1140,1140],"mapped",[1141]],[[1141,1141],"valid"],[[1142,1142],"mapped",[1143]],[[1143,1143],"valid"],[[1144,1144],"mapped",[1145]],[[1145,1145],"valid"],[[1146,1146],"mapped",[1147]],[[1147,1147],"valid"],[[1148,1148],"mapped",[1149]],[[1149,1149],"valid"],[[1150,1150],"mapped",[1151]],[[1151,1151],"valid"],[[1152,1152],"mapped",[1153]],[[1153,1153],"valid"],[[1154,1154],"valid",[],"NV8"],[[1155,1158],"valid"],[[1159,1159],"valid"],[[1160,1161],"valid",[],"NV8"],[[1162,1162],"mapped",[1163]],[[1163,1163],"valid"],[[1164,1164],"mapped",[1165]],[[1165,1165],"valid"],[[1166,1166],"mapped",[1167]],[[1167,1167],"valid"],[[1168,1168],"mapped",[1169]],[[1169,1169],"valid"],[[1170,1170],"mapped",[1171]],[[1171,1171],"valid"],[[1172,1172],"mapped",[1173]],[[1173,1173],"valid"],[[1174,1174],"mapped",[1175]],[[1175,1175],"valid"],[[1176,1176],"mapped",[1177]],[[1177,1177],"valid"],[[1178,1178],"mapped",[1179]],[[1179,1179],"valid"],[[1180,1180],"mapped",[1181]],[[1181,1181],"valid"],[[1182,1182],"mapped",[1183]],[[1183,1183],"valid"],[[1184,1184],"mapped",[1185]],[[1185,1185],"valid"],[[1186,1186],"mapped",[1187]],[[1187,1187],"valid"],[[1188,1188],"mapped",[1189]],[[1189,1189],"valid"],[[1190,1190],"mapped",[1191]],[[1191,1191],"valid"],[[1192,1192],"mapped",[1193]],[[1193,1193],"valid"],[[1194,1194],"mapped",[1195]],[[1195,1195],"valid"],[[1196,1196],"mapped",[1197]],[[1197,1197],"valid"],[[1198,1198],"mapped",[1199]],[[1199,1199],"valid"],[[1200,1200],"mapped",[1201]],[[1201,1201],"valid"],[[1202,1202],"mapped",[1203]],[[1203,1203],"valid"],[[1204,1204],"mapped",[1205]],[[1205,1205],"valid"],[[1206,1206],"mapped",[1207]],[[1207,1207],"valid"],[[1208,1208],"mapped",[1209]],[[1209,1209],"valid"],[[1210,1210],"mapped",[1211]],[[1211,1211],"valid"],[[1212,1212],"mapped",[1213]],[[1213,1213],"valid"],[[1214,1214],"mapped",[1215]],[[1215,1215],"valid"],[[1216,1216],"disallowed"],[[1217,1217],"mapped",[1218]],[[1218,1218],"valid"],[[1219,1219],"mapped",[1220]],[[1220,1220],"valid"],[[1221,1221],"mapped",[1222]],[[1222,1222],"valid"],[[1223,1223],"mapped",[1224]],[[1224,1224],"valid"],[[1225,1225],"mapped",[1226]],[[1226,1226],"valid"],[[1227,1227],"mapped",[1228]],[[1228,1228],"valid"],[[1229,1229],"mapped",[1230]],[[1230,1230],"valid"],[[1231,1231],"valid"],[[1232,1232],"mapped",[1233]],[[1233,1233],"valid"],[[1234,1234],"mapped",[1235]],[[1235,1235],"valid"],[[1236,1236],"mapped",[1237]],[[1237,1237],"valid"],[[1238,1238],"mapped",[1239]],[[1239,1239],"valid"],[[1240,1240],"mapped",[1241]],[[1241,1241],"valid"],[[1242,1242],"mapped",[1243]],[[1243,1243],"valid"],[[1244,1244],"mapped",[1245]],[[1245,1245],"valid"],[[1246,1246],"mapped",[1247]],[[1247,1247],"valid"],[[1248,1248],"mapped",[1249]],[[1249,1249],"valid"],[[1250,1250],"mapped",[1251]],[[1251,1251],"valid"],[[1252,1252],"mapped",[1253]],[[1253,1253],"valid"],[[1254,1254],"mapped",[1255]],[[1255,1255],"valid"],[[1256,1256],"mapped",[1257]],[[1257,1257],"valid"],[[1258,1258],"mapped",[1259]],[[1259,1259],"valid"],[[1260,1260],"mapped",[1261]],[[1261,1261],"valid"],[[1262,1262],"mapped",[1263]],[[1263,1263],"valid"],[[1264,1264],"mapped",[1265]],[[1265,1265],"valid"],[[1266,1266],"mapped",[1267]],[[1267,1267],"valid"],[[1268,1268],"mapped",[1269]],[[1269,1269],"valid"],[[1270,1270],"mapped",[1271]],[[1271,1271],"valid"],[[1272,1272],"mapped",[1273]],[[1273,1273],"valid"],[[1274,1274],"mapped",[1275]],[[1275,1275],"valid"],[[1276,1276],"mapped",[1277]],[[1277,1277],"valid"],[[1278,1278],"mapped",[1279]],[[1279,1279],"valid"],[[1280,1280],"mapped",[1281]],[[1281,1281],"valid"],[[1282,1282],"mapped",[1283]],[[1283,1283],"valid"],[[1284,1284],"mapped",[1285]],[[1285,1285],"valid"],[[1286,1286],"mapped",[1287]],[[1287,1287],"valid"],[[1288,1288],"mapped",[1289]],[[1289,1289],"valid"],[[1290,1290],"mapped",[1291]],[[1291,1291],"valid"],[[1292,1292],"mapped",[1293]],[[1293,1293],"valid"],[[1294,1294],"mapped",[1295]],[[1295,1295],"valid"],[[1296,1296],"mapped",[1297]],[[1297,1297],"valid"],[[1298,1298],"mapped",[1299]],[[1299,1299],"valid"],[[1300,1300],"mapped",[1301]],[[1301,1301],"valid"],[[1302,1302],"mapped",[1303]],[[1303,1303],"valid"],[[1304,1304],"mapped",[1305]],[[1305,1305],"valid"],[[1306,1306],"mapped",[1307]],[[1307,1307],"valid"],[[1308,1308],"mapped",[1309]],[[1309,1309],"valid"],[[1310,1310],"mapped",[1311]],[[1311,1311],"valid"],[[1312,1312],"mapped",[1313]],[[1313,1313],"valid"],[[1314,1314],"mapped",[1315]],[[1315,1315],"valid"],[[1316,1316],"mapped",[1317]],[[1317,1317],"valid"],[[1318,1318],"mapped",[1319]],[[1319,1319],"valid"],[[1320,1320],"mapped",[1321]],[[1321,1321],"valid"],[[1322,1322],"mapped",[1323]],[[1323,1323],"valid"],[[1324,1324],"mapped",[1325]],[[1325,1325],"valid"],[[1326,1326],"mapped",[1327]],[[1327,1327],"valid"],[[1328,1328],"disallowed"],[[1329,1329],"mapped",[1377]],[[1330,1330],"mapped",[1378]],[[1331,1331],"mapped",[1379]],[[1332,1332],"mapped",[1380]],[[1333,1333],"mapped",[1381]],[[1334,1334],"mapped",[1382]],[[1335,1335],"mapped",[1383]],[[1336,1336],"mapped",[1384]],[[1337,1337],"mapped",[1385]],[[1338,1338],"mapped",[1386]],[[1339,1339],"mapped",[1387]],[[1340,1340],"mapped",[1388]],[[1341,1341],"mapped",[1389]],[[1342,1342],"mapped",[1390]],[[1343,1343],"mapped",[1391]],[[1344,1344],"mapped",[1392]],[[1345,1345],"mapped",[1393]],[[1346,1346],"mapped",[1394]],[[1347,1347],"mapped",[1395]],[[1348,1348],"mapped",[1396]],[[1349,1349],"mapped",[1397]],[[1350,1350],"mapped",[1398]],[[1351,1351],"mapped",[1399]],[[1352,1352],"mapped",[1400]],[[1353,1353],"mapped",[1401]],[[1354,1354],"mapped",[1402]],[[1355,1355],"mapped",[1403]],[[1356,1356],"mapped",[1404]],[[1357,1357],"mapped",[1405]],[[1358,1358],"mapped",[1406]],[[1359,1359],"mapped",[1407]],[[1360,1360],"mapped",[1408]],[[1361,1361],"mapped",[1409]],[[1362,1362],"mapped",[1410]],[[1363,1363],"mapped",[1411]],[[1364,1364],"mapped",[1412]],[[1365,1365],"mapped",[1413]],[[1366,1366],"mapped",[1414]],[[1367,1368],"disallowed"],[[1369,1369],"valid"],[[1370,1375],"valid",[],"NV8"],[[1376,1376],"disallowed"],[[1377,1414],"valid"],[[1415,1415],"mapped",[1381,1410]],[[1416,1416],"disallowed"],[[1417,1417],"valid",[],"NV8"],[[1418,1418],"valid",[],"NV8"],[[1419,1420],"disallowed"],[[1421,1422],"valid",[],"NV8"],[[1423,1423],"valid",[],"NV8"],[[1424,1424],"disallowed"],[[1425,1441],"valid"],[[1442,1442],"valid"],[[1443,1455],"valid"],[[1456,1465],"valid"],[[1466,1466],"valid"],[[1467,1469],"valid"],[[1470,1470],"valid",[],"NV8"],[[1471,1471],"valid"],[[1472,1472],"valid",[],"NV8"],[[1473,1474],"valid"],[[1475,1475],"valid",[],"NV8"],[[1476,1476],"valid"],[[1477,1477],"valid"],[[1478,1478],"valid",[],"NV8"],[[1479,1479],"valid"],[[1480,1487],"disallowed"],[[1488,1514],"valid"],[[1515,1519],"disallowed"],[[1520,1524],"valid"],[[1525,1535],"disallowed"],[[1536,1539],"disallowed"],[[1540,1540],"disallowed"],[[1541,1541],"disallowed"],[[1542,1546],"valid",[],"NV8"],[[1547,1547],"valid",[],"NV8"],[[1548,1548],"valid",[],"NV8"],[[1549,1551],"valid",[],"NV8"],[[1552,1557],"valid"],[[1558,1562],"valid"],[[1563,1563],"valid",[],"NV8"],[[1564,1564],"disallowed"],[[1565,1565],"disallowed"],[[1566,1566],"valid",[],"NV8"],[[1567,1567],"valid",[],"NV8"],[[1568,1568],"valid"],[[1569,1594],"valid"],[[1595,1599],"valid"],[[1600,1600],"valid",[],"NV8"],[[1601,1618],"valid"],[[1619,1621],"valid"],[[1622,1624],"valid"],[[1625,1630],"valid"],[[1631,1631],"valid"],[[1632,1641],"valid"],[[1642,1645],"valid",[],"NV8"],[[1646,1647],"valid"],[[1648,1652],"valid"],[[1653,1653],"mapped",[1575,1652]],[[1654,1654],"mapped",[1608,1652]],[[1655,1655],"mapped",[1735,1652]],[[1656,1656],"mapped",[1610,1652]],[[1657,1719],"valid"],[[1720,1721],"valid"],[[1722,1726],"valid"],[[1727,1727],"valid"],[[1728,1742],"valid"],[[1743,1743],"valid"],[[1744,1747],"valid"],[[1748,1748],"valid",[],"NV8"],[[1749,1756],"valid"],[[1757,1757],"disallowed"],[[1758,1758],"valid",[],"NV8"],[[1759,1768],"valid"],[[1769,1769],"valid",[],"NV8"],[[1770,1773],"valid"],[[1774,1775],"valid"],[[1776,1785],"valid"],[[1786,1790],"valid"],[[1791,1791],"valid"],[[1792,1805],"valid",[],"NV8"],[[1806,1806],"disallowed"],[[1807,1807],"disallowed"],[[1808,1836],"valid"],[[1837,1839],"valid"],[[1840,1866],"valid"],[[1867,1868],"disallowed"],[[1869,1871],"valid"],[[1872,1901],"valid"],[[1902,1919],"valid"],[[1920,1968],"valid"],[[1969,1969],"valid"],[[1970,1983],"disallowed"],[[1984,2037],"valid"],[[2038,2042],"valid",[],"NV8"],[[2043,2047],"disallowed"],[[2048,2093],"valid"],[[2094,2095],"disallowed"],[[2096,2110],"valid",[],"NV8"],[[2111,2111],"disallowed"],[[2112,2139],"valid"],[[2140,2141],"disallowed"],[[2142,2142],"valid",[],"NV8"],[[2143,2207],"disallowed"],[[2208,2208],"valid"],[[2209,2209],"valid"],[[2210,2220],"valid"],[[2221,2226],"valid"],[[2227,2228],"valid"],[[2229,2274],"disallowed"],[[2275,2275],"valid"],[[2276,2302],"valid"],[[2303,2303],"valid"],[[2304,2304],"valid"],[[2305,2307],"valid"],[[2308,2308],"valid"],[[2309,2361],"valid"],[[2362,2363],"valid"],[[2364,2381],"valid"],[[2382,2382],"valid"],[[2383,2383],"valid"],[[2384,2388],"valid"],[[2389,2389],"valid"],[[2390,2391],"valid"],[[2392,2392],"mapped",[2325,2364]],[[2393,2393],"mapped",[2326,2364]],[[2394,2394],"mapped",[2327,2364]],[[2395,2395],"mapped",[2332,2364]],[[2396,2396],"mapped",[2337,2364]],[[2397,2397],"mapped",[2338,2364]],[[2398,2398],"mapped",[2347,2364]],[[2399,2399],"mapped",[2351,2364]],[[2400,2403],"valid"],[[2404,2405],"valid",[],"NV8"],[[2406,2415],"valid"],[[2416,2416],"valid",[],"NV8"],[[2417,2418],"valid"],[[2419,2423],"valid"],[[2424,2424],"valid"],[[2425,2426],"valid"],[[2427,2428],"valid"],[[2429,2429],"valid"],[[2430,2431],"valid"],[[2432,2432],"valid"],[[2433,2435],"valid"],[[2436,2436],"disallowed"],[[2437,2444],"valid"],[[2445,2446],"disallowed"],[[2447,2448],"valid"],[[2449,2450],"disallowed"],[[2451,2472],"valid"],[[2473,2473],"disallowed"],[[2474,2480],"valid"],[[2481,2481],"disallowed"],[[2482,2482],"valid"],[[2483,2485],"disallowed"],[[2486,2489],"valid"],[[2490,2491],"disallowed"],[[2492,2492],"valid"],[[2493,2493],"valid"],[[2494,2500],"valid"],[[2501,2502],"disallowed"],[[2503,2504],"valid"],[[2505,2506],"disallowed"],[[2507,2509],"valid"],[[2510,2510],"valid"],[[2511,2518],"disallowed"],[[2519,2519],"valid"],[[2520,2523],"disallowed"],[[2524,2524],"mapped",[2465,2492]],[[2525,2525],"mapped",[2466,2492]],[[2526,2526],"disallowed"],[[2527,2527],"mapped",[2479,2492]],[[2528,2531],"valid"],[[2532,2533],"disallowed"],[[2534,2545],"valid"],[[2546,2554],"valid",[],"NV8"],[[2555,2555],"valid",[],"NV8"],[[2556,2560],"disallowed"],[[2561,2561],"valid"],[[2562,2562],"valid"],[[2563,2563],"valid"],[[2564,2564],"disallowed"],[[2565,2570],"valid"],[[2571,2574],"disallowed"],[[2575,2576],"valid"],[[2577,2578],"disallowed"],[[2579,2600],"valid"],[[2601,2601],"disallowed"],[[2602,2608],"valid"],[[2609,2609],"disallowed"],[[2610,2610],"valid"],[[2611,2611],"mapped",[2610,2620]],[[2612,2612],"disallowed"],[[2613,2613],"valid"],[[2614,2614],"mapped",[2616,2620]],[[2615,2615],"disallowed"],[[2616,2617],"valid"],[[2618,2619],"disallowed"],[[2620,2620],"valid"],[[2621,2621],"disallowed"],[[2622,2626],"valid"],[[2627,2630],"disallowed"],[[2631,2632],"valid"],[[2633,2634],"disallowed"],[[2635,2637],"valid"],[[2638,2640],"disallowed"],[[2641,2641],"valid"],[[2642,2648],"disallowed"],[[2649,2649],"mapped",[2582,2620]],[[2650,2650],"mapped",[2583,2620]],[[2651,2651],"mapped",[2588,2620]],[[2652,2652],"valid"],[[2653,2653],"disallowed"],[[2654,2654],"mapped",[2603,2620]],[[2655,2661],"disallowed"],[[2662,2676],"valid"],[[2677,2677],"valid"],[[2678,2688],"disallowed"],[[2689,2691],"valid"],[[2692,2692],"disallowed"],[[2693,2699],"valid"],[[2700,2700],"valid"],[[2701,2701],"valid"],[[2702,2702],"disallowed"],[[2703,2705],"valid"],[[2706,2706],"disallowed"],[[2707,2728],"valid"],[[2729,2729],"disallowed"],[[2730,2736],"valid"],[[2737,2737],"disallowed"],[[2738,2739],"valid"],[[2740,2740],"disallowed"],[[2741,2745],"valid"],[[2746,2747],"disallowed"],[[2748,2757],"valid"],[[2758,2758],"disallowed"],[[2759,2761],"valid"],[[2762,2762],"disallowed"],[[2763,2765],"valid"],[[2766,2767],"disallowed"],[[2768,2768],"valid"],[[2769,2783],"disallowed"],[[2784,2784],"valid"],[[2785,2787],"valid"],[[2788,2789],"disallowed"],[[2790,2799],"valid"],[[2800,2800],"valid",[],"NV8"],[[2801,2801],"valid",[],"NV8"],[[2802,2808],"disallowed"],[[2809,2809],"valid"],[[2810,2816],"disallowed"],[[2817,2819],"valid"],[[2820,2820],"disallowed"],[[2821,2828],"valid"],[[2829,2830],"disallowed"],[[2831,2832],"valid"],[[2833,2834],"disallowed"],[[2835,2856],"valid"],[[2857,2857],"disallowed"],[[2858,2864],"valid"],[[2865,2865],"disallowed"],[[2866,2867],"valid"],[[2868,2868],"disallowed"],[[2869,2869],"valid"],[[2870,2873],"valid"],[[2874,2875],"disallowed"],[[2876,2883],"valid"],[[2884,2884],"valid"],[[2885,2886],"disallowed"],[[2887,2888],"valid"],[[2889,2890],"disallowed"],[[2891,2893],"valid"],[[2894,2901],"disallowed"],[[2902,2903],"valid"],[[2904,2907],"disallowed"],[[2908,2908],"mapped",[2849,2876]],[[2909,2909],"mapped",[2850,2876]],[[2910,2910],"disallowed"],[[2911,2913],"valid"],[[2914,2915],"valid"],[[2916,2917],"disallowed"],[[2918,2927],"valid"],[[2928,2928],"valid",[],"NV8"],[[2929,2929],"valid"],[[2930,2935],"valid",[],"NV8"],[[2936,2945],"disallowed"],[[2946,2947],"valid"],[[2948,2948],"disallowed"],[[2949,2954],"valid"],[[2955,2957],"disallowed"],[[2958,2960],"valid"],[[2961,2961],"disallowed"],[[2962,2965],"valid"],[[2966,2968],"disallowed"],[[2969,2970],"valid"],[[2971,2971],"disallowed"],[[2972,2972],"valid"],[[2973,2973],"disallowed"],[[2974,2975],"valid"],[[2976,2978],"disallowed"],[[2979,2980],"valid"],[[2981,2983],"disallowed"],[[2984,2986],"valid"],[[2987,2989],"disallowed"],[[2990,2997],"valid"],[[2998,2998],"valid"],[[2999,3001],"valid"],[[3002,3005],"disallowed"],[[3006,3010],"valid"],[[3011,3013],"disallowed"],[[3014,3016],"valid"],[[3017,3017],"disallowed"],[[3018,3021],"valid"],[[3022,3023],"disallowed"],[[3024,3024],"valid"],[[3025,3030],"disallowed"],[[3031,3031],"valid"],[[3032,3045],"disallowed"],[[3046,3046],"valid"],[[3047,3055],"valid"],[[3056,3058],"valid",[],"NV8"],[[3059,3066],"valid",[],"NV8"],[[3067,3071],"disallowed"],[[3072,3072],"valid"],[[3073,3075],"valid"],[[3076,3076],"disallowed"],[[3077,3084],"valid"],[[3085,3085],"disallowed"],[[3086,3088],"valid"],[[3089,3089],"disallowed"],[[3090,3112],"valid"],[[3113,3113],"disallowed"],[[3114,3123],"valid"],[[3124,3124],"valid"],[[3125,3129],"valid"],[[3130,3132],"disallowed"],[[3133,3133],"valid"],[[3134,3140],"valid"],[[3141,3141],"disallowed"],[[3142,3144],"valid"],[[3145,3145],"disallowed"],[[3146,3149],"valid"],[[3150,3156],"disallowed"],[[3157,3158],"valid"],[[3159,3159],"disallowed"],[[3160,3161],"valid"],[[3162,3162],"valid"],[[3163,3167],"disallowed"],[[3168,3169],"valid"],[[3170,3171],"valid"],[[3172,3173],"disallowed"],[[3174,3183],"valid"],[[3184,3191],"disallowed"],[[3192,3199],"valid",[],"NV8"],[[3200,3200],"disallowed"],[[3201,3201],"valid"],[[3202,3203],"valid"],[[3204,3204],"disallowed"],[[3205,3212],"valid"],[[3213,3213],"disallowed"],[[3214,3216],"valid"],[[3217,3217],"disallowed"],[[3218,3240],"valid"],[[3241,3241],"disallowed"],[[3242,3251],"valid"],[[3252,3252],"disallowed"],[[3253,3257],"valid"],[[3258,3259],"disallowed"],[[3260,3261],"valid"],[[3262,3268],"valid"],[[3269,3269],"disallowed"],[[3270,3272],"valid"],[[3273,3273],"disallowed"],[[3274,3277],"valid"],[[3278,3284],"disallowed"],[[3285,3286],"valid"],[[3287,3293],"disallowed"],[[3294,3294],"valid"],[[3295,3295],"disallowed"],[[3296,3297],"valid"],[[3298,3299],"valid"],[[3300,3301],"disallowed"],[[3302,3311],"valid"],[[3312,3312],"disallowed"],[[3313,3314],"valid"],[[3315,3328],"disallowed"],[[3329,3329],"valid"],[[3330,3331],"valid"],[[3332,3332],"disallowed"],[[3333,3340],"valid"],[[3341,3341],"disallowed"],[[3342,3344],"valid"],[[3345,3345],"disallowed"],[[3346,3368],"valid"],[[3369,3369],"valid"],[[3370,3385],"valid"],[[3386,3386],"valid"],[[3387,3388],"disallowed"],[[3389,3389],"valid"],[[3390,3395],"valid"],[[3396,3396],"valid"],[[3397,3397],"disallowed"],[[3398,3400],"valid"],[[3401,3401],"disallowed"],[[3402,3405],"valid"],[[3406,3406],"valid"],[[3407,3414],"disallowed"],[[3415,3415],"valid"],[[3416,3422],"disallowed"],[[3423,3423],"valid"],[[3424,3425],"valid"],[[3426,3427],"valid"],[[3428,3429],"disallowed"],[[3430,3439],"valid"],[[3440,3445],"valid",[],"NV8"],[[3446,3448],"disallowed"],[[3449,3449],"valid",[],"NV8"],[[3450,3455],"valid"],[[3456,3457],"disallowed"],[[3458,3459],"valid"],[[3460,3460],"disallowed"],[[3461,3478],"valid"],[[3479,3481],"disallowed"],[[3482,3505],"valid"],[[3506,3506],"disallowed"],[[3507,3515],"valid"],[[3516,3516],"disallowed"],[[3517,3517],"valid"],[[3518,3519],"disallowed"],[[3520,3526],"valid"],[[3527,3529],"disallowed"],[[3530,3530],"valid"],[[3531,3534],"disallowed"],[[3535,3540],"valid"],[[3541,3541],"disallowed"],[[3542,3542],"valid"],[[3543,3543],"disallowed"],[[3544,3551],"valid"],[[3552,3557],"disallowed"],[[3558,3567],"valid"],[[3568,3569],"disallowed"],[[3570,3571],"valid"],[[3572,3572],"valid",[],"NV8"],[[3573,3584],"disallowed"],[[3585,3634],"valid"],[[3635,3635],"mapped",[3661,3634]],[[3636,3642],"valid"],[[3643,3646],"disallowed"],[[3647,3647],"valid",[],"NV8"],[[3648,3662],"valid"],[[3663,3663],"valid",[],"NV8"],[[3664,3673],"valid"],[[3674,3675],"valid",[],"NV8"],[[3676,3712],"disallowed"],[[3713,3714],"valid"],[[3715,3715],"disallowed"],[[3716,3716],"valid"],[[3717,3718],"disallowed"],[[3719,3720],"valid"],[[3721,3721],"disallowed"],[[3722,3722],"valid"],[[3723,3724],"disallowed"],[[3725,3725],"valid"],[[3726,3731],"disallowed"],[[3732,3735],"valid"],[[3736,3736],"disallowed"],[[3737,3743],"valid"],[[3744,3744],"disallowed"],[[3745,3747],"valid"],[[3748,3748],"disallowed"],[[3749,3749],"valid"],[[3750,3750],"disallowed"],[[3751,3751],"valid"],[[3752,3753],"disallowed"],[[3754,3755],"valid"],[[3756,3756],"disallowed"],[[3757,3762],"valid"],[[3763,3763],"mapped",[3789,3762]],[[3764,3769],"valid"],[[3770,3770],"disallowed"],[[3771,3773],"valid"],[[3774,3775],"disallowed"],[[3776,3780],"valid"],[[3781,3781],"disallowed"],[[3782,3782],"valid"],[[3783,3783],"disallowed"],[[3784,3789],"valid"],[[3790,3791],"disallowed"],[[3792,3801],"valid"],[[3802,3803],"disallowed"],[[3804,3804],"mapped",[3755,3737]],[[3805,3805],"mapped",[3755,3745]],[[3806,3807],"valid"],[[3808,3839],"disallowed"],[[3840,3840],"valid"],[[3841,3850],"valid",[],"NV8"],[[3851,3851],"valid"],[[3852,3852],"mapped",[3851]],[[3853,3863],"valid",[],"NV8"],[[3864,3865],"valid"],[[3866,3871],"valid",[],"NV8"],[[3872,3881],"valid"],[[3882,3892],"valid",[],"NV8"],[[3893,3893],"valid"],[[3894,3894],"valid",[],"NV8"],[[3895,3895],"valid"],[[3896,3896],"valid",[],"NV8"],[[3897,3897],"valid"],[[3898,3901],"valid",[],"NV8"],[[3902,3906],"valid"],[[3907,3907],"mapped",[3906,4023]],[[3908,3911],"valid"],[[3912,3912],"disallowed"],[[3913,3916],"valid"],[[3917,3917],"mapped",[3916,4023]],[[3918,3921],"valid"],[[3922,3922],"mapped",[3921,4023]],[[3923,3926],"valid"],[[3927,3927],"mapped",[3926,4023]],[[3928,3931],"valid"],[[3932,3932],"mapped",[3931,4023]],[[3933,3944],"valid"],[[3945,3945],"mapped",[3904,4021]],[[3946,3946],"valid"],[[3947,3948],"valid"],[[3949,3952],"disallowed"],[[3953,3954],"valid"],[[3955,3955],"mapped",[3953,3954]],[[3956,3956],"valid"],[[3957,3957],"mapped",[3953,3956]],[[3958,3958],"mapped",[4018,3968]],[[3959,3959],"mapped",[4018,3953,3968]],[[3960,3960],"mapped",[4019,3968]],[[3961,3961],"mapped",[4019,3953,3968]],[[3962,3968],"valid"],[[3969,3969],"mapped",[3953,3968]],[[3970,3972],"valid"],[[3973,3973],"valid",[],"NV8"],[[3974,3979],"valid"],[[3980,3983],"valid"],[[3984,3986],"valid"],[[3987,3987],"mapped",[3986,4023]],[[3988,3989],"valid"],[[3990,3990],"valid"],[[3991,3991],"valid"],[[3992,3992],"disallowed"],[[3993,3996],"valid"],[[3997,3997],"mapped",[3996,4023]],[[3998,4001],"valid"],[[4002,4002],"mapped",[4001,4023]],[[4003,4006],"valid"],[[4007,4007],"mapped",[4006,4023]],[[4008,4011],"valid"],[[4012,4012],"mapped",[4011,4023]],[[4013,4013],"valid"],[[4014,4016],"valid"],[[4017,4023],"valid"],[[4024,4024],"valid"],[[4025,4025],"mapped",[3984,4021]],[[4026,4028],"valid"],[[4029,4029],"disallowed"],[[4030,4037],"valid",[],"NV8"],[[4038,4038],"valid"],[[4039,4044],"valid",[],"NV8"],[[4045,4045],"disallowed"],[[4046,4046],"valid",[],"NV8"],[[4047,4047],"valid",[],"NV8"],[[4048,4049],"valid",[],"NV8"],[[4050,4052],"valid",[],"NV8"],[[4053,4056],"valid",[],"NV8"],[[4057,4058],"valid",[],"NV8"],[[4059,4095],"disallowed"],[[4096,4129],"valid"],[[4130,4130],"valid"],[[4131,4135],"valid"],[[4136,4136],"valid"],[[4137,4138],"valid"],[[4139,4139],"valid"],[[4140,4146],"valid"],[[4147,4149],"valid"],[[4150,4153],"valid"],[[4154,4159],"valid"],[[4160,4169],"valid"],[[4170,4175],"valid",[],"NV8"],[[4176,4185],"valid"],[[4186,4249],"valid"],[[4250,4253],"valid"],[[4254,4255],"valid",[],"NV8"],[[4256,4293],"disallowed"],[[4294,4294],"disallowed"],[[4295,4295],"mapped",[11559]],[[4296,4300],"disallowed"],[[4301,4301],"mapped",[11565]],[[4302,4303],"disallowed"],[[4304,4342],"valid"],[[4343,4344],"valid"],[[4345,4346],"valid"],[[4347,4347],"valid",[],"NV8"],[[4348,4348],"mapped",[4316]],[[4349,4351],"valid"],[[4352,4441],"valid",[],"NV8"],[[4442,4446],"valid",[],"NV8"],[[4447,4448],"disallowed"],[[4449,4514],"valid",[],"NV8"],[[4515,4519],"valid",[],"NV8"],[[4520,4601],"valid",[],"NV8"],[[4602,4607],"valid",[],"NV8"],[[4608,4614],"valid"],[[4615,4615],"valid"],[[4616,4678],"valid"],[[4679,4679],"valid"],[[4680,4680],"valid"],[[4681,4681],"disallowed"],[[4682,4685],"valid"],[[4686,4687],"disallowed"],[[4688,4694],"valid"],[[4695,4695],"disallowed"],[[4696,4696],"valid"],[[4697,4697],"disallowed"],[[4698,4701],"valid"],[[4702,4703],"disallowed"],[[4704,4742],"valid"],[[4743,4743],"valid"],[[4744,4744],"valid"],[[4745,4745],"disallowed"],[[4746,4749],"valid"],[[4750,4751],"disallowed"],[[4752,4782],"valid"],[[4783,4783],"valid"],[[4784,4784],"valid"],[[4785,4785],"disallowed"],[[4786,4789],"valid"],[[4790,4791],"disallowed"],[[4792,4798],"valid"],[[4799,4799],"disallowed"],[[4800,4800],"valid"],[[4801,4801],"disallowed"],[[4802,4805],"valid"],[[4806,4807],"disallowed"],[[4808,4814],"valid"],[[4815,4815],"valid"],[[4816,4822],"valid"],[[4823,4823],"disallowed"],[[4824,4846],"valid"],[[4847,4847],"valid"],[[4848,4878],"valid"],[[4879,4879],"valid"],[[4880,4880],"valid"],[[4881,4881],"disallowed"],[[4882,4885],"valid"],[[4886,4887],"disallowed"],[[4888,4894],"valid"],[[4895,4895],"valid"],[[4896,4934],"valid"],[[4935,4935],"valid"],[[4936,4954],"valid"],[[4955,4956],"disallowed"],[[4957,4958],"valid"],[[4959,4959],"valid"],[[4960,4960],"valid",[],"NV8"],[[4961,4988],"valid",[],"NV8"],[[4989,4991],"disallowed"],[[4992,5007],"valid"],[[5008,5017],"valid",[],"NV8"],[[5018,5023],"disallowed"],[[5024,5108],"valid"],[[5109,5109],"valid"],[[5110,5111],"disallowed"],[[5112,5112],"mapped",[5104]],[[5113,5113],"mapped",[5105]],[[5114,5114],"mapped",[5106]],[[5115,5115],"mapped",[5107]],[[5116,5116],"mapped",[5108]],[[5117,5117],"mapped",[5109]],[[5118,5119],"disallowed"],[[5120,5120],"valid",[],"NV8"],[[5121,5740],"valid"],[[5741,5742],"valid",[],"NV8"],[[5743,5750],"valid"],[[5751,5759],"valid"],[[5760,5760],"disallowed"],[[5761,5786],"valid"],[[5787,5788],"valid",[],"NV8"],[[5789,5791],"disallowed"],[[5792,5866],"valid"],[[5867,5872],"valid",[],"NV8"],[[5873,5880],"valid"],[[5881,5887],"disallowed"],[[5888,5900],"valid"],[[5901,5901],"disallowed"],[[5902,5908],"valid"],[[5909,5919],"disallowed"],[[5920,5940],"valid"],[[5941,5942],"valid",[],"NV8"],[[5943,5951],"disallowed"],[[5952,5971],"valid"],[[5972,5983],"disallowed"],[[5984,5996],"valid"],[[5997,5997],"disallowed"],[[5998,6000],"valid"],[[6001,6001],"disallowed"],[[6002,6003],"valid"],[[6004,6015],"disallowed"],[[6016,6067],"valid"],[[6068,6069],"disallowed"],[[6070,6099],"valid"],[[6100,6102],"valid",[],"NV8"],[[6103,6103],"valid"],[[6104,6107],"valid",[],"NV8"],[[6108,6108],"valid"],[[6109,6109],"valid"],[[6110,6111],"disallowed"],[[6112,6121],"valid"],[[6122,6127],"disallowed"],[[6128,6137],"valid",[],"NV8"],[[6138,6143],"disallowed"],[[6144,6149],"valid",[],"NV8"],[[6150,6150],"disallowed"],[[6151,6154],"valid",[],"NV8"],[[6155,6157],"ignored"],[[6158,6158],"disallowed"],[[6159,6159],"disallowed"],[[6160,6169],"valid"],[[6170,6175],"disallowed"],[[6176,6263],"valid"],[[6264,6271],"disallowed"],[[6272,6313],"valid"],[[6314,6314],"valid"],[[6315,6319],"disallowed"],[[6320,6389],"valid"],[[6390,6399],"disallowed"],[[6400,6428],"valid"],[[6429,6430],"valid"],[[6431,6431],"disallowed"],[[6432,6443],"valid"],[[6444,6447],"disallowed"],[[6448,6459],"valid"],[[6460,6463],"disallowed"],[[6464,6464],"valid",[],"NV8"],[[6465,6467],"disallowed"],[[6468,6469],"valid",[],"NV8"],[[6470,6509],"valid"],[[6510,6511],"disallowed"],[[6512,6516],"valid"],[[6517,6527],"disallowed"],[[6528,6569],"valid"],[[6570,6571],"valid"],[[6572,6575],"disallowed"],[[6576,6601],"valid"],[[6602,6607],"disallowed"],[[6608,6617],"valid"],[[6618,6618],"valid",[],"XV8"],[[6619,6621],"disallowed"],[[6622,6623],"valid",[],"NV8"],[[6624,6655],"valid",[],"NV8"],[[6656,6683],"valid"],[[6684,6685],"disallowed"],[[6686,6687],"valid",[],"NV8"],[[6688,6750],"valid"],[[6751,6751],"disallowed"],[[6752,6780],"valid"],[[6781,6782],"disallowed"],[[6783,6793],"valid"],[[6794,6799],"disallowed"],[[6800,6809],"valid"],[[6810,6815],"disallowed"],[[6816,6822],"valid",[],"NV8"],[[6823,6823],"valid"],[[6824,6829],"valid",[],"NV8"],[[6830,6831],"disallowed"],[[6832,6845],"valid"],[[6846,6846],"valid",[],"NV8"],[[6847,6911],"disallowed"],[[6912,6987],"valid"],[[6988,6991],"disallowed"],[[6992,7001],"valid"],[[7002,7018],"valid",[],"NV8"],[[7019,7027],"valid"],[[7028,7036],"valid",[],"NV8"],[[7037,7039],"disallowed"],[[7040,7082],"valid"],[[7083,7085],"valid"],[[7086,7097],"valid"],[[7098,7103],"valid"],[[7104,7155],"valid"],[[7156,7163],"disallowed"],[[7164,7167],"valid",[],"NV8"],[[7168,7223],"valid"],[[7224,7226],"disallowed"],[[7227,7231],"valid",[],"NV8"],[[7232,7241],"valid"],[[7242,7244],"disallowed"],[[7245,7293],"valid"],[[7294,7295],"valid",[],"NV8"],[[7296,7359],"disallowed"],[[7360,7367],"valid",[],"NV8"],[[7368,7375],"disallowed"],[[7376,7378],"valid"],[[7379,7379],"valid",[],"NV8"],[[7380,7410],"valid"],[[7411,7414],"valid"],[[7415,7415],"disallowed"],[[7416,7417],"valid"],[[7418,7423],"disallowed"],[[7424,7467],"valid"],[[7468,7468],"mapped",[97]],[[7469,7469],"mapped",[230]],[[7470,7470],"mapped",[98]],[[7471,7471],"valid"],[[7472,7472],"mapped",[100]],[[7473,7473],"mapped",[101]],[[7474,7474],"mapped",[477]],[[7475,7475],"mapped",[103]],[[7476,7476],"mapped",[104]],[[7477,7477],"mapped",[105]],[[7478,7478],"mapped",[106]],[[7479,7479],"mapped",[107]],[[7480,7480],"mapped",[108]],[[7481,7481],"mapped",[109]],[[7482,7482],"mapped",[110]],[[7483,7483],"valid"],[[7484,7484],"mapped",[111]],[[7485,7485],"mapped",[547]],[[7486,7486],"mapped",[112]],[[7487,7487],"mapped",[114]],[[7488,7488],"mapped",[116]],[[7489,7489],"mapped",[117]],[[7490,7490],"mapped",[119]],[[7491,7491],"mapped",[97]],[[7492,7492],"mapped",[592]],[[7493,7493],"mapped",[593]],[[7494,7494],"mapped",[7426]],[[7495,7495],"mapped",[98]],[[7496,7496],"mapped",[100]],[[7497,7497],"mapped",[101]],[[7498,7498],"mapped",[601]],[[7499,7499],"mapped",[603]],[[7500,7500],"mapped",[604]],[[7501,7501],"mapped",[103]],[[7502,7502],"valid"],[[7503,7503],"mapped",[107]],[[7504,7504],"mapped",[109]],[[7505,7505],"mapped",[331]],[[7506,7506],"mapped",[111]],[[7507,7507],"mapped",[596]],[[7508,7508],"mapped",[7446]],[[7509,7509],"mapped",[7447]],[[7510,7510],"mapped",[112]],[[7511,7511],"mapped",[116]],[[7512,7512],"mapped",[117]],[[7513,7513],"mapped",[7453]],[[7514,7514],"mapped",[623]],[[7515,7515],"mapped",[118]],[[7516,7516],"mapped",[7461]],[[7517,7517],"mapped",[946]],[[7518,7518],"mapped",[947]],[[7519,7519],"mapped",[948]],[[7520,7520],"mapped",[966]],[[7521,7521],"mapped",[967]],[[7522,7522],"mapped",[105]],[[7523,7523],"mapped",[114]],[[7524,7524],"mapped",[117]],[[7525,7525],"mapped",[118]],[[7526,7526],"mapped",[946]],[[7527,7527],"mapped",[947]],[[7528,7528],"mapped",[961]],[[7529,7529],"mapped",[966]],[[7530,7530],"mapped",[967]],[[7531,7531],"valid"],[[7532,7543],"valid"],[[7544,7544],"mapped",[1085]],[[7545,7578],"valid"],[[7579,7579],"mapped",[594]],[[7580,7580],"mapped",[99]],[[7581,7581],"mapped",[597]],[[7582,7582],"mapped",[240]],[[7583,7583],"mapped",[604]],[[7584,7584],"mapped",[102]],[[7585,7585],"mapped",[607]],[[7586,7586],"mapped",[609]],[[7587,7587],"mapped",[613]],[[7588,7588],"mapped",[616]],[[7589,7589],"mapped",[617]],[[7590,7590],"mapped",[618]],[[7591,7591],"mapped",[7547]],[[7592,7592],"mapped",[669]],[[7593,7593],"mapped",[621]],[[7594,7594],"mapped",[7557]],[[7595,7595],"mapped",[671]],[[7596,7596],"mapped",[625]],[[7597,7597],"mapped",[624]],[[7598,7598],"mapped",[626]],[[7599,7599],"mapped",[627]],[[7600,7600],"mapped",[628]],[[7601,7601],"mapped",[629]],[[7602,7602],"mapped",[632]],[[7603,7603],"mapped",[642]],[[7604,7604],"mapped",[643]],[[7605,7605],"mapped",[427]],[[7606,7606],"mapped",[649]],[[7607,7607],"mapped",[650]],[[7608,7608],"mapped",[7452]],[[7609,7609],"mapped",[651]],[[7610,7610],"mapped",[652]],[[7611,7611],"mapped",[122]],[[7612,7612],"mapped",[656]],[[7613,7613],"mapped",[657]],[[7614,7614],"mapped",[658]],[[7615,7615],"mapped",[952]],[[7616,7619],"valid"],[[7620,7626],"valid"],[[7627,7654],"valid"],[[7655,7669],"valid"],[[7670,7675],"disallowed"],[[7676,7676],"valid"],[[7677,7677],"valid"],[[7678,7679],"valid"],[[7680,7680],"mapped",[7681]],[[7681,7681],"valid"],[[7682,7682],"mapped",[7683]],[[7683,7683],"valid"],[[7684,7684],"mapped",[7685]],[[7685,7685],"valid"],[[7686,7686],"mapped",[7687]],[[7687,7687],"valid"],[[7688,7688],"mapped",[7689]],[[7689,7689],"valid"],[[7690,7690],"mapped",[7691]],[[7691,7691],"valid"],[[7692,7692],"mapped",[7693]],[[7693,7693],"valid"],[[7694,7694],"mapped",[7695]],[[7695,7695],"valid"],[[7696,7696],"mapped",[7697]],[[7697,7697],"valid"],[[7698,7698],"mapped",[7699]],[[7699,7699],"valid"],[[7700,7700],"mapped",[7701]],[[7701,7701],"valid"],[[7702,7702],"mapped",[7703]],[[7703,7703],"valid"],[[7704,7704],"mapped",[7705]],[[7705,7705],"valid"],[[7706,7706],"mapped",[7707]],[[7707,7707],"valid"],[[7708,7708],"mapped",[7709]],[[7709,7709],"valid"],[[7710,7710],"mapped",[7711]],[[7711,7711],"valid"],[[7712,7712],"mapped",[7713]],[[7713,7713],"valid"],[[7714,7714],"mapped",[7715]],[[7715,7715],"valid"],[[7716,7716],"mapped",[7717]],[[7717,7717],"valid"],[[7718,7718],"mapped",[7719]],[[7719,7719],"valid"],[[7720,7720],"mapped",[7721]],[[7721,7721],"valid"],[[7722,7722],"mapped",[7723]],[[7723,7723],"valid"],[[7724,7724],"mapped",[7725]],[[7725,7725],"valid"],[[7726,7726],"mapped",[7727]],[[7727,7727],"valid"],[[7728,7728],"mapped",[7729]],[[7729,7729],"valid"],[[7730,7730],"mapped",[7731]],[[7731,7731],"valid"],[[7732,7732],"mapped",[7733]],[[7733,7733],"valid"],[[7734,7734],"mapped",[7735]],[[7735,7735],"valid"],[[7736,7736],"mapped",[7737]],[[7737,7737],"valid"],[[7738,7738],"mapped",[7739]],[[7739,7739],"valid"],[[7740,7740],"mapped",[7741]],[[7741,7741],"valid"],[[7742,7742],"mapped",[7743]],[[7743,7743],"valid"],[[7744,7744],"mapped",[7745]],[[7745,7745],"valid"],[[7746,7746],"mapped",[7747]],[[7747,7747],"valid"],[[7748,7748],"mapped",[7749]],[[7749,7749],"valid"],[[7750,7750],"mapped",[7751]],[[7751,7751],"valid"],[[7752,7752],"mapped",[7753]],[[7753,7753],"valid"],[[7754,7754],"mapped",[7755]],[[7755,7755],"valid"],[[7756,7756],"mapped",[7757]],[[7757,7757],"valid"],[[7758,7758],"mapped",[7759]],[[7759,7759],"valid"],[[7760,7760],"mapped",[7761]],[[7761,7761],"valid"],[[7762,7762],"mapped",[7763]],[[7763,7763],"valid"],[[7764,7764],"mapped",[7765]],[[7765,7765],"valid"],[[7766,7766],"mapped",[7767]],[[7767,7767],"valid"],[[7768,7768],"mapped",[7769]],[[7769,7769],"valid"],[[7770,7770],"mapped",[7771]],[[7771,7771],"valid"],[[7772,7772],"mapped",[7773]],[[7773,7773],"valid"],[[7774,7774],"mapped",[7775]],[[7775,7775],"valid"],[[7776,7776],"mapped",[7777]],[[7777,7777],"valid"],[[7778,7778],"mapped",[7779]],[[7779,7779],"valid"],[[7780,7780],"mapped",[7781]],[[7781,7781],"valid"],[[7782,7782],"mapped",[7783]],[[7783,7783],"valid"],[[7784,7784],"mapped",[7785]],[[7785,7785],"valid"],[[7786,7786],"mapped",[7787]],[[7787,7787],"valid"],[[7788,7788],"mapped",[7789]],[[7789,7789],"valid"],[[7790,7790],"mapped",[7791]],[[7791,7791],"valid"],[[7792,7792],"mapped",[7793]],[[7793,7793],"valid"],[[7794,7794],"mapped",[7795]],[[7795,7795],"valid"],[[7796,7796],"mapped",[7797]],[[7797,7797],"valid"],[[7798,7798],"mapped",[7799]],[[7799,7799],"valid"],[[7800,7800],"mapped",[7801]],[[7801,7801],"valid"],[[7802,7802],"mapped",[7803]],[[7803,7803],"valid"],[[7804,7804],"mapped",[7805]],[[7805,7805],"valid"],[[7806,7806],"mapped",[7807]],[[7807,7807],"valid"],[[7808,7808],"mapped",[7809]],[[7809,7809],"valid"],[[7810,7810],"mapped",[7811]],[[7811,7811],"valid"],[[7812,7812],"mapped",[7813]],[[7813,7813],"valid"],[[7814,7814],"mapped",[7815]],[[7815,7815],"valid"],[[7816,7816],"mapped",[7817]],[[7817,7817],"valid"],[[7818,7818],"mapped",[7819]],[[7819,7819],"valid"],[[7820,7820],"mapped",[7821]],[[7821,7821],"valid"],[[7822,7822],"mapped",[7823]],[[7823,7823],"valid"],[[7824,7824],"mapped",[7825]],[[7825,7825],"valid"],[[7826,7826],"mapped",[7827]],[[7827,7827],"valid"],[[7828,7828],"mapped",[7829]],[[7829,7833],"valid"],[[7834,7834],"mapped",[97,702]],[[7835,7835],"mapped",[7777]],[[7836,7837],"valid"],[[7838,7838],"mapped",[115,115]],[[7839,7839],"valid"],[[7840,7840],"mapped",[7841]],[[7841,7841],"valid"],[[7842,7842],"mapped",[7843]],[[7843,7843],"valid"],[[7844,7844],"mapped",[7845]],[[7845,7845],"valid"],[[7846,7846],"mapped",[7847]],[[7847,7847],"valid"],[[7848,7848],"mapped",[7849]],[[7849,7849],"valid"],[[7850,7850],"mapped",[7851]],[[7851,7851],"valid"],[[7852,7852],"mapped",[7853]],[[7853,7853],"valid"],[[7854,7854],"mapped",[7855]],[[7855,7855],"valid"],[[7856,7856],"mapped",[7857]],[[7857,7857],"valid"],[[7858,7858],"mapped",[7859]],[[7859,7859],"valid"],[[7860,7860],"mapped",[7861]],[[7861,7861],"valid"],[[7862,7862],"mapped",[7863]],[[7863,7863],"valid"],[[7864,7864],"mapped",[7865]],[[7865,7865],"valid"],[[7866,7866],"mapped",[7867]],[[7867,7867],"valid"],[[7868,7868],"mapped",[7869]],[[7869,7869],"valid"],[[7870,7870],"mapped",[7871]],[[7871,7871],"valid"],[[7872,7872],"mapped",[7873]],[[7873,7873],"valid"],[[7874,7874],"mapped",[7875]],[[7875,7875],"valid"],[[7876,7876],"mapped",[7877]],[[7877,7877],"valid"],[[7878,7878],"mapped",[7879]],[[7879,7879],"valid"],[[7880,7880],"mapped",[7881]],[[7881,7881],"valid"],[[7882,7882],"mapped",[7883]],[[7883,7883],"valid"],[[7884,7884],"mapped",[7885]],[[7885,7885],"valid"],[[7886,7886],"mapped",[7887]],[[7887,7887],"valid"],[[7888,7888],"mapped",[7889]],[[7889,7889],"valid"],[[7890,7890],"mapped",[7891]],[[7891,7891],"valid"],[[7892,7892],"mapped",[7893]],[[7893,7893],"valid"],[[7894,7894],"mapped",[7895]],[[7895,7895],"valid"],[[7896,7896],"mapped",[7897]],[[7897,7897],"valid"],[[7898,7898],"mapped",[7899]],[[7899,7899],"valid"],[[7900,7900],"mapped",[7901]],[[7901,7901],"valid"],[[7902,7902],"mapped",[7903]],[[7903,7903],"valid"],[[7904,7904],"mapped",[7905]],[[7905,7905],"valid"],[[7906,7906],"mapped",[7907]],[[7907,7907],"valid"],[[7908,7908],"mapped",[7909]],[[7909,7909],"valid"],[[7910,7910],"mapped",[7911]],[[7911,7911],"valid"],[[7912,7912],"mapped",[7913]],[[7913,7913],"valid"],[[7914,7914],"mapped",[7915]],[[7915,7915],"valid"],[[7916,7916],"mapped",[7917]],[[7917,7917],"valid"],[[7918,7918],"mapped",[7919]],[[7919,7919],"valid"],[[7920,7920],"mapped",[7921]],[[7921,7921],"valid"],[[7922,7922],"mapped",[7923]],[[7923,7923],"valid"],[[7924,7924],"mapped",[7925]],[[7925,7925],"valid"],[[7926,7926],"mapped",[7927]],[[7927,7927],"valid"],[[7928,7928],"mapped",[7929]],[[7929,7929],"valid"],[[7930,7930],"mapped",[7931]],[[7931,7931],"valid"],[[7932,7932],"mapped",[7933]],[[7933,7933],"valid"],[[7934,7934],"mapped",[7935]],[[7935,7935],"valid"],[[7936,7943],"valid"],[[7944,7944],"mapped",[7936]],[[7945,7945],"mapped",[7937]],[[7946,7946],"mapped",[7938]],[[7947,7947],"mapped",[7939]],[[7948,7948],"mapped",[7940]],[[7949,7949],"mapped",[7941]],[[7950,7950],"mapped",[7942]],[[7951,7951],"mapped",[7943]],[[7952,7957],"valid"],[[7958,7959],"disallowed"],[[7960,7960],"mapped",[7952]],[[7961,7961],"mapped",[7953]],[[7962,7962],"mapped",[7954]],[[7963,7963],"mapped",[7955]],[[7964,7964],"mapped",[7956]],[[7965,7965],"mapped",[7957]],[[7966,7967],"disallowed"],[[7968,7975],"valid"],[[7976,7976],"mapped",[7968]],[[7977,7977],"mapped",[7969]],[[7978,7978],"mapped",[7970]],[[7979,7979],"mapped",[7971]],[[7980,7980],"mapped",[7972]],[[7981,7981],"mapped",[7973]],[[7982,7982],"mapped",[7974]],[[7983,7983],"mapped",[7975]],[[7984,7991],"valid"],[[7992,7992],"mapped",[7984]],[[7993,7993],"mapped",[7985]],[[7994,7994],"mapped",[7986]],[[7995,7995],"mapped",[7987]],[[7996,7996],"mapped",[7988]],[[7997,7997],"mapped",[7989]],[[7998,7998],"mapped",[7990]],[[7999,7999],"mapped",[7991]],[[8000,8005],"valid"],[[8006,8007],"disallowed"],[[8008,8008],"mapped",[8000]],[[8009,8009],"mapped",[8001]],[[8010,8010],"mapped",[8002]],[[8011,8011],"mapped",[8003]],[[8012,8012],"mapped",[8004]],[[8013,8013],"mapped",[8005]],[[8014,8015],"disallowed"],[[8016,8023],"valid"],[[8024,8024],"disallowed"],[[8025,8025],"mapped",[8017]],[[8026,8026],"disallowed"],[[8027,8027],"mapped",[8019]],[[8028,8028],"disallowed"],[[8029,8029],"mapped",[8021]],[[8030,8030],"disallowed"],[[8031,8031],"mapped",[8023]],[[8032,8039],"valid"],[[8040,8040],"mapped",[8032]],[[8041,8041],"mapped",[8033]],[[8042,8042],"mapped",[8034]],[[8043,8043],"mapped",[8035]],[[8044,8044],"mapped",[8036]],[[8045,8045],"mapped",[8037]],[[8046,8046],"mapped",[8038]],[[8047,8047],"mapped",[8039]],[[8048,8048],"valid"],[[8049,8049],"mapped",[940]],[[8050,8050],"valid"],[[8051,8051],"mapped",[941]],[[8052,8052],"valid"],[[8053,8053],"mapped",[942]],[[8054,8054],"valid"],[[8055,8055],"mapped",[943]],[[8056,8056],"valid"],[[8057,8057],"mapped",[972]],[[8058,8058],"valid"],[[8059,8059],"mapped",[973]],[[8060,8060],"valid"],[[8061,8061],"mapped",[974]],[[8062,8063],"disallowed"],[[8064,8064],"mapped",[7936,953]],[[8065,8065],"mapped",[7937,953]],[[8066,8066],"mapped",[7938,953]],[[8067,8067],"mapped",[7939,953]],[[8068,8068],"mapped",[7940,953]],[[8069,8069],"mapped",[7941,953]],[[8070,8070],"mapped",[7942,953]],[[8071,8071],"mapped",[7943,953]],[[8072,8072],"mapped",[7936,953]],[[8073,8073],"mapped",[7937,953]],[[8074,8074],"mapped",[7938,953]],[[8075,8075],"mapped",[7939,953]],[[8076,8076],"mapped",[7940,953]],[[8077,8077],"mapped",[7941,953]],[[8078,8078],"mapped",[7942,953]],[[8079,8079],"mapped",[7943,953]],[[8080,8080],"mapped",[7968,953]],[[8081,8081],"mapped",[7969,953]],[[8082,8082],"mapped",[7970,953]],[[8083,8083],"mapped",[7971,953]],[[8084,8084],"mapped",[7972,953]],[[8085,8085],"mapped",[7973,953]],[[8086,8086],"mapped",[7974,953]],[[8087,8087],"mapped",[7975,953]],[[8088,8088],"mapped",[7968,953]],[[8089,8089],"mapped",[7969,953]],[[8090,8090],"mapped",[7970,953]],[[8091,8091],"mapped",[7971,953]],[[8092,8092],"mapped",[7972,953]],[[8093,8093],"mapped",[7973,953]],[[8094,8094],"mapped",[7974,953]],[[8095,8095],"mapped",[7975,953]],[[8096,8096],"mapped",[8032,953]],[[8097,8097],"mapped",[8033,953]],[[8098,8098],"mapped",[8034,953]],[[8099,8099],"mapped",[8035,953]],[[8100,8100],"mapped",[8036,953]],[[8101,8101],"mapped",[8037,953]],[[8102,8102],"mapped",[8038,953]],[[8103,8103],"mapped",[8039,953]],[[8104,8104],"mapped",[8032,953]],[[8105,8105],"mapped",[8033,953]],[[8106,8106],"mapped",[8034,953]],[[8107,8107],"mapped",[8035,953]],[[8108,8108],"mapped",[8036,953]],[[8109,8109],"mapped",[8037,953]],[[8110,8110],"mapped",[8038,953]],[[8111,8111],"mapped",[8039,953]],[[8112,8113],"valid"],[[8114,8114],"mapped",[8048,953]],[[8115,8115],"mapped",[945,953]],[[8116,8116],"mapped",[940,953]],[[8117,8117],"disallowed"],[[8118,8118],"valid"],[[8119,8119],"mapped",[8118,953]],[[8120,8120],"mapped",[8112]],[[8121,8121],"mapped",[8113]],[[8122,8122],"mapped",[8048]],[[8123,8123],"mapped",[940]],[[8124,8124],"mapped",[945,953]],[[8125,8125],"disallowed_STD3_mapped",[32,787]],[[8126,8126],"mapped",[953]],[[8127,8127],"disallowed_STD3_mapped",[32,787]],[[8128,8128],"disallowed_STD3_mapped",[32,834]],[[8129,8129],"disallowed_STD3_mapped",[32,776,834]],[[8130,8130],"mapped",[8052,953]],[[8131,8131],"mapped",[951,953]],[[8132,8132],"mapped",[942,953]],[[8133,8133],"disallowed"],[[8134,8134],"valid"],[[8135,8135],"mapped",[8134,953]],[[8136,8136],"mapped",[8050]],[[8137,8137],"mapped",[941]],[[8138,8138],"mapped",[8052]],[[8139,8139],"mapped",[942]],[[8140,8140],"mapped",[951,953]],[[8141,8141],"disallowed_STD3_mapped",[32,787,768]],[[8142,8142],"disallowed_STD3_mapped",[32,787,769]],[[8143,8143],"disallowed_STD3_mapped",[32,787,834]],[[8144,8146],"valid"],[[8147,8147],"mapped",[912]],[[8148,8149],"disallowed"],[[8150,8151],"valid"],[[8152,8152],"mapped",[8144]],[[8153,8153],"mapped",[8145]],[[8154,8154],"mapped",[8054]],[[8155,8155],"mapped",[943]],[[8156,8156],"disallowed"],[[8157,8157],"disallowed_STD3_mapped",[32,788,768]],[[8158,8158],"disallowed_STD3_mapped",[32,788,769]],[[8159,8159],"disallowed_STD3_mapped",[32,788,834]],[[8160,8162],"valid"],[[8163,8163],"mapped",[944]],[[8164,8167],"valid"],[[8168,8168],"mapped",[8160]],[[8169,8169],"mapped",[8161]],[[8170,8170],"mapped",[8058]],[[8171,8171],"mapped",[973]],[[8172,8172],"mapped",[8165]],[[8173,8173],"disallowed_STD3_mapped",[32,776,768]],[[8174,8174],"disallowed_STD3_mapped",[32,776,769]],[[8175,8175],"disallowed_STD3_mapped",[96]],[[8176,8177],"disallowed"],[[8178,8178],"mapped",[8060,953]],[[8179,8179],"mapped",[969,953]],[[8180,8180],"mapped",[974,953]],[[8181,8181],"disallowed"],[[8182,8182],"valid"],[[8183,8183],"mapped",[8182,953]],[[8184,8184],"mapped",[8056]],[[8185,8185],"mapped",[972]],[[8186,8186],"mapped",[8060]],[[8187,8187],"mapped",[974]],[[8188,8188],"mapped",[969,953]],[[8189,8189],"disallowed_STD3_mapped",[32,769]],[[8190,8190],"disallowed_STD3_mapped",[32,788]],[[8191,8191],"disallowed"],[[8192,8202],"disallowed_STD3_mapped",[32]],[[8203,8203],"ignored"],[[8204,8205],"deviation",[]],[[8206,8207],"disallowed"],[[8208,8208],"valid",[],"NV8"],[[8209,8209],"mapped",[8208]],[[8210,8214],"valid",[],"NV8"],[[8215,8215],"disallowed_STD3_mapped",[32,819]],[[8216,8227],"valid",[],"NV8"],[[8228,8230],"disallowed"],[[8231,8231],"valid",[],"NV8"],[[8232,8238],"disallowed"],[[8239,8239],"disallowed_STD3_mapped",[32]],[[8240,8242],"valid",[],"NV8"],[[8243,8243],"mapped",[8242,8242]],[[8244,8244],"mapped",[8242,8242,8242]],[[8245,8245],"valid",[],"NV8"],[[8246,8246],"mapped",[8245,8245]],[[8247,8247],"mapped",[8245,8245,8245]],[[8248,8251],"valid",[],"NV8"],[[8252,8252],"disallowed_STD3_mapped",[33,33]],[[8253,8253],"valid",[],"NV8"],[[8254,8254],"disallowed_STD3_mapped",[32,773]],[[8255,8262],"valid",[],"NV8"],[[8263,8263],"disallowed_STD3_mapped",[63,63]],[[8264,8264],"disallowed_STD3_mapped",[63,33]],[[8265,8265],"disallowed_STD3_mapped",[33,63]],[[8266,8269],"valid",[],"NV8"],[[8270,8274],"valid",[],"NV8"],[[8275,8276],"valid",[],"NV8"],[[8277,8278],"valid",[],"NV8"],[[8279,8279],"mapped",[8242,8242,8242,8242]],[[8280,8286],"valid",[],"NV8"],[[8287,8287],"disallowed_STD3_mapped",[32]],[[8288,8288],"ignored"],[[8289,8291],"disallowed"],[[8292,8292],"ignored"],[[8293,8293],"disallowed"],[[8294,8297],"disallowed"],[[8298,8303],"disallowed"],[[8304,8304],"mapped",[48]],[[8305,8305],"mapped",[105]],[[8306,8307],"disallowed"],[[8308,8308],"mapped",[52]],[[8309,8309],"mapped",[53]],[[8310,8310],"mapped",[54]],[[8311,8311],"mapped",[55]],[[8312,8312],"mapped",[56]],[[8313,8313],"mapped",[57]],[[8314,8314],"disallowed_STD3_mapped",[43]],[[8315,8315],"mapped",[8722]],[[8316,8316],"disallowed_STD3_mapped",[61]],[[8317,8317],"disallowed_STD3_mapped",[40]],[[8318,8318],"disallowed_STD3_mapped",[41]],[[8319,8319],"mapped",[110]],[[8320,8320],"mapped",[48]],[[8321,8321],"mapped",[49]],[[8322,8322],"mapped",[50]],[[8323,8323],"mapped",[51]],[[8324,8324],"mapped",[52]],[[8325,8325],"mapped",[53]],[[8326,8326],"mapped",[54]],[[8327,8327],"mapped",[55]],[[8328,8328],"mapped",[56]],[[8329,8329],"mapped",[57]],[[8330,8330],"disallowed_STD3_mapped",[43]],[[8331,8331],"mapped",[8722]],[[8332,8332],"disallowed_STD3_mapped",[61]],[[8333,8333],"disallowed_STD3_mapped",[40]],[[8334,8334],"disallowed_STD3_mapped",[41]],[[8335,8335],"disallowed"],[[8336,8336],"mapped",[97]],[[8337,8337],"mapped",[101]],[[8338,8338],"mapped",[111]],[[8339,8339],"mapped",[120]],[[8340,8340],"mapped",[601]],[[8341,8341],"mapped",[104]],[[8342,8342],"mapped",[107]],[[8343,8343],"mapped",[108]],[[8344,8344],"mapped",[109]],[[8345,8345],"mapped",[110]],[[8346,8346],"mapped",[112]],[[8347,8347],"mapped",[115]],[[8348,8348],"mapped",[116]],[[8349,8351],"disallowed"],[[8352,8359],"valid",[],"NV8"],[[8360,8360],"mapped",[114,115]],[[8361,8362],"valid",[],"NV8"],[[8363,8363],"valid",[],"NV8"],[[8364,8364],"valid",[],"NV8"],[[8365,8367],"valid",[],"NV8"],[[8368,8369],"valid",[],"NV8"],[[8370,8373],"valid",[],"NV8"],[[8374,8376],"valid",[],"NV8"],[[8377,8377],"valid",[],"NV8"],[[8378,8378],"valid",[],"NV8"],[[8379,8381],"valid",[],"NV8"],[[8382,8382],"valid",[],"NV8"],[[8383,8399],"disallowed"],[[8400,8417],"valid",[],"NV8"],[[8418,8419],"valid",[],"NV8"],[[8420,8426],"valid",[],"NV8"],[[8427,8427],"valid",[],"NV8"],[[8428,8431],"valid",[],"NV8"],[[8432,8432],"valid",[],"NV8"],[[8433,8447],"disallowed"],[[8448,8448],"disallowed_STD3_mapped",[97,47,99]],[[8449,8449],"disallowed_STD3_mapped",[97,47,115]],[[8450,8450],"mapped",[99]],[[8451,8451],"mapped",[176,99]],[[8452,8452],"valid",[],"NV8"],[[8453,8453],"disallowed_STD3_mapped",[99,47,111]],[[8454,8454],"disallowed_STD3_mapped",[99,47,117]],[[8455,8455],"mapped",[603]],[[8456,8456],"valid",[],"NV8"],[[8457,8457],"mapped",[176,102]],[[8458,8458],"mapped",[103]],[[8459,8462],"mapped",[104]],[[8463,8463],"mapped",[295]],[[8464,8465],"mapped",[105]],[[8466,8467],"mapped",[108]],[[8468,8468],"valid",[],"NV8"],[[8469,8469],"mapped",[110]],[[8470,8470],"mapped",[110,111]],[[8471,8472],"valid",[],"NV8"],[[8473,8473],"mapped",[112]],[[8474,8474],"mapped",[113]],[[8475,8477],"mapped",[114]],[[8478,8479],"valid",[],"NV8"],[[8480,8480],"mapped",[115,109]],[[8481,8481],"mapped",[116,101,108]],[[8482,8482],"mapped",[116,109]],[[8483,8483],"valid",[],"NV8"],[[8484,8484],"mapped",[122]],[[8485,8485],"valid",[],"NV8"],[[8486,8486],"mapped",[969]],[[8487,8487],"valid",[],"NV8"],[[8488,8488],"mapped",[122]],[[8489,8489],"valid",[],"NV8"],[[8490,8490],"mapped",[107]],[[8491,8491],"mapped",[229]],[[8492,8492],"mapped",[98]],[[8493,8493],"mapped",[99]],[[8494,8494],"valid",[],"NV8"],[[8495,8496],"mapped",[101]],[[8497,8497],"mapped",[102]],[[8498,8498],"disallowed"],[[8499,8499],"mapped",[109]],[[8500,8500],"mapped",[111]],[[8501,8501],"mapped",[1488]],[[8502,8502],"mapped",[1489]],[[8503,8503],"mapped",[1490]],[[8504,8504],"mapped",[1491]],[[8505,8505],"mapped",[105]],[[8506,8506],"valid",[],"NV8"],[[8507,8507],"mapped",[102,97,120]],[[8508,8508],"mapped",[960]],[[8509,8510],"mapped",[947]],[[8511,8511],"mapped",[960]],[[8512,8512],"mapped",[8721]],[[8513,8516],"valid",[],"NV8"],[[8517,8518],"mapped",[100]],[[8519,8519],"mapped",[101]],[[8520,8520],"mapped",[105]],[[8521,8521],"mapped",[106]],[[8522,8523],"valid",[],"NV8"],[[8524,8524],"valid",[],"NV8"],[[8525,8525],"valid",[],"NV8"],[[8526,8526],"valid"],[[8527,8527],"valid",[],"NV8"],[[8528,8528],"mapped",[49,8260,55]],[[8529,8529],"mapped",[49,8260,57]],[[8530,8530],"mapped",[49,8260,49,48]],[[8531,8531],"mapped",[49,8260,51]],[[8532,8532],"mapped",[50,8260,51]],[[8533,8533],"mapped",[49,8260,53]],[[8534,8534],"mapped",[50,8260,53]],[[8535,8535],"mapped",[51,8260,53]],[[8536,8536],"mapped",[52,8260,53]],[[8537,8537],"mapped",[49,8260,54]],[[8538,8538],"mapped",[53,8260,54]],[[8539,8539],"mapped",[49,8260,56]],[[8540,8540],"mapped",[51,8260,56]],[[8541,8541],"mapped",[53,8260,56]],[[8542,8542],"mapped",[55,8260,56]],[[8543,8543],"mapped",[49,8260]],[[8544,8544],"mapped",[105]],[[8545,8545],"mapped",[105,105]],[[8546,8546],"mapped",[105,105,105]],[[8547,8547],"mapped",[105,118]],[[8548,8548],"mapped",[118]],[[8549,8549],"mapped",[118,105]],[[8550,8550],"mapped",[118,105,105]],[[8551,8551],"mapped",[118,105,105,105]],[[8552,8552],"mapped",[105,120]],[[8553,8553],"mapped",[120]],[[8554,8554],"mapped",[120,105]],[[8555,8555],"mapped",[120,105,105]],[[8556,8556],"mapped",[108]],[[8557,8557],"mapped",[99]],[[8558,8558],"mapped",[100]],[[8559,8559],"mapped",[109]],[[8560,8560],"mapped",[105]],[[8561,8561],"mapped",[105,105]],[[8562,8562],"mapped",[105,105,105]],[[8563,8563],"mapped",[105,118]],[[8564,8564],"mapped",[118]],[[8565,8565],"mapped",[118,105]],[[8566,8566],"mapped",[118,105,105]],[[8567,8567],"mapped",[118,105,105,105]],[[8568,8568],"mapped",[105,120]],[[8569,8569],"mapped",[120]],[[8570,8570],"mapped",[120,105]],[[8571,8571],"mapped",[120,105,105]],[[8572,8572],"mapped",[108]],[[8573,8573],"mapped",[99]],[[8574,8574],"mapped",[100]],[[8575,8575],"mapped",[109]],[[8576,8578],"valid",[],"NV8"],[[8579,8579],"disallowed"],[[8580,8580],"valid"],[[8581,8584],"valid",[],"NV8"],[[8585,8585],"mapped",[48,8260,51]],[[8586,8587],"valid",[],"NV8"],[[8588,8591],"disallowed"],[[8592,8682],"valid",[],"NV8"],[[8683,8691],"valid",[],"NV8"],[[8692,8703],"valid",[],"NV8"],[[8704,8747],"valid",[],"NV8"],[[8748,8748],"mapped",[8747,8747]],[[8749,8749],"mapped",[8747,8747,8747]],[[8750,8750],"valid",[],"NV8"],[[8751,8751],"mapped",[8750,8750]],[[8752,8752],"mapped",[8750,8750,8750]],[[8753,8799],"valid",[],"NV8"],[[8800,8800],"disallowed_STD3_valid"],[[8801,8813],"valid",[],"NV8"],[[8814,8815],"disallowed_STD3_valid"],[[8816,8945],"valid",[],"NV8"],[[8946,8959],"valid",[],"NV8"],[[8960,8960],"valid",[],"NV8"],[[8961,8961],"valid",[],"NV8"],[[8962,9000],"valid",[],"NV8"],[[9001,9001],"mapped",[12296]],[[9002,9002],"mapped",[12297]],[[9003,9082],"valid",[],"NV8"],[[9083,9083],"valid",[],"NV8"],[[9084,9084],"valid",[],"NV8"],[[9085,9114],"valid",[],"NV8"],[[9115,9166],"valid",[],"NV8"],[[9167,9168],"valid",[],"NV8"],[[9169,9179],"valid",[],"NV8"],[[9180,9191],"valid",[],"NV8"],[[9192,9192],"valid",[],"NV8"],[[9193,9203],"valid",[],"NV8"],[[9204,9210],"valid",[],"NV8"],[[9211,9215],"disallowed"],[[9216,9252],"valid",[],"NV8"],[[9253,9254],"valid",[],"NV8"],[[9255,9279],"disallowed"],[[9280,9290],"valid",[],"NV8"],[[9291,9311],"disallowed"],[[9312,9312],"mapped",[49]],[[9313,9313],"mapped",[50]],[[9314,9314],"mapped",[51]],[[9315,9315],"mapped",[52]],[[9316,9316],"mapped",[53]],[[9317,9317],"mapped",[54]],[[9318,9318],"mapped",[55]],[[9319,9319],"mapped",[56]],[[9320,9320],"mapped",[57]],[[9321,9321],"mapped",[49,48]],[[9322,9322],"mapped",[49,49]],[[9323,9323],"mapped",[49,50]],[[9324,9324],"mapped",[49,51]],[[9325,9325],"mapped",[49,52]],[[9326,9326],"mapped",[49,53]],[[9327,9327],"mapped",[49,54]],[[9328,9328],"mapped",[49,55]],[[9329,9329],"mapped",[49,56]],[[9330,9330],"mapped",[49,57]],[[9331,9331],"mapped",[50,48]],[[9332,9332],"disallowed_STD3_mapped",[40,49,41]],[[9333,9333],"disallowed_STD3_mapped",[40,50,41]],[[9334,9334],"disallowed_STD3_mapped",[40,51,41]],[[9335,9335],"disallowed_STD3_mapped",[40,52,41]],[[9336,9336],"disallowed_STD3_mapped",[40,53,41]],[[9337,9337],"disallowed_STD3_mapped",[40,54,41]],[[9338,9338],"disallowed_STD3_mapped",[40,55,41]],[[9339,9339],"disallowed_STD3_mapped",[40,56,41]],[[9340,9340],"disallowed_STD3_mapped",[40,57,41]],[[9341,9341],"disallowed_STD3_mapped",[40,49,48,41]],[[9342,9342],"disallowed_STD3_mapped",[40,49,49,41]],[[9343,9343],"disallowed_STD3_mapped",[40,49,50,41]],[[9344,9344],"disallowed_STD3_mapped",[40,49,51,41]],[[9345,9345],"disallowed_STD3_mapped",[40,49,52,41]],[[9346,9346],"disallowed_STD3_mapped",[40,49,53,41]],[[9347,9347],"disallowed_STD3_mapped",[40,49,54,41]],[[9348,9348],"disallowed_STD3_mapped",[40,49,55,41]],[[9349,9349],"disallowed_STD3_mapped",[40,49,56,41]],[[9350,9350],"disallowed_STD3_mapped",[40,49,57,41]],[[9351,9351],"disallowed_STD3_mapped",[40,50,48,41]],[[9352,9371],"disallowed"],[[9372,9372],"disallowed_STD3_mapped",[40,97,41]],[[9373,9373],"disallowed_STD3_mapped",[40,98,41]],[[9374,9374],"disallowed_STD3_mapped",[40,99,41]],[[9375,9375],"disallowed_STD3_mapped",[40,100,41]],[[9376,9376],"disallowed_STD3_mapped",[40,101,41]],[[9377,9377],"disallowed_STD3_mapped",[40,102,41]],[[9378,9378],"disallowed_STD3_mapped",[40,103,41]],[[9379,9379],"disallowed_STD3_mapped",[40,104,41]],[[9380,9380],"disallowed_STD3_mapped",[40,105,41]],[[9381,9381],"disallowed_STD3_mapped",[40,106,41]],[[9382,9382],"disallowed_STD3_mapped",[40,107,41]],[[9383,9383],"disallowed_STD3_mapped",[40,108,41]],[[9384,9384],"disallowed_STD3_mapped",[40,109,41]],[[9385,9385],"disallowed_STD3_mapped",[40,110,41]],[[9386,9386],"disallowed_STD3_mapped",[40,111,41]],[[9387,9387],"disallowed_STD3_mapped",[40,112,41]],[[9388,9388],"disallowed_STD3_mapped",[40,113,41]],[[9389,9389],"disallowed_STD3_mapped",[40,114,41]],[[9390,9390],"disallowed_STD3_mapped",[40,115,41]],[[9391,9391],"disallowed_STD3_mapped",[40,116,41]],[[9392,9392],"disallowed_STD3_mapped",[40,117,41]],[[9393,9393],"disallowed_STD3_mapped",[40,118,41]],[[9394,9394],"disallowed_STD3_mapped",[40,119,41]],[[9395,9395],"disallowed_STD3_mapped",[40,120,41]],[[9396,9396],"disallowed_STD3_mapped",[40,121,41]],[[9397,9397],"disallowed_STD3_mapped",[40,122,41]],[[9398,9398],"mapped",[97]],[[9399,9399],"mapped",[98]],[[9400,9400],"mapped",[99]],[[9401,9401],"mapped",[100]],[[9402,9402],"mapped",[101]],[[9403,9403],"mapped",[102]],[[9404,9404],"mapped",[103]],[[9405,9405],"mapped",[104]],[[9406,9406],"mapped",[105]],[[9407,9407],"mapped",[106]],[[9408,9408],"mapped",[107]],[[9409,9409],"mapped",[108]],[[9410,9410],"mapped",[109]],[[9411,9411],"mapped",[110]],[[9412,9412],"mapped",[111]],[[9413,9413],"mapped",[112]],[[9414,9414],"mapped",[113]],[[9415,9415],"mapped",[114]],[[9416,9416],"mapped",[115]],[[9417,9417],"mapped",[116]],[[9418,9418],"mapped",[117]],[[9419,9419],"mapped",[118]],[[9420,9420],"mapped",[119]],[[9421,9421],"mapped",[120]],[[9422,9422],"mapped",[121]],[[9423,9423],"mapped",[122]],[[9424,9424],"mapped",[97]],[[9425,9425],"mapped",[98]],[[9426,9426],"mapped",[99]],[[9427,9427],"mapped",[100]],[[9428,9428],"mapped",[101]],[[9429,9429],"mapped",[102]],[[9430,9430],"mapped",[103]],[[9431,9431],"mapped",[104]],[[9432,9432],"mapped",[105]],[[9433,9433],"mapped",[106]],[[9434,9434],"mapped",[107]],[[9435,9435],"mapped",[108]],[[9436,9436],"mapped",[109]],[[9437,9437],"mapped",[110]],[[9438,9438],"mapped",[111]],[[9439,9439],"mapped",[112]],[[9440,9440],"mapped",[113]],[[9441,9441],"mapped",[114]],[[9442,9442],"mapped",[115]],[[9443,9443],"mapped",[116]],[[9444,9444],"mapped",[117]],[[9445,9445],"mapped",[118]],[[9446,9446],"mapped",[119]],[[9447,9447],"mapped",[120]],[[9448,9448],"mapped",[121]],[[9449,9449],"mapped",[122]],[[9450,9450],"mapped",[48]],[[9451,9470],"valid",[],"NV8"],[[9471,9471],"valid",[],"NV8"],[[9472,9621],"valid",[],"NV8"],[[9622,9631],"valid",[],"NV8"],[[9632,9711],"valid",[],"NV8"],[[9712,9719],"valid",[],"NV8"],[[9720,9727],"valid",[],"NV8"],[[9728,9747],"valid",[],"NV8"],[[9748,9749],"valid",[],"NV8"],[[9750,9751],"valid",[],"NV8"],[[9752,9752],"valid",[],"NV8"],[[9753,9753],"valid",[],"NV8"],[[9754,9839],"valid",[],"NV8"],[[9840,9841],"valid",[],"NV8"],[[9842,9853],"valid",[],"NV8"],[[9854,9855],"valid",[],"NV8"],[[9856,9865],"valid",[],"NV8"],[[9866,9873],"valid",[],"NV8"],[[9874,9884],"valid",[],"NV8"],[[9885,9885],"valid",[],"NV8"],[[9886,9887],"valid",[],"NV8"],[[9888,9889],"valid",[],"NV8"],[[9890,9905],"valid",[],"NV8"],[[9906,9906],"valid",[],"NV8"],[[9907,9916],"valid",[],"NV8"],[[9917,9919],"valid",[],"NV8"],[[9920,9923],"valid",[],"NV8"],[[9924,9933],"valid",[],"NV8"],[[9934,9934],"valid",[],"NV8"],[[9935,9953],"valid",[],"NV8"],[[9954,9954],"valid",[],"NV8"],[[9955,9955],"valid",[],"NV8"],[[9956,9959],"valid",[],"NV8"],[[9960,9983],"valid",[],"NV8"],[[9984,9984],"valid",[],"NV8"],[[9985,9988],"valid",[],"NV8"],[[9989,9989],"valid",[],"NV8"],[[9990,9993],"valid",[],"NV8"],[[9994,9995],"valid",[],"NV8"],[[9996,10023],"valid",[],"NV8"],[[10024,10024],"valid",[],"NV8"],[[10025,10059],"valid",[],"NV8"],[[10060,10060],"valid",[],"NV8"],[[10061,10061],"valid",[],"NV8"],[[10062,10062],"valid",[],"NV8"],[[10063,10066],"valid",[],"NV8"],[[10067,10069],"valid",[],"NV8"],[[10070,10070],"valid",[],"NV8"],[[10071,10071],"valid",[],"NV8"],[[10072,10078],"valid",[],"NV8"],[[10079,10080],"valid",[],"NV8"],[[10081,10087],"valid",[],"NV8"],[[10088,10101],"valid",[],"NV8"],[[10102,10132],"valid",[],"NV8"],[[10133,10135],"valid",[],"NV8"],[[10136,10159],"valid",[],"NV8"],[[10160,10160],"valid",[],"NV8"],[[10161,10174],"valid",[],"NV8"],[[10175,10175],"valid",[],"NV8"],[[10176,10182],"valid",[],"NV8"],[[10183,10186],"valid",[],"NV8"],[[10187,10187],"valid",[],"NV8"],[[10188,10188],"valid",[],"NV8"],[[10189,10189],"valid",[],"NV8"],[[10190,10191],"valid",[],"NV8"],[[10192,10219],"valid",[],"NV8"],[[10220,10223],"valid",[],"NV8"],[[10224,10239],"valid",[],"NV8"],[[10240,10495],"valid",[],"NV8"],[[10496,10763],"valid",[],"NV8"],[[10764,10764],"mapped",[8747,8747,8747,8747]],[[10765,10867],"valid",[],"NV8"],[[10868,10868],"disallowed_STD3_mapped",[58,58,61]],[[10869,10869],"disallowed_STD3_mapped",[61,61]],[[10870,10870],"disallowed_STD3_mapped",[61,61,61]],[[10871,10971],"valid",[],"NV8"],[[10972,10972],"mapped",[10973,824]],[[10973,11007],"valid",[],"NV8"],[[11008,11021],"valid",[],"NV8"],[[11022,11027],"valid",[],"NV8"],[[11028,11034],"valid",[],"NV8"],[[11035,11039],"valid",[],"NV8"],[[11040,11043],"valid",[],"NV8"],[[11044,11084],"valid",[],"NV8"],[[11085,11087],"valid",[],"NV8"],[[11088,11092],"valid",[],"NV8"],[[11093,11097],"valid",[],"NV8"],[[11098,11123],"valid",[],"NV8"],[[11124,11125],"disallowed"],[[11126,11157],"valid",[],"NV8"],[[11158,11159],"disallowed"],[[11160,11193],"valid",[],"NV8"],[[11194,11196],"disallowed"],[[11197,11208],"valid",[],"NV8"],[[11209,11209],"disallowed"],[[11210,11217],"valid",[],"NV8"],[[11218,11243],"disallowed"],[[11244,11247],"valid",[],"NV8"],[[11248,11263],"disallowed"],[[11264,11264],"mapped",[11312]],[[11265,11265],"mapped",[11313]],[[11266,11266],"mapped",[11314]],[[11267,11267],"mapped",[11315]],[[11268,11268],"mapped",[11316]],[[11269,11269],"mapped",[11317]],[[11270,11270],"mapped",[11318]],[[11271,11271],"mapped",[11319]],[[11272,11272],"mapped",[11320]],[[11273,11273],"mapped",[11321]],[[11274,11274],"mapped",[11322]],[[11275,11275],"mapped",[11323]],[[11276,11276],"mapped",[11324]],[[11277,11277],"mapped",[11325]],[[11278,11278],"mapped",[11326]],[[11279,11279],"mapped",[11327]],[[11280,11280],"mapped",[11328]],[[11281,11281],"mapped",[11329]],[[11282,11282],"mapped",[11330]],[[11283,11283],"mapped",[11331]],[[11284,11284],"mapped",[11332]],[[11285,11285],"mapped",[11333]],[[11286,11286],"mapped",[11334]],[[11287,11287],"mapped",[11335]],[[11288,11288],"mapped",[11336]],[[11289,11289],"mapped",[11337]],[[11290,11290],"mapped",[11338]],[[11291,11291],"mapped",[11339]],[[11292,11292],"mapped",[11340]],[[11293,11293],"mapped",[11341]],[[11294,11294],"mapped",[11342]],[[11295,11295],"mapped",[11343]],[[11296,11296],"mapped",[11344]],[[11297,11297],"mapped",[11345]],[[11298,11298],"mapped",[11346]],[[11299,11299],"mapped",[11347]],[[11300,11300],"mapped",[11348]],[[11301,11301],"mapped",[11349]],[[11302,11302],"mapped",[11350]],[[11303,11303],"mapped",[11351]],[[11304,11304],"mapped",[11352]],[[11305,11305],"mapped",[11353]],[[11306,11306],"mapped",[11354]],[[11307,11307],"mapped",[11355]],[[11308,11308],"mapped",[11356]],[[11309,11309],"mapped",[11357]],[[11310,11310],"mapped",[11358]],[[11311,11311],"disallowed"],[[11312,11358],"valid"],[[11359,11359],"disallowed"],[[11360,11360],"mapped",[11361]],[[11361,11361],"valid"],[[11362,11362],"mapped",[619]],[[11363,11363],"mapped",[7549]],[[11364,11364],"mapped",[637]],[[11365,11366],"valid"],[[11367,11367],"mapped",[11368]],[[11368,11368],"valid"],[[11369,11369],"mapped",[11370]],[[11370,11370],"valid"],[[11371,11371],"mapped",[11372]],[[11372,11372],"valid"],[[11373,11373],"mapped",[593]],[[11374,11374],"mapped",[625]],[[11375,11375],"mapped",[592]],[[11376,11376],"mapped",[594]],[[11377,11377],"valid"],[[11378,11378],"mapped",[11379]],[[11379,11379],"valid"],[[11380,11380],"valid"],[[11381,11381],"mapped",[11382]],[[11382,11383],"valid"],[[11384,11387],"valid"],[[11388,11388],"mapped",[106]],[[11389,11389],"mapped",[118]],[[11390,11390],"mapped",[575]],[[11391,11391],"mapped",[576]],[[11392,11392],"mapped",[11393]],[[11393,11393],"valid"],[[11394,11394],"mapped",[11395]],[[11395,11395],"valid"],[[11396,11396],"mapped",[11397]],[[11397,11397],"valid"],[[11398,11398],"mapped",[11399]],[[11399,11399],"valid"],[[11400,11400],"mapped",[11401]],[[11401,11401],"valid"],[[11402,11402],"mapped",[11403]],[[11403,11403],"valid"],[[11404,11404],"mapped",[11405]],[[11405,11405],"valid"],[[11406,11406],"mapped",[11407]],[[11407,11407],"valid"],[[11408,11408],"mapped",[11409]],[[11409,11409],"valid"],[[11410,11410],"mapped",[11411]],[[11411,11411],"valid"],[[11412,11412],"mapped",[11413]],[[11413,11413],"valid"],[[11414,11414],"mapped",[11415]],[[11415,11415],"valid"],[[11416,11416],"mapped",[11417]],[[11417,11417],"valid"],[[11418,11418],"mapped",[11419]],[[11419,11419],"valid"],[[11420,11420],"mapped",[11421]],[[11421,11421],"valid"],[[11422,11422],"mapped",[11423]],[[11423,11423],"valid"],[[11424,11424],"mapped",[11425]],[[11425,11425],"valid"],[[11426,11426],"mapped",[11427]],[[11427,11427],"valid"],[[11428,11428],"mapped",[11429]],[[11429,11429],"valid"],[[11430,11430],"mapped",[11431]],[[11431,11431],"valid"],[[11432,11432],"mapped",[11433]],[[11433,11433],"valid"],[[11434,11434],"mapped",[11435]],[[11435,11435],"valid"],[[11436,11436],"mapped",[11437]],[[11437,11437],"valid"],[[11438,11438],"mapped",[11439]],[[11439,11439],"valid"],[[11440,11440],"mapped",[11441]],[[11441,11441],"valid"],[[11442,11442],"mapped",[11443]],[[11443,11443],"valid"],[[11444,11444],"mapped",[11445]],[[11445,11445],"valid"],[[11446,11446],"mapped",[11447]],[[11447,11447],"valid"],[[11448,11448],"mapped",[11449]],[[11449,11449],"valid"],[[11450,11450],"mapped",[11451]],[[11451,11451],"valid"],[[11452,11452],"mapped",[11453]],[[11453,11453],"valid"],[[11454,11454],"mapped",[11455]],[[11455,11455],"valid"],[[11456,11456],"mapped",[11457]],[[11457,11457],"valid"],[[11458,11458],"mapped",[11459]],[[11459,11459],"valid"],[[11460,11460],"mapped",[11461]],[[11461,11461],"valid"],[[11462,11462],"mapped",[11463]],[[11463,11463],"valid"],[[11464,11464],"mapped",[11465]],[[11465,11465],"valid"],[[11466,11466],"mapped",[11467]],[[11467,11467],"valid"],[[11468,11468],"mapped",[11469]],[[11469,11469],"valid"],[[11470,11470],"mapped",[11471]],[[11471,11471],"valid"],[[11472,11472],"mapped",[11473]],[[11473,11473],"valid"],[[11474,11474],"mapped",[11475]],[[11475,11475],"valid"],[[11476,11476],"mapped",[11477]],[[11477,11477],"valid"],[[11478,11478],"mapped",[11479]],[[11479,11479],"valid"],[[11480,11480],"mapped",[11481]],[[11481,11481],"valid"],[[11482,11482],"mapped",[11483]],[[11483,11483],"valid"],[[11484,11484],"mapped",[11485]],[[11485,11485],"valid"],[[11486,11486],"mapped",[11487]],[[11487,11487],"valid"],[[11488,11488],"mapped",[11489]],[[11489,11489],"valid"],[[11490,11490],"mapped",[11491]],[[11491,11492],"valid"],[[11493,11498],"valid",[],"NV8"],[[11499,11499],"mapped",[11500]],[[11500,11500],"valid"],[[11501,11501],"mapped",[11502]],[[11502,11505],"valid"],[[11506,11506],"mapped",[11507]],[[11507,11507],"valid"],[[11508,11512],"disallowed"],[[11513,11519],"valid",[],"NV8"],[[11520,11557],"valid"],[[11558,11558],"disallowed"],[[11559,11559],"valid"],[[11560,11564],"disallowed"],[[11565,11565],"valid"],[[11566,11567],"disallowed"],[[11568,11621],"valid"],[[11622,11623],"valid"],[[11624,11630],"disallowed"],[[11631,11631],"mapped",[11617]],[[11632,11632],"valid",[],"NV8"],[[11633,11646],"disallowed"],[[11647,11647],"valid"],[[11648,11670],"valid"],[[11671,11679],"disallowed"],[[11680,11686],"valid"],[[11687,11687],"disallowed"],[[11688,11694],"valid"],[[11695,11695],"disallowed"],[[11696,11702],"valid"],[[11703,11703],"disallowed"],[[11704,11710],"valid"],[[11711,11711],"disallowed"],[[11712,11718],"valid"],[[11719,11719],"disallowed"],[[11720,11726],"valid"],[[11727,11727],"disallowed"],[[11728,11734],"valid"],[[11735,11735],"disallowed"],[[11736,11742],"valid"],[[11743,11743],"disallowed"],[[11744,11775],"valid"],[[11776,11799],"valid",[],"NV8"],[[11800,11803],"valid",[],"NV8"],[[11804,11805],"valid",[],"NV8"],[[11806,11822],"valid",[],"NV8"],[[11823,11823],"valid"],[[11824,11824],"valid",[],"NV8"],[[11825,11825],"valid",[],"NV8"],[[11826,11835],"valid",[],"NV8"],[[11836,11842],"valid",[],"NV8"],[[11843,11903],"disallowed"],[[11904,11929],"valid",[],"NV8"],[[11930,11930],"disallowed"],[[11931,11934],"valid",[],"NV8"],[[11935,11935],"mapped",[27597]],[[11936,12018],"valid",[],"NV8"],[[12019,12019],"mapped",[40863]],[[12020,12031],"disallowed"],[[12032,12032],"mapped",[19968]],[[12033,12033],"mapped",[20008]],[[12034,12034],"mapped",[20022]],[[12035,12035],"mapped",[20031]],[[12036,12036],"mapped",[20057]],[[12037,12037],"mapped",[20101]],[[12038,12038],"mapped",[20108]],[[12039,12039],"mapped",[20128]],[[12040,12040],"mapped",[20154]],[[12041,12041],"mapped",[20799]],[[12042,12042],"mapped",[20837]],[[12043,12043],"mapped",[20843]],[[12044,12044],"mapped",[20866]],[[12045,12045],"mapped",[20886]],[[12046,12046],"mapped",[20907]],[[12047,12047],"mapped",[20960]],[[12048,12048],"mapped",[20981]],[[12049,12049],"mapped",[20992]],[[12050,12050],"mapped",[21147]],[[12051,12051],"mapped",[21241]],[[12052,12052],"mapped",[21269]],[[12053,12053],"mapped",[21274]],[[12054,12054],"mapped",[21304]],[[12055,12055],"mapped",[21313]],[[12056,12056],"mapped",[21340]],[[12057,12057],"mapped",[21353]],[[12058,12058],"mapped",[21378]],[[12059,12059],"mapped",[21430]],[[12060,12060],"mapped",[21448]],[[12061,12061],"mapped",[21475]],[[12062,12062],"mapped",[22231]],[[12063,12063],"mapped",[22303]],[[12064,12064],"mapped",[22763]],[[12065,12065],"mapped",[22786]],[[12066,12066],"mapped",[22794]],[[12067,12067],"mapped",[22805]],[[12068,12068],"mapped",[22823]],[[12069,12069],"mapped",[22899]],[[12070,12070],"mapped",[23376]],[[12071,12071],"mapped",[23424]],[[12072,12072],"mapped",[23544]],[[12073,12073],"mapped",[23567]],[[12074,12074],"mapped",[23586]],[[12075,12075],"mapped",[23608]],[[12076,12076],"mapped",[23662]],[[12077,12077],"mapped",[23665]],[[12078,12078],"mapped",[24027]],[[12079,12079],"mapped",[24037]],[[12080,12080],"mapped",[24049]],[[12081,12081],"mapped",[24062]],[[12082,12082],"mapped",[24178]],[[12083,12083],"mapped",[24186]],[[12084,12084],"mapped",[24191]],[[12085,12085],"mapped",[24308]],[[12086,12086],"mapped",[24318]],[[12087,12087],"mapped",[24331]],[[12088,12088],"mapped",[24339]],[[12089,12089],"mapped",[24400]],[[12090,12090],"mapped",[24417]],[[12091,12091],"mapped",[24435]],[[12092,12092],"mapped",[24515]],[[12093,12093],"mapped",[25096]],[[12094,12094],"mapped",[25142]],[[12095,12095],"mapped",[25163]],[[12096,12096],"mapped",[25903]],[[12097,12097],"mapped",[25908]],[[12098,12098],"mapped",[25991]],[[12099,12099],"mapped",[26007]],[[12100,12100],"mapped",[26020]],[[12101,12101],"mapped",[26041]],[[12102,12102],"mapped",[26080]],[[12103,12103],"mapped",[26085]],[[12104,12104],"mapped",[26352]],[[12105,12105],"mapped",[26376]],[[12106,12106],"mapped",[26408]],[[12107,12107],"mapped",[27424]],[[12108,12108],"mapped",[27490]],[[12109,12109],"mapped",[27513]],[[12110,12110],"mapped",[27571]],[[12111,12111],"mapped",[27595]],[[12112,12112],"mapped",[27604]],[[12113,12113],"mapped",[27611]],[[12114,12114],"mapped",[27663]],[[12115,12115],"mapped",[27668]],[[12116,12116],"mapped",[27700]],[[12117,12117],"mapped",[28779]],[[12118,12118],"mapped",[29226]],[[12119,12119],"mapped",[29238]],[[12120,12120],"mapped",[29243]],[[12121,12121],"mapped",[29247]],[[12122,12122],"mapped",[29255]],[[12123,12123],"mapped",[29273]],[[12124,12124],"mapped",[29275]],[[12125,12125],"mapped",[29356]],[[12126,12126],"mapped",[29572]],[[12127,12127],"mapped",[29577]],[[12128,12128],"mapped",[29916]],[[12129,12129],"mapped",[29926]],[[12130,12130],"mapped",[29976]],[[12131,12131],"mapped",[29983]],[[12132,12132],"mapped",[29992]],[[12133,12133],"mapped",[30000]],[[12134,12134],"mapped",[30091]],[[12135,12135],"mapped",[30098]],[[12136,12136],"mapped",[30326]],[[12137,12137],"mapped",[30333]],[[12138,12138],"mapped",[30382]],[[12139,12139],"mapped",[30399]],[[12140,12140],"mapped",[30446]],[[12141,12141],"mapped",[30683]],[[12142,12142],"mapped",[30690]],[[12143,12143],"mapped",[30707]],[[12144,12144],"mapped",[31034]],[[12145,12145],"mapped",[31160]],[[12146,12146],"mapped",[31166]],[[12147,12147],"mapped",[31348]],[[12148,12148],"mapped",[31435]],[[12149,12149],"mapped",[31481]],[[12150,12150],"mapped",[31859]],[[12151,12151],"mapped",[31992]],[[12152,12152],"mapped",[32566]],[[12153,12153],"mapped",[32593]],[[12154,12154],"mapped",[32650]],[[12155,12155],"mapped",[32701]],[[12156,12156],"mapped",[32769]],[[12157,12157],"mapped",[32780]],[[12158,12158],"mapped",[32786]],[[12159,12159],"mapped",[32819]],[[12160,12160],"mapped",[32895]],[[12161,12161],"mapped",[32905]],[[12162,12162],"mapped",[33251]],[[12163,12163],"mapped",[33258]],[[12164,12164],"mapped",[33267]],[[12165,12165],"mapped",[33276]],[[12166,12166],"mapped",[33292]],[[12167,12167],"mapped",[33307]],[[12168,12168],"mapped",[33311]],[[12169,12169],"mapped",[33390]],[[12170,12170],"mapped",[33394]],[[12171,12171],"mapped",[33400]],[[12172,12172],"mapped",[34381]],[[12173,12173],"mapped",[34411]],[[12174,12174],"mapped",[34880]],[[12175,12175],"mapped",[34892]],[[12176,12176],"mapped",[34915]],[[12177,12177],"mapped",[35198]],[[12178,12178],"mapped",[35211]],[[12179,12179],"mapped",[35282]],[[12180,12180],"mapped",[35328]],[[12181,12181],"mapped",[35895]],[[12182,12182],"mapped",[35910]],[[12183,12183],"mapped",[35925]],[[12184,12184],"mapped",[35960]],[[12185,12185],"mapped",[35997]],[[12186,12186],"mapped",[36196]],[[12187,12187],"mapped",[36208]],[[12188,12188],"mapped",[36275]],[[12189,12189],"mapped",[36523]],[[12190,12190],"mapped",[36554]],[[12191,12191],"mapped",[36763]],[[12192,12192],"mapped",[36784]],[[12193,12193],"mapped",[36789]],[[12194,12194],"mapped",[37009]],[[12195,12195],"mapped",[37193]],[[12196,12196],"mapped",[37318]],[[12197,12197],"mapped",[37324]],[[12198,12198],"mapped",[37329]],[[12199,12199],"mapped",[38263]],[[12200,12200],"mapped",[38272]],[[12201,12201],"mapped",[38428]],[[12202,12202],"mapped",[38582]],[[12203,12203],"mapped",[38585]],[[12204,12204],"mapped",[38632]],[[12205,12205],"mapped",[38737]],[[12206,12206],"mapped",[38750]],[[12207,12207],"mapped",[38754]],[[12208,12208],"mapped",[38761]],[[12209,12209],"mapped",[38859]],[[12210,12210],"mapped",[38893]],[[12211,12211],"mapped",[38899]],[[12212,12212],"mapped",[38913]],[[12213,12213],"mapped",[39080]],[[12214,12214],"mapped",[39131]],[[12215,12215],"mapped",[39135]],[[12216,12216],"mapped",[39318]],[[12217,12217],"mapped",[39321]],[[12218,12218],"mapped",[39340]],[[12219,12219],"mapped",[39592]],[[12220,12220],"mapped",[39640]],[[12221,12221],"mapped",[39647]],[[12222,12222],"mapped",[39717]],[[12223,12223],"mapped",[39727]],[[12224,12224],"mapped",[39730]],[[12225,12225],"mapped",[39740]],[[12226,12226],"mapped",[39770]],[[12227,12227],"mapped",[40165]],[[12228,12228],"mapped",[40565]],[[12229,12229],"mapped",[40575]],[[12230,12230],"mapped",[40613]],[[12231,12231],"mapped",[40635]],[[12232,12232],"mapped",[40643]],[[12233,12233],"mapped",[40653]],[[12234,12234],"mapped",[40657]],[[12235,12235],"mapped",[40697]],[[12236,12236],"mapped",[40701]],[[12237,12237],"mapped",[40718]],[[12238,12238],"mapped",[40723]],[[12239,12239],"mapped",[40736]],[[12240,12240],"mapped",[40763]],[[12241,12241],"mapped",[40778]],[[12242,12242],"mapped",[40786]],[[12243,12243],"mapped",[40845]],[[12244,12244],"mapped",[40860]],[[12245,12245],"mapped",[40864]],[[12246,12271],"disallowed"],[[12272,12283],"disallowed"],[[12284,12287],"disallowed"],[[12288,12288],"disallowed_STD3_mapped",[32]],[[12289,12289],"valid",[],"NV8"],[[12290,12290],"mapped",[46]],[[12291,12292],"valid",[],"NV8"],[[12293,12295],"valid"],[[12296,12329],"valid",[],"NV8"],[[12330,12333],"valid"],[[12334,12341],"valid",[],"NV8"],[[12342,12342],"mapped",[12306]],[[12343,12343],"valid",[],"NV8"],[[12344,12344],"mapped",[21313]],[[12345,12345],"mapped",[21316]],[[12346,12346],"mapped",[21317]],[[12347,12347],"valid",[],"NV8"],[[12348,12348],"valid"],[[12349,12349],"valid",[],"NV8"],[[12350,12350],"valid",[],"NV8"],[[12351,12351],"valid",[],"NV8"],[[12352,12352],"disallowed"],[[12353,12436],"valid"],[[12437,12438],"valid"],[[12439,12440],"disallowed"],[[12441,12442],"valid"],[[12443,12443],"disallowed_STD3_mapped",[32,12441]],[[12444,12444],"disallowed_STD3_mapped",[32,12442]],[[12445,12446],"valid"],[[12447,12447],"mapped",[12424,12426]],[[12448,12448],"valid",[],"NV8"],[[12449,12542],"valid"],[[12543,12543],"mapped",[12467,12488]],[[12544,12548],"disallowed"],[[12549,12588],"valid"],[[12589,12589],"valid"],[[12590,12592],"disallowed"],[[12593,12593],"mapped",[4352]],[[12594,12594],"mapped",[4353]],[[12595,12595],"mapped",[4522]],[[12596,12596],"mapped",[4354]],[[12597,12597],"mapped",[4524]],[[12598,12598],"mapped",[4525]],[[12599,12599],"mapped",[4355]],[[12600,12600],"mapped",[4356]],[[12601,12601],"mapped",[4357]],[[12602,12602],"mapped",[4528]],[[12603,12603],"mapped",[4529]],[[12604,12604],"mapped",[4530]],[[12605,12605],"mapped",[4531]],[[12606,12606],"mapped",[4532]],[[12607,12607],"mapped",[4533]],[[12608,12608],"mapped",[4378]],[[12609,12609],"mapped",[4358]],[[12610,12610],"mapped",[4359]],[[12611,12611],"mapped",[4360]],[[12612,12612],"mapped",[4385]],[[12613,12613],"mapped",[4361]],[[12614,12614],"mapped",[4362]],[[12615,12615],"mapped",[4363]],[[12616,12616],"mapped",[4364]],[[12617,12617],"mapped",[4365]],[[12618,12618],"mapped",[4366]],[[12619,12619],"mapped",[4367]],[[12620,12620],"mapped",[4368]],[[12621,12621],"mapped",[4369]],[[12622,12622],"mapped",[4370]],[[12623,12623],"mapped",[4449]],[[12624,12624],"mapped",[4450]],[[12625,12625],"mapped",[4451]],[[12626,12626],"mapped",[4452]],[[12627,12627],"mapped",[4453]],[[12628,12628],"mapped",[4454]],[[12629,12629],"mapped",[4455]],[[12630,12630],"mapped",[4456]],[[12631,12631],"mapped",[4457]],[[12632,12632],"mapped",[4458]],[[12633,12633],"mapped",[4459]],[[12634,12634],"mapped",[4460]],[[12635,12635],"mapped",[4461]],[[12636,12636],"mapped",[4462]],[[12637,12637],"mapped",[4463]],[[12638,12638],"mapped",[4464]],[[12639,12639],"mapped",[4465]],[[12640,12640],"mapped",[4466]],[[12641,12641],"mapped",[4467]],[[12642,12642],"mapped",[4468]],[[12643,12643],"mapped",[4469]],[[12644,12644],"disallowed"],[[12645,12645],"mapped",[4372]],[[12646,12646],"mapped",[4373]],[[12647,12647],"mapped",[4551]],[[12648,12648],"mapped",[4552]],[[12649,12649],"mapped",[4556]],[[12650,12650],"mapped",[4558]],[[12651,12651],"mapped",[4563]],[[12652,12652],"mapped",[4567]],[[12653,12653],"mapped",[4569]],[[12654,12654],"mapped",[4380]],[[12655,12655],"mapped",[4573]],[[12656,12656],"mapped",[4575]],[[12657,12657],"mapped",[4381]],[[12658,12658],"mapped",[4382]],[[12659,12659],"mapped",[4384]],[[12660,12660],"mapped",[4386]],[[12661,12661],"mapped",[4387]],[[12662,12662],"mapped",[4391]],[[12663,12663],"mapped",[4393]],[[12664,12664],"mapped",[4395]],[[12665,12665],"mapped",[4396]],[[12666,12666],"mapped",[4397]],[[12667,12667],"mapped",[4398]],[[12668,12668],"mapped",[4399]],[[12669,12669],"mapped",[4402]],[[12670,12670],"mapped",[4406]],[[12671,12671],"mapped",[4416]],[[12672,12672],"mapped",[4423]],[[12673,12673],"mapped",[4428]],[[12674,12674],"mapped",[4593]],[[12675,12675],"mapped",[4594]],[[12676,12676],"mapped",[4439]],[[12677,12677],"mapped",[4440]],[[12678,12678],"mapped",[4441]],[[12679,12679],"mapped",[4484]],[[12680,12680],"mapped",[4485]],[[12681,12681],"mapped",[4488]],[[12682,12682],"mapped",[4497]],[[12683,12683],"mapped",[4498]],[[12684,12684],"mapped",[4500]],[[12685,12685],"mapped",[4510]],[[12686,12686],"mapped",[4513]],[[12687,12687],"disallowed"],[[12688,12689],"valid",[],"NV8"],[[12690,12690],"mapped",[19968]],[[12691,12691],"mapped",[20108]],[[12692,12692],"mapped",[19977]],[[12693,12693],"mapped",[22235]],[[12694,12694],"mapped",[19978]],[[12695,12695],"mapped",[20013]],[[12696,12696],"mapped",[19979]],[[12697,12697],"mapped",[30002]],[[12698,12698],"mapped",[20057]],[[12699,12699],"mapped",[19993]],[[12700,12700],"mapped",[19969]],[[12701,12701],"mapped",[22825]],[[12702,12702],"mapped",[22320]],[[12703,12703],"mapped",[20154]],[[12704,12727],"valid"],[[12728,12730],"valid"],[[12731,12735],"disallowed"],[[12736,12751],"valid",[],"NV8"],[[12752,12771],"valid",[],"NV8"],[[12772,12783],"disallowed"],[[12784,12799],"valid"],[[12800,12800],"disallowed_STD3_mapped",[40,4352,41]],[[12801,12801],"disallowed_STD3_mapped",[40,4354,41]],[[12802,12802],"disallowed_STD3_mapped",[40,4355,41]],[[12803,12803],"disallowed_STD3_mapped",[40,4357,41]],[[12804,12804],"disallowed_STD3_mapped",[40,4358,41]],[[12805,12805],"disallowed_STD3_mapped",[40,4359,41]],[[12806,12806],"disallowed_STD3_mapped",[40,4361,41]],[[12807,12807],"disallowed_STD3_mapped",[40,4363,41]],[[12808,12808],"disallowed_STD3_mapped",[40,4364,41]],[[12809,12809],"disallowed_STD3_mapped",[40,4366,41]],[[12810,12810],"disallowed_STD3_mapped",[40,4367,41]],[[12811,12811],"disallowed_STD3_mapped",[40,4368,41]],[[12812,12812],"disallowed_STD3_mapped",[40,4369,41]],[[12813,12813],"disallowed_STD3_mapped",[40,4370,41]],[[12814,12814],"disallowed_STD3_mapped",[40,44032,41]],[[12815,12815],"disallowed_STD3_mapped",[40,45208,41]],[[12816,12816],"disallowed_STD3_mapped",[40,45796,41]],[[12817,12817],"disallowed_STD3_mapped",[40,46972,41]],[[12818,12818],"disallowed_STD3_mapped",[40,47560,41]],[[12819,12819],"disallowed_STD3_mapped",[40,48148,41]],[[12820,12820],"disallowed_STD3_mapped",[40,49324,41]],[[12821,12821],"disallowed_STD3_mapped",[40,50500,41]],[[12822,12822],"disallowed_STD3_mapped",[40,51088,41]],[[12823,12823],"disallowed_STD3_mapped",[40,52264,41]],[[12824,12824],"disallowed_STD3_mapped",[40,52852,41]],[[12825,12825],"disallowed_STD3_mapped",[40,53440,41]],[[12826,12826],"disallowed_STD3_mapped",[40,54028,41]],[[12827,12827],"disallowed_STD3_mapped",[40,54616,41]],[[12828,12828],"disallowed_STD3_mapped",[40,51452,41]],[[12829,12829],"disallowed_STD3_mapped",[40,50724,51204,41]],[[12830,12830],"disallowed_STD3_mapped",[40,50724,54980,41]],[[12831,12831],"disallowed"],[[12832,12832],"disallowed_STD3_mapped",[40,19968,41]],[[12833,12833],"disallowed_STD3_mapped",[40,20108,41]],[[12834,12834],"disallowed_STD3_mapped",[40,19977,41]],[[12835,12835],"disallowed_STD3_mapped",[40,22235,41]],[[12836,12836],"disallowed_STD3_mapped",[40,20116,41]],[[12837,12837],"disallowed_STD3_mapped",[40,20845,41]],[[12838,12838],"disallowed_STD3_mapped",[40,19971,41]],[[12839,12839],"disallowed_STD3_mapped",[40,20843,41]],[[12840,12840],"disallowed_STD3_mapped",[40,20061,41]],[[12841,12841],"disallowed_STD3_mapped",[40,21313,41]],[[12842,12842],"disallowed_STD3_mapped",[40,26376,41]],[[12843,12843],"disallowed_STD3_mapped",[40,28779,41]],[[12844,12844],"disallowed_STD3_mapped",[40,27700,41]],[[12845,12845],"disallowed_STD3_mapped",[40,26408,41]],[[12846,12846],"disallowed_STD3_mapped",[40,37329,41]],[[12847,12847],"disallowed_STD3_mapped",[40,22303,41]],[[12848,12848],"disallowed_STD3_mapped",[40,26085,41]],[[12849,12849],"disallowed_STD3_mapped",[40,26666,41]],[[12850,12850],"disallowed_STD3_mapped",[40,26377,41]],[[12851,12851],"disallowed_STD3_mapped",[40,31038,41]],[[12852,12852],"disallowed_STD3_mapped",[40,21517,41]],[[12853,12853],"disallowed_STD3_mapped",[40,29305,41]],[[12854,12854],"disallowed_STD3_mapped",[40,36001,41]],[[12855,12855],"disallowed_STD3_mapped",[40,31069,41]],[[12856,12856],"disallowed_STD3_mapped",[40,21172,41]],[[12857,12857],"disallowed_STD3_mapped",[40,20195,41]],[[12858,12858],"disallowed_STD3_mapped",[40,21628,41]],[[12859,12859],"disallowed_STD3_mapped",[40,23398,41]],[[12860,12860],"disallowed_STD3_mapped",[40,30435,41]],[[12861,12861],"disallowed_STD3_mapped",[40,20225,41]],[[12862,12862],"disallowed_STD3_mapped",[40,36039,41]],[[12863,12863],"disallowed_STD3_mapped",[40,21332,41]],[[12864,12864],"disallowed_STD3_mapped",[40,31085,41]],[[12865,12865],"disallowed_STD3_mapped",[40,20241,41]],[[12866,12866],"disallowed_STD3_mapped",[40,33258,41]],[[12867,12867],"disallowed_STD3_mapped",[40,33267,41]],[[12868,12868],"mapped",[21839]],[[12869,12869],"mapped",[24188]],[[12870,12870],"mapped",[25991]],[[12871,12871],"mapped",[31631]],[[12872,12879],"valid",[],"NV8"],[[12880,12880],"mapped",[112,116,101]],[[12881,12881],"mapped",[50,49]],[[12882,12882],"mapped",[50,50]],[[12883,12883],"mapped",[50,51]],[[12884,12884],"mapped",[50,52]],[[12885,12885],"mapped",[50,53]],[[12886,12886],"mapped",[50,54]],[[12887,12887],"mapped",[50,55]],[[12888,12888],"mapped",[50,56]],[[12889,12889],"mapped",[50,57]],[[12890,12890],"mapped",[51,48]],[[12891,12891],"mapped",[51,49]],[[12892,12892],"mapped",[51,50]],[[12893,12893],"mapped",[51,51]],[[12894,12894],"mapped",[51,52]],[[12895,12895],"mapped",[51,53]],[[12896,12896],"mapped",[4352]],[[12897,12897],"mapped",[4354]],[[12898,12898],"mapped",[4355]],[[12899,12899],"mapped",[4357]],[[12900,12900],"mapped",[4358]],[[12901,12901],"mapped",[4359]],[[12902,12902],"mapped",[4361]],[[12903,12903],"mapped",[4363]],[[12904,12904],"mapped",[4364]],[[12905,12905],"mapped",[4366]],[[12906,12906],"mapped",[4367]],[[12907,12907],"mapped",[4368]],[[12908,12908],"mapped",[4369]],[[12909,12909],"mapped",[4370]],[[12910,12910],"mapped",[44032]],[[12911,12911],"mapped",[45208]],[[12912,12912],"mapped",[45796]],[[12913,12913],"mapped",[46972]],[[12914,12914],"mapped",[47560]],[[12915,12915],"mapped",[48148]],[[12916,12916],"mapped",[49324]],[[12917,12917],"mapped",[50500]],[[12918,12918],"mapped",[51088]],[[12919,12919],"mapped",[52264]],[[12920,12920],"mapped",[52852]],[[12921,12921],"mapped",[53440]],[[12922,12922],"mapped",[54028]],[[12923,12923],"mapped",[54616]],[[12924,12924],"mapped",[52280,44256]],[[12925,12925],"mapped",[51452,51032]],[[12926,12926],"mapped",[50864]],[[12927,12927],"valid",[],"NV8"],[[12928,12928],"mapped",[19968]],[[12929,12929],"mapped",[20108]],[[12930,12930],"mapped",[19977]],[[12931,12931],"mapped",[22235]],[[12932,12932],"mapped",[20116]],[[12933,12933],"mapped",[20845]],[[12934,12934],"mapped",[19971]],[[12935,12935],"mapped",[20843]],[[12936,12936],"mapped",[20061]],[[12937,12937],"mapped",[21313]],[[12938,12938],"mapped",[26376]],[[12939,12939],"mapped",[28779]],[[12940,12940],"mapped",[27700]],[[12941,12941],"mapped",[26408]],[[12942,12942],"mapped",[37329]],[[12943,12943],"mapped",[22303]],[[12944,12944],"mapped",[26085]],[[12945,12945],"mapped",[26666]],[[12946,12946],"mapped",[26377]],[[12947,12947],"mapped",[31038]],[[12948,12948],"mapped",[21517]],[[12949,12949],"mapped",[29305]],[[12950,12950],"mapped",[36001]],[[12951,12951],"mapped",[31069]],[[12952,12952],"mapped",[21172]],[[12953,12953],"mapped",[31192]],[[12954,12954],"mapped",[30007]],[[12955,12955],"mapped",[22899]],[[12956,12956],"mapped",[36969]],[[12957,12957],"mapped",[20778]],[[12958,12958],"mapped",[21360]],[[12959,12959],"mapped",[27880]],[[12960,12960],"mapped",[38917]],[[12961,12961],"mapped",[20241]],[[12962,12962],"mapped",[20889]],[[12963,12963],"mapped",[27491]],[[12964,12964],"mapped",[19978]],[[12965,12965],"mapped",[20013]],[[12966,12966],"mapped",[19979]],[[12967,12967],"mapped",[24038]],[[12968,12968],"mapped",[21491]],[[12969,12969],"mapped",[21307]],[[12970,12970],"mapped",[23447]],[[12971,12971],"mapped",[23398]],[[12972,12972],"mapped",[30435]],[[12973,12973],"mapped",[20225]],[[12974,12974],"mapped",[36039]],[[12975,12975],"mapped",[21332]],[[12976,12976],"mapped",[22812]],[[12977,12977],"mapped",[51,54]],[[12978,12978],"mapped",[51,55]],[[12979,12979],"mapped",[51,56]],[[12980,12980],"mapped",[51,57]],[[12981,12981],"mapped",[52,48]],[[12982,12982],"mapped",[52,49]],[[12983,12983],"mapped",[52,50]],[[12984,12984],"mapped",[52,51]],[[12985,12985],"mapped",[52,52]],[[12986,12986],"mapped",[52,53]],[[12987,12987],"mapped",[52,54]],[[12988,12988],"mapped",[52,55]],[[12989,12989],"mapped",[52,56]],[[12990,12990],"mapped",[52,57]],[[12991,12991],"mapped",[53,48]],[[12992,12992],"mapped",[49,26376]],[[12993,12993],"mapped",[50,26376]],[[12994,12994],"mapped",[51,26376]],[[12995,12995],"mapped",[52,26376]],[[12996,12996],"mapped",[53,26376]],[[12997,12997],"mapped",[54,26376]],[[12998,12998],"mapped",[55,26376]],[[12999,12999],"mapped",[56,26376]],[[13000,13000],"mapped",[57,26376]],[[13001,13001],"mapped",[49,48,26376]],[[13002,13002],"mapped",[49,49,26376]],[[13003,13003],"mapped",[49,50,26376]],[[13004,13004],"mapped",[104,103]],[[13005,13005],"mapped",[101,114,103]],[[13006,13006],"mapped",[101,118]],[[13007,13007],"mapped",[108,116,100]],[[13008,13008],"mapped",[12450]],[[13009,13009],"mapped",[12452]],[[13010,13010],"mapped",[12454]],[[13011,13011],"mapped",[12456]],[[13012,13012],"mapped",[12458]],[[13013,13013],"mapped",[12459]],[[13014,13014],"mapped",[12461]],[[13015,13015],"mapped",[12463]],[[13016,13016],"mapped",[12465]],[[13017,13017],"mapped",[12467]],[[13018,13018],"mapped",[12469]],[[13019,13019],"mapped",[12471]],[[13020,13020],"mapped",[12473]],[[13021,13021],"mapped",[12475]],[[13022,13022],"mapped",[12477]],[[13023,13023],"mapped",[12479]],[[13024,13024],"mapped",[12481]],[[13025,13025],"mapped",[12484]],[[13026,13026],"mapped",[12486]],[[13027,13027],"mapped",[12488]],[[13028,13028],"mapped",[12490]],[[13029,13029],"mapped",[12491]],[[13030,13030],"mapped",[12492]],[[13031,13031],"mapped",[12493]],[[13032,13032],"mapped",[12494]],[[13033,13033],"mapped",[12495]],[[13034,13034],"mapped",[12498]],[[13035,13035],"mapped",[12501]],[[13036,13036],"mapped",[12504]],[[13037,13037],"mapped",[12507]],[[13038,13038],"mapped",[12510]],[[13039,13039],"mapped",[12511]],[[13040,13040],"mapped",[12512]],[[13041,13041],"mapped",[12513]],[[13042,13042],"mapped",[12514]],[[13043,13043],"mapped",[12516]],[[13044,13044],"mapped",[12518]],[[13045,13045],"mapped",[12520]],[[13046,13046],"mapped",[12521]],[[13047,13047],"mapped",[12522]],[[13048,13048],"mapped",[12523]],[[13049,13049],"mapped",[12524]],[[13050,13050],"mapped",[12525]],[[13051,13051],"mapped",[12527]],[[13052,13052],"mapped",[12528]],[[13053,13053],"mapped",[12529]],[[13054,13054],"mapped",[12530]],[[13055,13055],"disallowed"],[[13056,13056],"mapped",[12450,12497,12540,12488]],[[13057,13057],"mapped",[12450,12523,12501,12449]],[[13058,13058],"mapped",[12450,12531,12506,12450]],[[13059,13059],"mapped",[12450,12540,12523]],[[13060,13060],"mapped",[12452,12491,12531,12464]],[[13061,13061],"mapped",[12452,12531,12481]],[[13062,13062],"mapped",[12454,12457,12531]],[[13063,13063],"mapped",[12456,12473,12463,12540,12489]],[[13064,13064],"mapped",[12456,12540,12459,12540]],[[13065,13065],"mapped",[12458,12531,12473]],[[13066,13066],"mapped",[12458,12540,12512]],[[13067,13067],"mapped",[12459,12452,12522]],[[13068,13068],"mapped",[12459,12521,12483,12488]],[[13069,13069],"mapped",[12459,12525,12522,12540]],[[13070,13070],"mapped",[12460,12525,12531]],[[13071,13071],"mapped",[12460,12531,12510]],[[13072,13072],"mapped",[12462,12460]],[[13073,13073],"mapped",[12462,12491,12540]],[[13074,13074],"mapped",[12461,12517,12522,12540]],[[13075,13075],"mapped",[12462,12523,12480,12540]],[[13076,13076],"mapped",[12461,12525]],[[13077,13077],"mapped",[12461,12525,12464,12521,12512]],[[13078,13078],"mapped",[12461,12525,12513,12540,12488,12523]],[[13079,13079],"mapped",[12461,12525,12527,12483,12488]],[[13080,13080],"mapped",[12464,12521,12512]],[[13081,13081],"mapped",[12464,12521,12512,12488,12531]],[[13082,13082],"mapped",[12463,12523,12476,12452,12525]],[[13083,13083],"mapped",[12463,12525,12540,12493]],[[13084,13084],"mapped",[12465,12540,12473]],[[13085,13085],"mapped",[12467,12523,12490]],[[13086,13086],"mapped",[12467,12540,12509]],[[13087,13087],"mapped",[12469,12452,12463,12523]],[[13088,13088],"mapped",[12469,12531,12481,12540,12512]],[[13089,13089],"mapped",[12471,12522,12531,12464]],[[13090,13090],"mapped",[12475,12531,12481]],[[13091,13091],"mapped",[12475,12531,12488]],[[13092,13092],"mapped",[12480,12540,12473]],[[13093,13093],"mapped",[12487,12471]],[[13094,13094],"mapped",[12489,12523]],[[13095,13095],"mapped",[12488,12531]],[[13096,13096],"mapped",[12490,12494]],[[13097,13097],"mapped",[12494,12483,12488]],[[13098,13098],"mapped",[12495,12452,12484]],[[13099,13099],"mapped",[12497,12540,12475,12531,12488]],[[13100,13100],"mapped",[12497,12540,12484]],[[13101,13101],"mapped",[12496,12540,12524,12523]],[[13102,13102],"mapped",[12500,12450,12473,12488,12523]],[[13103,13103],"mapped",[12500,12463,12523]],[[13104,13104],"mapped",[12500,12467]],[[13105,13105],"mapped",[12499,12523]],[[13106,13106],"mapped",[12501,12449,12521,12483,12489]],[[13107,13107],"mapped",[12501,12451,12540,12488]],[[13108,13108],"mapped",[12502,12483,12471,12455,12523]],[[13109,13109],"mapped",[12501,12521,12531]],[[13110,13110],"mapped",[12504,12463,12479,12540,12523]],[[13111,13111],"mapped",[12506,12477]],[[13112,13112],"mapped",[12506,12491,12498]],[[13113,13113],"mapped",[12504,12523,12484]],[[13114,13114],"mapped",[12506,12531,12473]],[[13115,13115],"mapped",[12506,12540,12472]],[[13116,13116],"mapped",[12505,12540,12479]],[[13117,13117],"mapped",[12509,12452,12531,12488]],[[13118,13118],"mapped",[12508,12523,12488]],[[13119,13119],"mapped",[12507,12531]],[[13120,13120],"mapped",[12509,12531,12489]],[[13121,13121],"mapped",[12507,12540,12523]],[[13122,13122],"mapped",[12507,12540,12531]],[[13123,13123],"mapped",[12510,12452,12463,12525]],[[13124,13124],"mapped",[12510,12452,12523]],[[13125,13125],"mapped",[12510,12483,12495]],[[13126,13126],"mapped",[12510,12523,12463]],[[13127,13127],"mapped",[12510,12531,12471,12519,12531]],[[13128,13128],"mapped",[12511,12463,12525,12531]],[[13129,13129],"mapped",[12511,12522]],[[13130,13130],"mapped",[12511,12522,12496,12540,12523]],[[13131,13131],"mapped",[12513,12460]],[[13132,13132],"mapped",[12513,12460,12488,12531]],[[13133,13133],"mapped",[12513,12540,12488,12523]],[[13134,13134],"mapped",[12516,12540,12489]],[[13135,13135],"mapped",[12516,12540,12523]],[[13136,13136],"mapped",[12518,12450,12531]],[[13137,13137],"mapped",[12522,12483,12488,12523]],[[13138,13138],"mapped",[12522,12521]],[[13139,13139],"mapped",[12523,12500,12540]],[[13140,13140],"mapped",[12523,12540,12502,12523]],[[13141,13141],"mapped",[12524,12512]],[[13142,13142],"mapped",[12524,12531,12488,12466,12531]],[[13143,13143],"mapped",[12527,12483,12488]],[[13144,13144],"mapped",[48,28857]],[[13145,13145],"mapped",[49,28857]],[[13146,13146],"mapped",[50,28857]],[[13147,13147],"mapped",[51,28857]],[[13148,13148],"mapped",[52,28857]],[[13149,13149],"mapped",[53,28857]],[[13150,13150],"mapped",[54,28857]],[[13151,13151],"mapped",[55,28857]],[[13152,13152],"mapped",[56,28857]],[[13153,13153],"mapped",[57,28857]],[[13154,13154],"mapped",[49,48,28857]],[[13155,13155],"mapped",[49,49,28857]],[[13156,13156],"mapped",[49,50,28857]],[[13157,13157],"mapped",[49,51,28857]],[[13158,13158],"mapped",[49,52,28857]],[[13159,13159],"mapped",[49,53,28857]],[[13160,13160],"mapped",[49,54,28857]],[[13161,13161],"mapped",[49,55,28857]],[[13162,13162],"mapped",[49,56,28857]],[[13163,13163],"mapped",[49,57,28857]],[[13164,13164],"mapped",[50,48,28857]],[[13165,13165],"mapped",[50,49,28857]],[[13166,13166],"mapped",[50,50,28857]],[[13167,13167],"mapped",[50,51,28857]],[[13168,13168],"mapped",[50,52,28857]],[[13169,13169],"mapped",[104,112,97]],[[13170,13170],"mapped",[100,97]],[[13171,13171],"mapped",[97,117]],[[13172,13172],"mapped",[98,97,114]],[[13173,13173],"mapped",[111,118]],[[13174,13174],"mapped",[112,99]],[[13175,13175],"mapped",[100,109]],[[13176,13176],"mapped",[100,109,50]],[[13177,13177],"mapped",[100,109,51]],[[13178,13178],"mapped",[105,117]],[[13179,13179],"mapped",[24179,25104]],[[13180,13180],"mapped",[26157,21644]],[[13181,13181],"mapped",[22823,27491]],[[13182,13182],"mapped",[26126,27835]],[[13183,13183],"mapped",[26666,24335,20250,31038]],[[13184,13184],"mapped",[112,97]],[[13185,13185],"mapped",[110,97]],[[13186,13186],"mapped",[956,97]],[[13187,13187],"mapped",[109,97]],[[13188,13188],"mapped",[107,97]],[[13189,13189],"mapped",[107,98]],[[13190,13190],"mapped",[109,98]],[[13191,13191],"mapped",[103,98]],[[13192,13192],"mapped",[99,97,108]],[[13193,13193],"mapped",[107,99,97,108]],[[13194,13194],"mapped",[112,102]],[[13195,13195],"mapped",[110,102]],[[13196,13196],"mapped",[956,102]],[[13197,13197],"mapped",[956,103]],[[13198,13198],"mapped",[109,103]],[[13199,13199],"mapped",[107,103]],[[13200,13200],"mapped",[104,122]],[[13201,13201],"mapped",[107,104,122]],[[13202,13202],"mapped",[109,104,122]],[[13203,13203],"mapped",[103,104,122]],[[13204,13204],"mapped",[116,104,122]],[[13205,13205],"mapped",[956,108]],[[13206,13206],"mapped",[109,108]],[[13207,13207],"mapped",[100,108]],[[13208,13208],"mapped",[107,108]],[[13209,13209],"mapped",[102,109]],[[13210,13210],"mapped",[110,109]],[[13211,13211],"mapped",[956,109]],[[13212,13212],"mapped",[109,109]],[[13213,13213],"mapped",[99,109]],[[13214,13214],"mapped",[107,109]],[[13215,13215],"mapped",[109,109,50]],[[13216,13216],"mapped",[99,109,50]],[[13217,13217],"mapped",[109,50]],[[13218,13218],"mapped",[107,109,50]],[[13219,13219],"mapped",[109,109,51]],[[13220,13220],"mapped",[99,109,51]],[[13221,13221],"mapped",[109,51]],[[13222,13222],"mapped",[107,109,51]],[[13223,13223],"mapped",[109,8725,115]],[[13224,13224],"mapped",[109,8725,115,50]],[[13225,13225],"mapped",[112,97]],[[13226,13226],"mapped",[107,112,97]],[[13227,13227],"mapped",[109,112,97]],[[13228,13228],"mapped",[103,112,97]],[[13229,13229],"mapped",[114,97,100]],[[13230,13230],"mapped",[114,97,100,8725,115]],[[13231,13231],"mapped",[114,97,100,8725,115,50]],[[13232,13232],"mapped",[112,115]],[[13233,13233],"mapped",[110,115]],[[13234,13234],"mapped",[956,115]],[[13235,13235],"mapped",[109,115]],[[13236,13236],"mapped",[112,118]],[[13237,13237],"mapped",[110,118]],[[13238,13238],"mapped",[956,118]],[[13239,13239],"mapped",[109,118]],[[13240,13240],"mapped",[107,118]],[[13241,13241],"mapped",[109,118]],[[13242,13242],"mapped",[112,119]],[[13243,13243],"mapped",[110,119]],[[13244,13244],"mapped",[956,119]],[[13245,13245],"mapped",[109,119]],[[13246,13246],"mapped",[107,119]],[[13247,13247],"mapped",[109,119]],[[13248,13248],"mapped",[107,969]],[[13249,13249],"mapped",[109,969]],[[13250,13250],"disallowed"],[[13251,13251],"mapped",[98,113]],[[13252,13252],"mapped",[99,99]],[[13253,13253],"mapped",[99,100]],[[13254,13254],"mapped",[99,8725,107,103]],[[13255,13255],"disallowed"],[[13256,13256],"mapped",[100,98]],[[13257,13257],"mapped",[103,121]],[[13258,13258],"mapped",[104,97]],[[13259,13259],"mapped",[104,112]],[[13260,13260],"mapped",[105,110]],[[13261,13261],"mapped",[107,107]],[[13262,13262],"mapped",[107,109]],[[13263,13263],"mapped",[107,116]],[[13264,13264],"mapped",[108,109]],[[13265,13265],"mapped",[108,110]],[[13266,13266],"mapped",[108,111,103]],[[13267,13267],"mapped",[108,120]],[[13268,13268],"mapped",[109,98]],[[13269,13269],"mapped",[109,105,108]],[[13270,13270],"mapped",[109,111,108]],[[13271,13271],"mapped",[112,104]],[[13272,13272],"disallowed"],[[13273,13273],"mapped",[112,112,109]],[[13274,13274],"mapped",[112,114]],[[13275,13275],"mapped",[115,114]],[[13276,13276],"mapped",[115,118]],[[13277,13277],"mapped",[119,98]],[[13278,13278],"mapped",[118,8725,109]],[[13279,13279],"mapped",[97,8725,109]],[[13280,13280],"mapped",[49,26085]],[[13281,13281],"mapped",[50,26085]],[[13282,13282],"mapped",[51,26085]],[[13283,13283],"mapped",[52,26085]],[[13284,13284],"mapped",[53,26085]],[[13285,13285],"mapped",[54,26085]],[[13286,13286],"mapped",[55,26085]],[[13287,13287],"mapped",[56,26085]],[[13288,13288],"mapped",[57,26085]],[[13289,13289],"mapped",[49,48,26085]],[[13290,13290],"mapped",[49,49,26085]],[[13291,13291],"mapped",[49,50,26085]],[[13292,13292],"mapped",[49,51,26085]],[[13293,13293],"mapped",[49,52,26085]],[[13294,13294],"mapped",[49,53,26085]],[[13295,13295],"mapped",[49,54,26085]],[[13296,13296],"mapped",[49,55,26085]],[[13297,13297],"mapped",[49,56,26085]],[[13298,13298],"mapped",[49,57,26085]],[[13299,13299],"mapped",[50,48,26085]],[[13300,13300],"mapped",[50,49,26085]],[[13301,13301],"mapped",[50,50,26085]],[[13302,13302],"mapped",[50,51,26085]],[[13303,13303],"mapped",[50,52,26085]],[[13304,13304],"mapped",[50,53,26085]],[[13305,13305],"mapped",[50,54,26085]],[[13306,13306],"mapped",[50,55,26085]],[[13307,13307],"mapped",[50,56,26085]],[[13308,13308],"mapped",[50,57,26085]],[[13309,13309],"mapped",[51,48,26085]],[[13310,13310],"mapped",[51,49,26085]],[[13311,13311],"mapped",[103,97,108]],[[13312,19893],"valid"],[[19894,19903],"disallowed"],[[19904,19967],"valid",[],"NV8"],[[19968,40869],"valid"],[[40870,40891],"valid"],[[40892,40899],"valid"],[[40900,40907],"valid"],[[40908,40908],"valid"],[[40909,40917],"valid"],[[40918,40959],"disallowed"],[[40960,42124],"valid"],[[42125,42127],"disallowed"],[[42128,42145],"valid",[],"NV8"],[[42146,42147],"valid",[],"NV8"],[[42148,42163],"valid",[],"NV8"],[[42164,42164],"valid",[],"NV8"],[[42165,42176],"valid",[],"NV8"],[[42177,42177],"valid",[],"NV8"],[[42178,42180],"valid",[],"NV8"],[[42181,42181],"valid",[],"NV8"],[[42182,42182],"valid",[],"NV8"],[[42183,42191],"disallowed"],[[42192,42237],"valid"],[[42238,42239],"valid",[],"NV8"],[[42240,42508],"valid"],[[42509,42511],"valid",[],"NV8"],[[42512,42539],"valid"],[[42540,42559],"disallowed"],[[42560,42560],"mapped",[42561]],[[42561,42561],"valid"],[[42562,42562],"mapped",[42563]],[[42563,42563],"valid"],[[42564,42564],"mapped",[42565]],[[42565,42565],"valid"],[[42566,42566],"mapped",[42567]],[[42567,42567],"valid"],[[42568,42568],"mapped",[42569]],[[42569,42569],"valid"],[[42570,42570],"mapped",[42571]],[[42571,42571],"valid"],[[42572,42572],"mapped",[42573]],[[42573,42573],"valid"],[[42574,42574],"mapped",[42575]],[[42575,42575],"valid"],[[42576,42576],"mapped",[42577]],[[42577,42577],"valid"],[[42578,42578],"mapped",[42579]],[[42579,42579],"valid"],[[42580,42580],"mapped",[42581]],[[42581,42581],"valid"],[[42582,42582],"mapped",[42583]],[[42583,42583],"valid"],[[42584,42584],"mapped",[42585]],[[42585,42585],"valid"],[[42586,42586],"mapped",[42587]],[[42587,42587],"valid"],[[42588,42588],"mapped",[42589]],[[42589,42589],"valid"],[[42590,42590],"mapped",[42591]],[[42591,42591],"valid"],[[42592,42592],"mapped",[42593]],[[42593,42593],"valid"],[[42594,42594],"mapped",[42595]],[[42595,42595],"valid"],[[42596,42596],"mapped",[42597]],[[42597,42597],"valid"],[[42598,42598],"mapped",[42599]],[[42599,42599],"valid"],[[42600,42600],"mapped",[42601]],[[42601,42601],"valid"],[[42602,42602],"mapped",[42603]],[[42603,42603],"valid"],[[42604,42604],"mapped",[42605]],[[42605,42607],"valid"],[[42608,42611],"valid",[],"NV8"],[[42612,42619],"valid"],[[42620,42621],"valid"],[[42622,42622],"valid",[],"NV8"],[[42623,42623],"valid"],[[42624,42624],"mapped",[42625]],[[42625,42625],"valid"],[[42626,42626],"mapped",[42627]],[[42627,42627],"valid"],[[42628,42628],"mapped",[42629]],[[42629,42629],"valid"],[[42630,42630],"mapped",[42631]],[[42631,42631],"valid"],[[42632,42632],"mapped",[42633]],[[42633,42633],"valid"],[[42634,42634],"mapped",[42635]],[[42635,42635],"valid"],[[42636,42636],"mapped",[42637]],[[42637,42637],"valid"],[[42638,42638],"mapped",[42639]],[[42639,42639],"valid"],[[42640,42640],"mapped",[42641]],[[42641,42641],"valid"],[[42642,42642],"mapped",[42643]],[[42643,42643],"valid"],[[42644,42644],"mapped",[42645]],[[42645,42645],"valid"],[[42646,42646],"mapped",[42647]],[[42647,42647],"valid"],[[42648,42648],"mapped",[42649]],[[42649,42649],"valid"],[[42650,42650],"mapped",[42651]],[[42651,42651],"valid"],[[42652,42652],"mapped",[1098]],[[42653,42653],"mapped",[1100]],[[42654,42654],"valid"],[[42655,42655],"valid"],[[42656,42725],"valid"],[[42726,42735],"valid",[],"NV8"],[[42736,42737],"valid"],[[42738,42743],"valid",[],"NV8"],[[42744,42751],"disallowed"],[[42752,42774],"valid",[],"NV8"],[[42775,42778],"valid"],[[42779,42783],"valid"],[[42784,42785],"valid",[],"NV8"],[[42786,42786],"mapped",[42787]],[[42787,42787],"valid"],[[42788,42788],"mapped",[42789]],[[42789,42789],"valid"],[[42790,42790],"mapped",[42791]],[[42791,42791],"valid"],[[42792,42792],"mapped",[42793]],[[42793,42793],"valid"],[[42794,42794],"mapped",[42795]],[[42795,42795],"valid"],[[42796,42796],"mapped",[42797]],[[42797,42797],"valid"],[[42798,42798],"mapped",[42799]],[[42799,42801],"valid"],[[42802,42802],"mapped",[42803]],[[42803,42803],"valid"],[[42804,42804],"mapped",[42805]],[[42805,42805],"valid"],[[42806,42806],"mapped",[42807]],[[42807,42807],"valid"],[[42808,42808],"mapped",[42809]],[[42809,42809],"valid"],[[42810,42810],"mapped",[42811]],[[42811,42811],"valid"],[[42812,42812],"mapped",[42813]],[[42813,42813],"valid"],[[42814,42814],"mapped",[42815]],[[42815,42815],"valid"],[[42816,42816],"mapped",[42817]],[[42817,42817],"valid"],[[42818,42818],"mapped",[42819]],[[42819,42819],"valid"],[[42820,42820],"mapped",[42821]],[[42821,42821],"valid"],[[42822,42822],"mapped",[42823]],[[42823,42823],"valid"],[[42824,42824],"mapped",[42825]],[[42825,42825],"valid"],[[42826,42826],"mapped",[42827]],[[42827,42827],"valid"],[[42828,42828],"mapped",[42829]],[[42829,42829],"valid"],[[42830,42830],"mapped",[42831]],[[42831,42831],"valid"],[[42832,42832],"mapped",[42833]],[[42833,42833],"valid"],[[42834,42834],"mapped",[42835]],[[42835,42835],"valid"],[[42836,42836],"mapped",[42837]],[[42837,42837],"valid"],[[42838,42838],"mapped",[42839]],[[42839,42839],"valid"],[[42840,42840],"mapped",[42841]],[[42841,42841],"valid"],[[42842,42842],"mapped",[42843]],[[42843,42843],"valid"],[[42844,42844],"mapped",[42845]],[[42845,42845],"valid"],[[42846,42846],"mapped",[42847]],[[42847,42847],"valid"],[[42848,42848],"mapped",[42849]],[[42849,42849],"valid"],[[42850,42850],"mapped",[42851]],[[42851,42851],"valid"],[[42852,42852],"mapped",[42853]],[[42853,42853],"valid"],[[42854,42854],"mapped",[42855]],[[42855,42855],"valid"],[[42856,42856],"mapped",[42857]],[[42857,42857],"valid"],[[42858,42858],"mapped",[42859]],[[42859,42859],"valid"],[[42860,42860],"mapped",[42861]],[[42861,42861],"valid"],[[42862,42862],"mapped",[42863]],[[42863,42863],"valid"],[[42864,42864],"mapped",[42863]],[[42865,42872],"valid"],[[42873,42873],"mapped",[42874]],[[42874,42874],"valid"],[[42875,42875],"mapped",[42876]],[[42876,42876],"valid"],[[42877,42877],"mapped",[7545]],[[42878,42878],"mapped",[42879]],[[42879,42879],"valid"],[[42880,42880],"mapped",[42881]],[[42881,42881],"valid"],[[42882,42882],"mapped",[42883]],[[42883,42883],"valid"],[[42884,42884],"mapped",[42885]],[[42885,42885],"valid"],[[42886,42886],"mapped",[42887]],[[42887,42888],"valid"],[[42889,42890],"valid",[],"NV8"],[[42891,42891],"mapped",[42892]],[[42892,42892],"valid"],[[42893,42893],"mapped",[613]],[[42894,42894],"valid"],[[42895,42895],"valid"],[[42896,42896],"mapped",[42897]],[[42897,42897],"valid"],[[42898,42898],"mapped",[42899]],[[42899,42899],"valid"],[[42900,42901],"valid"],[[42902,42902],"mapped",[42903]],[[42903,42903],"valid"],[[42904,42904],"mapped",[42905]],[[42905,42905],"valid"],[[42906,42906],"mapped",[42907]],[[42907,42907],"valid"],[[42908,42908],"mapped",[42909]],[[42909,42909],"valid"],[[42910,42910],"mapped",[42911]],[[42911,42911],"valid"],[[42912,42912],"mapped",[42913]],[[42913,42913],"valid"],[[42914,42914],"mapped",[42915]],[[42915,42915],"valid"],[[42916,42916],"mapped",[42917]],[[42917,42917],"valid"],[[42918,42918],"mapped",[42919]],[[42919,42919],"valid"],[[42920,42920],"mapped",[42921]],[[42921,42921],"valid"],[[42922,42922],"mapped",[614]],[[42923,42923],"mapped",[604]],[[42924,42924],"mapped",[609]],[[42925,42925],"mapped",[620]],[[42926,42927],"disallowed"],[[42928,42928],"mapped",[670]],[[42929,42929],"mapped",[647]],[[42930,42930],"mapped",[669]],[[42931,42931],"mapped",[43859]],[[42932,42932],"mapped",[42933]],[[42933,42933],"valid"],[[42934,42934],"mapped",[42935]],[[42935,42935],"valid"],[[42936,42998],"disallowed"],[[42999,42999],"valid"],[[43000,43000],"mapped",[295]],[[43001,43001],"mapped",[339]],[[43002,43002],"valid"],[[43003,43007],"valid"],[[43008,43047],"valid"],[[43048,43051],"valid",[],"NV8"],[[43052,43055],"disallowed"],[[43056,43065],"valid",[],"NV8"],[[43066,43071],"disallowed"],[[43072,43123],"valid"],[[43124,43127],"valid",[],"NV8"],[[43128,43135],"disallowed"],[[43136,43204],"valid"],[[43205,43213],"disallowed"],[[43214,43215],"valid",[],"NV8"],[[43216,43225],"valid"],[[43226,43231],"disallowed"],[[43232,43255],"valid"],[[43256,43258],"valid",[],"NV8"],[[43259,43259],"valid"],[[43260,43260],"valid",[],"NV8"],[[43261,43261],"valid"],[[43262,43263],"disallowed"],[[43264,43309],"valid"],[[43310,43311],"valid",[],"NV8"],[[43312,43347],"valid"],[[43348,43358],"disallowed"],[[43359,43359],"valid",[],"NV8"],[[43360,43388],"valid",[],"NV8"],[[43389,43391],"disallowed"],[[43392,43456],"valid"],[[43457,43469],"valid",[],"NV8"],[[43470,43470],"disallowed"],[[43471,43481],"valid"],[[43482,43485],"disallowed"],[[43486,43487],"valid",[],"NV8"],[[43488,43518],"valid"],[[43519,43519],"disallowed"],[[43520,43574],"valid"],[[43575,43583],"disallowed"],[[43584,43597],"valid"],[[43598,43599],"disallowed"],[[43600,43609],"valid"],[[43610,43611],"disallowed"],[[43612,43615],"valid",[],"NV8"],[[43616,43638],"valid"],[[43639,43641],"valid",[],"NV8"],[[43642,43643],"valid"],[[43644,43647],"valid"],[[43648,43714],"valid"],[[43715,43738],"disallowed"],[[43739,43741],"valid"],[[43742,43743],"valid",[],"NV8"],[[43744,43759],"valid"],[[43760,43761],"valid",[],"NV8"],[[43762,43766],"valid"],[[43767,43776],"disallowed"],[[43777,43782],"valid"],[[43783,43784],"disallowed"],[[43785,43790],"valid"],[[43791,43792],"disallowed"],[[43793,43798],"valid"],[[43799,43807],"disallowed"],[[43808,43814],"valid"],[[43815,43815],"disallowed"],[[43816,43822],"valid"],[[43823,43823],"disallowed"],[[43824,43866],"valid"],[[43867,43867],"valid",[],"NV8"],[[43868,43868],"mapped",[42791]],[[43869,43869],"mapped",[43831]],[[43870,43870],"mapped",[619]],[[43871,43871],"mapped",[43858]],[[43872,43875],"valid"],[[43876,43877],"valid"],[[43878,43887],"disallowed"],[[43888,43888],"mapped",[5024]],[[43889,43889],"mapped",[5025]],[[43890,43890],"mapped",[5026]],[[43891,43891],"mapped",[5027]],[[43892,43892],"mapped",[5028]],[[43893,43893],"mapped",[5029]],[[43894,43894],"mapped",[5030]],[[43895,43895],"mapped",[5031]],[[43896,43896],"mapped",[5032]],[[43897,43897],"mapped",[5033]],[[43898,43898],"mapped",[5034]],[[43899,43899],"mapped",[5035]],[[43900,43900],"mapped",[5036]],[[43901,43901],"mapped",[5037]],[[43902,43902],"mapped",[5038]],[[43903,43903],"mapped",[5039]],[[43904,43904],"mapped",[5040]],[[43905,43905],"mapped",[5041]],[[43906,43906],"mapped",[5042]],[[43907,43907],"mapped",[5043]],[[43908,43908],"mapped",[5044]],[[43909,43909],"mapped",[5045]],[[43910,43910],"mapped",[5046]],[[43911,43911],"mapped",[5047]],[[43912,43912],"mapped",[5048]],[[43913,43913],"mapped",[5049]],[[43914,43914],"mapped",[5050]],[[43915,43915],"mapped",[5051]],[[43916,43916],"mapped",[5052]],[[43917,43917],"mapped",[5053]],[[43918,43918],"mapped",[5054]],[[43919,43919],"mapped",[5055]],[[43920,43920],"mapped",[5056]],[[43921,43921],"mapped",[5057]],[[43922,43922],"mapped",[5058]],[[43923,43923],"mapped",[5059]],[[43924,43924],"mapped",[5060]],[[43925,43925],"mapped",[5061]],[[43926,43926],"mapped",[5062]],[[43927,43927],"mapped",[5063]],[[43928,43928],"mapped",[5064]],[[43929,43929],"mapped",[5065]],[[43930,43930],"mapped",[5066]],[[43931,43931],"mapped",[5067]],[[43932,43932],"mapped",[5068]],[[43933,43933],"mapped",[5069]],[[43934,43934],"mapped",[5070]],[[43935,43935],"mapped",[5071]],[[43936,43936],"mapped",[5072]],[[43937,43937],"mapped",[5073]],[[43938,43938],"mapped",[5074]],[[43939,43939],"mapped",[5075]],[[43940,43940],"mapped",[5076]],[[43941,43941],"mapped",[5077]],[[43942,43942],"mapped",[5078]],[[43943,43943],"mapped",[5079]],[[43944,43944],"mapped",[5080]],[[43945,43945],"mapped",[5081]],[[43946,43946],"mapped",[5082]],[[43947,43947],"mapped",[5083]],[[43948,43948],"mapped",[5084]],[[43949,43949],"mapped",[5085]],[[43950,43950],"mapped",[5086]],[[43951,43951],"mapped",[5087]],[[43952,43952],"mapped",[5088]],[[43953,43953],"mapped",[5089]],[[43954,43954],"mapped",[5090]],[[43955,43955],"mapped",[5091]],[[43956,43956],"mapped",[5092]],[[43957,43957],"mapped",[5093]],[[43958,43958],"mapped",[5094]],[[43959,43959],"mapped",[5095]],[[43960,43960],"mapped",[5096]],[[43961,43961],"mapped",[5097]],[[43962,43962],"mapped",[5098]],[[43963,43963],"mapped",[5099]],[[43964,43964],"mapped",[5100]],[[43965,43965],"mapped",[5101]],[[43966,43966],"mapped",[5102]],[[43967,43967],"mapped",[5103]],[[43968,44010],"valid"],[[44011,44011],"valid",[],"NV8"],[[44012,44013],"valid"],[[44014,44015],"disallowed"],[[44016,44025],"valid"],[[44026,44031],"disallowed"],[[44032,55203],"valid"],[[55204,55215],"disallowed"],[[55216,55238],"valid",[],"NV8"],[[55239,55242],"disallowed"],[[55243,55291],"valid",[],"NV8"],[[55292,55295],"disallowed"],[[55296,57343],"disallowed"],[[57344,63743],"disallowed"],[[63744,63744],"mapped",[35912]],[[63745,63745],"mapped",[26356]],[[63746,63746],"mapped",[36554]],[[63747,63747],"mapped",[36040]],[[63748,63748],"mapped",[28369]],[[63749,63749],"mapped",[20018]],[[63750,63750],"mapped",[21477]],[[63751,63752],"mapped",[40860]],[[63753,63753],"mapped",[22865]],[[63754,63754],"mapped",[37329]],[[63755,63755],"mapped",[21895]],[[63756,63756],"mapped",[22856]],[[63757,63757],"mapped",[25078]],[[63758,63758],"mapped",[30313]],[[63759,63759],"mapped",[32645]],[[63760,63760],"mapped",[34367]],[[63761,63761],"mapped",[34746]],[[63762,63762],"mapped",[35064]],[[63763,63763],"mapped",[37007]],[[63764,63764],"mapped",[27138]],[[63765,63765],"mapped",[27931]],[[63766,63766],"mapped",[28889]],[[63767,63767],"mapped",[29662]],[[63768,63768],"mapped",[33853]],[[63769,63769],"mapped",[37226]],[[63770,63770],"mapped",[39409]],[[63771,63771],"mapped",[20098]],[[63772,63772],"mapped",[21365]],[[63773,63773],"mapped",[27396]],[[63774,63774],"mapped",[29211]],[[63775,63775],"mapped",[34349]],[[63776,63776],"mapped",[40478]],[[63777,63777],"mapped",[23888]],[[63778,63778],"mapped",[28651]],[[63779,63779],"mapped",[34253]],[[63780,63780],"mapped",[35172]],[[63781,63781],"mapped",[25289]],[[63782,63782],"mapped",[33240]],[[63783,63783],"mapped",[34847]],[[63784,63784],"mapped",[24266]],[[63785,63785],"mapped",[26391]],[[63786,63786],"mapped",[28010]],[[63787,63787],"mapped",[29436]],[[63788,63788],"mapped",[37070]],[[63789,63789],"mapped",[20358]],[[63790,63790],"mapped",[20919]],[[63791,63791],"mapped",[21214]],[[63792,63792],"mapped",[25796]],[[63793,63793],"mapped",[27347]],[[63794,63794],"mapped",[29200]],[[63795,63795],"mapped",[30439]],[[63796,63796],"mapped",[32769]],[[63797,63797],"mapped",[34310]],[[63798,63798],"mapped",[34396]],[[63799,63799],"mapped",[36335]],[[63800,63800],"mapped",[38706]],[[63801,63801],"mapped",[39791]],[[63802,63802],"mapped",[40442]],[[63803,63803],"mapped",[30860]],[[63804,63804],"mapped",[31103]],[[63805,63805],"mapped",[32160]],[[63806,63806],"mapped",[33737]],[[63807,63807],"mapped",[37636]],[[63808,63808],"mapped",[40575]],[[63809,63809],"mapped",[35542]],[[63810,63810],"mapped",[22751]],[[63811,63811],"mapped",[24324]],[[63812,63812],"mapped",[31840]],[[63813,63813],"mapped",[32894]],[[63814,63814],"mapped",[29282]],[[63815,63815],"mapped",[30922]],[[63816,63816],"mapped",[36034]],[[63817,63817],"mapped",[38647]],[[63818,63818],"mapped",[22744]],[[63819,63819],"mapped",[23650]],[[63820,63820],"mapped",[27155]],[[63821,63821],"mapped",[28122]],[[63822,63822],"mapped",[28431]],[[63823,63823],"mapped",[32047]],[[63824,63824],"mapped",[32311]],[[63825,63825],"mapped",[38475]],[[63826,63826],"mapped",[21202]],[[63827,63827],"mapped",[32907]],[[63828,63828],"mapped",[20956]],[[63829,63829],"mapped",[20940]],[[63830,63830],"mapped",[31260]],[[63831,63831],"mapped",[32190]],[[63832,63832],"mapped",[33777]],[[63833,63833],"mapped",[38517]],[[63834,63834],"mapped",[35712]],[[63835,63835],"mapped",[25295]],[[63836,63836],"mapped",[27138]],[[63837,63837],"mapped",[35582]],[[63838,63838],"mapped",[20025]],[[63839,63839],"mapped",[23527]],[[63840,63840],"mapped",[24594]],[[63841,63841],"mapped",[29575]],[[63842,63842],"mapped",[30064]],[[63843,63843],"mapped",[21271]],[[63844,63844],"mapped",[30971]],[[63845,63845],"mapped",[20415]],[[63846,63846],"mapped",[24489]],[[63847,63847],"mapped",[19981]],[[63848,63848],"mapped",[27852]],[[63849,63849],"mapped",[25976]],[[63850,63850],"mapped",[32034]],[[63851,63851],"mapped",[21443]],[[63852,63852],"mapped",[22622]],[[63853,63853],"mapped",[30465]],[[63854,63854],"mapped",[33865]],[[63855,63855],"mapped",[35498]],[[63856,63856],"mapped",[27578]],[[63857,63857],"mapped",[36784]],[[63858,63858],"mapped",[27784]],[[63859,63859],"mapped",[25342]],[[63860,63860],"mapped",[33509]],[[63861,63861],"mapped",[25504]],[[63862,63862],"mapped",[30053]],[[63863,63863],"mapped",[20142]],[[63864,63864],"mapped",[20841]],[[63865,63865],"mapped",[20937]],[[63866,63866],"mapped",[26753]],[[63867,63867],"mapped",[31975]],[[63868,63868],"mapped",[33391]],[[63869,63869],"mapped",[35538]],[[63870,63870],"mapped",[37327]],[[63871,63871],"mapped",[21237]],[[63872,63872],"mapped",[21570]],[[63873,63873],"mapped",[22899]],[[63874,63874],"mapped",[24300]],[[63875,63875],"mapped",[26053]],[[63876,63876],"mapped",[28670]],[[63877,63877],"mapped",[31018]],[[63878,63878],"mapped",[38317]],[[63879,63879],"mapped",[39530]],[[63880,63880],"mapped",[40599]],[[63881,63881],"mapped",[40654]],[[63882,63882],"mapped",[21147]],[[63883,63883],"mapped",[26310]],[[63884,63884],"mapped",[27511]],[[63885,63885],"mapped",[36706]],[[63886,63886],"mapped",[24180]],[[63887,63887],"mapped",[24976]],[[63888,63888],"mapped",[25088]],[[63889,63889],"mapped",[25754]],[[63890,63890],"mapped",[28451]],[[63891,63891],"mapped",[29001]],[[63892,63892],"mapped",[29833]],[[63893,63893],"mapped",[31178]],[[63894,63894],"mapped",[32244]],[[63895,63895],"mapped",[32879]],[[63896,63896],"mapped",[36646]],[[63897,63897],"mapped",[34030]],[[63898,63898],"mapped",[36899]],[[63899,63899],"mapped",[37706]],[[63900,63900],"mapped",[21015]],[[63901,63901],"mapped",[21155]],[[63902,63902],"mapped",[21693]],[[63903,63903],"mapped",[28872]],[[63904,63904],"mapped",[35010]],[[63905,63905],"mapped",[35498]],[[63906,63906],"mapped",[24265]],[[63907,63907],"mapped",[24565]],[[63908,63908],"mapped",[25467]],[[63909,63909],"mapped",[27566]],[[63910,63910],"mapped",[31806]],[[63911,63911],"mapped",[29557]],[[63912,63912],"mapped",[20196]],[[63913,63913],"mapped",[22265]],[[63914,63914],"mapped",[23527]],[[63915,63915],"mapped",[23994]],[[63916,63916],"mapped",[24604]],[[63917,63917],"mapped",[29618]],[[63918,63918],"mapped",[29801]],[[63919,63919],"mapped",[32666]],[[63920,63920],"mapped",[32838]],[[63921,63921],"mapped",[37428]],[[63922,63922],"mapped",[38646]],[[63923,63923],"mapped",[38728]],[[63924,63924],"mapped",[38936]],[[63925,63925],"mapped",[20363]],[[63926,63926],"mapped",[31150]],[[63927,63927],"mapped",[37300]],[[63928,63928],"mapped",[38584]],[[63929,63929],"mapped",[24801]],[[63930,63930],"mapped",[20102]],[[63931,63931],"mapped",[20698]],[[63932,63932],"mapped",[23534]],[[63933,63933],"mapped",[23615]],[[63934,63934],"mapped",[26009]],[[63935,63935],"mapped",[27138]],[[63936,63936],"mapped",[29134]],[[63937,63937],"mapped",[30274]],[[63938,63938],"mapped",[34044]],[[63939,63939],"mapped",[36988]],[[63940,63940],"mapped",[40845]],[[63941,63941],"mapped",[26248]],[[63942,63942],"mapped",[38446]],[[63943,63943],"mapped",[21129]],[[63944,63944],"mapped",[26491]],[[63945,63945],"mapped",[26611]],[[63946,63946],"mapped",[27969]],[[63947,63947],"mapped",[28316]],[[63948,63948],"mapped",[29705]],[[63949,63949],"mapped",[30041]],[[63950,63950],"mapped",[30827]],[[63951,63951],"mapped",[32016]],[[63952,63952],"mapped",[39006]],[[63953,63953],"mapped",[20845]],[[63954,63954],"mapped",[25134]],[[63955,63955],"mapped",[38520]],[[63956,63956],"mapped",[20523]],[[63957,63957],"mapped",[23833]],[[63958,63958],"mapped",[28138]],[[63959,63959],"mapped",[36650]],[[63960,63960],"mapped",[24459]],[[63961,63961],"mapped",[24900]],[[63962,63962],"mapped",[26647]],[[63963,63963],"mapped",[29575]],[[63964,63964],"mapped",[38534]],[[63965,63965],"mapped",[21033]],[[63966,63966],"mapped",[21519]],[[63967,63967],"mapped",[23653]],[[63968,63968],"mapped",[26131]],[[63969,63969],"mapped",[26446]],[[63970,63970],"mapped",[26792]],[[63971,63971],"mapped",[27877]],[[63972,63972],"mapped",[29702]],[[63973,63973],"mapped",[30178]],[[63974,63974],"mapped",[32633]],[[63975,63975],"mapped",[35023]],[[63976,63976],"mapped",[35041]],[[63977,63977],"mapped",[37324]],[[63978,63978],"mapped",[38626]],[[63979,63979],"mapped",[21311]],[[63980,63980],"mapped",[28346]],[[63981,63981],"mapped",[21533]],[[63982,63982],"mapped",[29136]],[[63983,63983],"mapped",[29848]],[[63984,63984],"mapped",[34298]],[[63985,63985],"mapped",[38563]],[[63986,63986],"mapped",[40023]],[[63987,63987],"mapped",[40607]],[[63988,63988],"mapped",[26519]],[[63989,63989],"mapped",[28107]],[[63990,63990],"mapped",[33256]],[[63991,63991],"mapped",[31435]],[[63992,63992],"mapped",[31520]],[[63993,63993],"mapped",[31890]],[[63994,63994],"mapped",[29376]],[[63995,63995],"mapped",[28825]],[[63996,63996],"mapped",[35672]],[[63997,63997],"mapped",[20160]],[[63998,63998],"mapped",[33590]],[[63999,63999],"mapped",[21050]],[[64000,64000],"mapped",[20999]],[[64001,64001],"mapped",[24230]],[[64002,64002],"mapped",[25299]],[[64003,64003],"mapped",[31958]],[[64004,64004],"mapped",[23429]],[[64005,64005],"mapped",[27934]],[[64006,64006],"mapped",[26292]],[[64007,64007],"mapped",[36667]],[[64008,64008],"mapped",[34892]],[[64009,64009],"mapped",[38477]],[[64010,64010],"mapped",[35211]],[[64011,64011],"mapped",[24275]],[[64012,64012],"mapped",[20800]],[[64013,64013],"mapped",[21952]],[[64014,64015],"valid"],[[64016,64016],"mapped",[22618]],[[64017,64017],"valid"],[[64018,64018],"mapped",[26228]],[[64019,64020],"valid"],[[64021,64021],"mapped",[20958]],[[64022,64022],"mapped",[29482]],[[64023,64023],"mapped",[30410]],[[64024,64024],"mapped",[31036]],[[64025,64025],"mapped",[31070]],[[64026,64026],"mapped",[31077]],[[64027,64027],"mapped",[31119]],[[64028,64028],"mapped",[38742]],[[64029,64029],"mapped",[31934]],[[64030,64030],"mapped",[32701]],[[64031,64031],"valid"],[[64032,64032],"mapped",[34322]],[[64033,64033],"valid"],[[64034,64034],"mapped",[35576]],[[64035,64036],"valid"],[[64037,64037],"mapped",[36920]],[[64038,64038],"mapped",[37117]],[[64039,64041],"valid"],[[64042,64042],"mapped",[39151]],[[64043,64043],"mapped",[39164]],[[64044,64044],"mapped",[39208]],[[64045,64045],"mapped",[40372]],[[64046,64046],"mapped",[37086]],[[64047,64047],"mapped",[38583]],[[64048,64048],"mapped",[20398]],[[64049,64049],"mapped",[20711]],[[64050,64050],"mapped",[20813]],[[64051,64051],"mapped",[21193]],[[64052,64052],"mapped",[21220]],[[64053,64053],"mapped",[21329]],[[64054,64054],"mapped",[21917]],[[64055,64055],"mapped",[22022]],[[64056,64056],"mapped",[22120]],[[64057,64057],"mapped",[22592]],[[64058,64058],"mapped",[22696]],[[64059,64059],"mapped",[23652]],[[64060,64060],"mapped",[23662]],[[64061,64061],"mapped",[24724]],[[64062,64062],"mapped",[24936]],[[64063,64063],"mapped",[24974]],[[64064,64064],"mapped",[25074]],[[64065,64065],"mapped",[25935]],[[64066,64066],"mapped",[26082]],[[64067,64067],"mapped",[26257]],[[64068,64068],"mapped",[26757]],[[64069,64069],"mapped",[28023]],[[64070,64070],"mapped",[28186]],[[64071,64071],"mapped",[28450]],[[64072,64072],"mapped",[29038]],[[64073,64073],"mapped",[29227]],[[64074,64074],"mapped",[29730]],[[64075,64075],"mapped",[30865]],[[64076,64076],"mapped",[31038]],[[64077,64077],"mapped",[31049]],[[64078,64078],"mapped",[31048]],[[64079,64079],"mapped",[31056]],[[64080,64080],"mapped",[31062]],[[64081,64081],"mapped",[31069]],[[64082,64082],"mapped",[31117]],[[64083,64083],"mapped",[31118]],[[64084,64084],"mapped",[31296]],[[64085,64085],"mapped",[31361]],[[64086,64086],"mapped",[31680]],[[64087,64087],"mapped",[32244]],[[64088,64088],"mapped",[32265]],[[64089,64089],"mapped",[32321]],[[64090,64090],"mapped",[32626]],[[64091,64091],"mapped",[32773]],[[64092,64092],"mapped",[33261]],[[64093,64094],"mapped",[33401]],[[64095,64095],"mapped",[33879]],[[64096,64096],"mapped",[35088]],[[64097,64097],"mapped",[35222]],[[64098,64098],"mapped",[35585]],[[64099,64099],"mapped",[35641]],[[64100,64100],"mapped",[36051]],[[64101,64101],"mapped",[36104]],[[64102,64102],"mapped",[36790]],[[64103,64103],"mapped",[36920]],[[64104,64104],"mapped",[38627]],[[64105,64105],"mapped",[38911]],[[64106,64106],"mapped",[38971]],[[64107,64107],"mapped",[24693]],[[64108,64108],"mapped",[148206]],[[64109,64109],"mapped",[33304]],[[64110,64111],"disallowed"],[[64112,64112],"mapped",[20006]],[[64113,64113],"mapped",[20917]],[[64114,64114],"mapped",[20840]],[[64115,64115],"mapped",[20352]],[[64116,64116],"mapped",[20805]],[[64117,64117],"mapped",[20864]],[[64118,64118],"mapped",[21191]],[[64119,64119],"mapped",[21242]],[[64120,64120],"mapped",[21917]],[[64121,64121],"mapped",[21845]],[[64122,64122],"mapped",[21913]],[[64123,64123],"mapped",[21986]],[[64124,64124],"mapped",[22618]],[[64125,64125],"mapped",[22707]],[[64126,64126],"mapped",[22852]],[[64127,64127],"mapped",[22868]],[[64128,64128],"mapped",[23138]],[[64129,64129],"mapped",[23336]],[[64130,64130],"mapped",[24274]],[[64131,64131],"mapped",[24281]],[[64132,64132],"mapped",[24425]],[[64133,64133],"mapped",[24493]],[[64134,64134],"mapped",[24792]],[[64135,64135],"mapped",[24910]],[[64136,64136],"mapped",[24840]],[[64137,64137],"mapped",[24974]],[[64138,64138],"mapped",[24928]],[[64139,64139],"mapped",[25074]],[[64140,64140],"mapped",[25140]],[[64141,64141],"mapped",[25540]],[[64142,64142],"mapped",[25628]],[[64143,64143],"mapped",[25682]],[[64144,64144],"mapped",[25942]],[[64145,64145],"mapped",[26228]],[[64146,64146],"mapped",[26391]],[[64147,64147],"mapped",[26395]],[[64148,64148],"mapped",[26454]],[[64149,64149],"mapped",[27513]],[[64150,64150],"mapped",[27578]],[[64151,64151],"mapped",[27969]],[[64152,64152],"mapped",[28379]],[[64153,64153],"mapped",[28363]],[[64154,64154],"mapped",[28450]],[[64155,64155],"mapped",[28702]],[[64156,64156],"mapped",[29038]],[[64157,64157],"mapped",[30631]],[[64158,64158],"mapped",[29237]],[[64159,64159],"mapped",[29359]],[[64160,64160],"mapped",[29482]],[[64161,64161],"mapped",[29809]],[[64162,64162],"mapped",[29958]],[[64163,64163],"mapped",[30011]],[[64164,64164],"mapped",[30237]],[[64165,64165],"mapped",[30239]],[[64166,64166],"mapped",[30410]],[[64167,64167],"mapped",[30427]],[[64168,64168],"mapped",[30452]],[[64169,64169],"mapped",[30538]],[[64170,64170],"mapped",[30528]],[[64171,64171],"mapped",[30924]],[[64172,64172],"mapped",[31409]],[[64173,64173],"mapped",[31680]],[[64174,64174],"mapped",[31867]],[[64175,64175],"mapped",[32091]],[[64176,64176],"mapped",[32244]],[[64177,64177],"mapped",[32574]],[[64178,64178],"mapped",[32773]],[[64179,64179],"mapped",[33618]],[[64180,64180],"mapped",[33775]],[[64181,64181],"mapped",[34681]],[[64182,64182],"mapped",[35137]],[[64183,64183],"mapped",[35206]],[[64184,64184],"mapped",[35222]],[[64185,64185],"mapped",[35519]],[[64186,64186],"mapped",[35576]],[[64187,64187],"mapped",[35531]],[[64188,64188],"mapped",[35585]],[[64189,64189],"mapped",[35582]],[[64190,64190],"mapped",[35565]],[[64191,64191],"mapped",[35641]],[[64192,64192],"mapped",[35722]],[[64193,64193],"mapped",[36104]],[[64194,64194],"mapped",[36664]],[[64195,64195],"mapped",[36978]],[[64196,64196],"mapped",[37273]],[[64197,64197],"mapped",[37494]],[[64198,64198],"mapped",[38524]],[[64199,64199],"mapped",[38627]],[[64200,64200],"mapped",[38742]],[[64201,64201],"mapped",[38875]],[[64202,64202],"mapped",[38911]],[[64203,64203],"mapped",[38923]],[[64204,64204],"mapped",[38971]],[[64205,64205],"mapped",[39698]],[[64206,64206],"mapped",[40860]],[[64207,64207],"mapped",[141386]],[[64208,64208],"mapped",[141380]],[[64209,64209],"mapped",[144341]],[[64210,64210],"mapped",[15261]],[[64211,64211],"mapped",[16408]],[[64212,64212],"mapped",[16441]],[[64213,64213],"mapped",[152137]],[[64214,64214],"mapped",[154832]],[[64215,64215],"mapped",[163539]],[[64216,64216],"mapped",[40771]],[[64217,64217],"mapped",[40846]],[[64218,64255],"disallowed"],[[64256,64256],"mapped",[102,102]],[[64257,64257],"mapped",[102,105]],[[64258,64258],"mapped",[102,108]],[[64259,64259],"mapped",[102,102,105]],[[64260,64260],"mapped",[102,102,108]],[[64261,64262],"mapped",[115,116]],[[64263,64274],"disallowed"],[[64275,64275],"mapped",[1396,1398]],[[64276,64276],"mapped",[1396,1381]],[[64277,64277],"mapped",[1396,1387]],[[64278,64278],"mapped",[1406,1398]],[[64279,64279],"mapped",[1396,1389]],[[64280,64284],"disallowed"],[[64285,64285],"mapped",[1497,1460]],[[64286,64286],"valid"],[[64287,64287],"mapped",[1522,1463]],[[64288,64288],"mapped",[1506]],[[64289,64289],"mapped",[1488]],[[64290,64290],"mapped",[1491]],[[64291,64291],"mapped",[1492]],[[64292,64292],"mapped",[1499]],[[64293,64293],"mapped",[1500]],[[64294,64294],"mapped",[1501]],[[64295,64295],"mapped",[1512]],[[64296,64296],"mapped",[1514]],[[64297,64297],"disallowed_STD3_mapped",[43]],[[64298,64298],"mapped",[1513,1473]],[[64299,64299],"mapped",[1513,1474]],[[64300,64300],"mapped",[1513,1468,1473]],[[64301,64301],"mapped",[1513,1468,1474]],[[64302,64302],"mapped",[1488,1463]],[[64303,64303],"mapped",[1488,1464]],[[64304,64304],"mapped",[1488,1468]],[[64305,64305],"mapped",[1489,1468]],[[64306,64306],"mapped",[1490,1468]],[[64307,64307],"mapped",[1491,1468]],[[64308,64308],"mapped",[1492,1468]],[[64309,64309],"mapped",[1493,1468]],[[64310,64310],"mapped",[1494,1468]],[[64311,64311],"disallowed"],[[64312,64312],"mapped",[1496,1468]],[[64313,64313],"mapped",[1497,1468]],[[64314,64314],"mapped",[1498,1468]],[[64315,64315],"mapped",[1499,1468]],[[64316,64316],"mapped",[1500,1468]],[[64317,64317],"disallowed"],[[64318,64318],"mapped",[1502,1468]],[[64319,64319],"disallowed"],[[64320,64320],"mapped",[1504,1468]],[[64321,64321],"mapped",[1505,1468]],[[64322,64322],"disallowed"],[[64323,64323],"mapped",[1507,1468]],[[64324,64324],"mapped",[1508,1468]],[[64325,64325],"disallowed"],[[64326,64326],"mapped",[1510,1468]],[[64327,64327],"mapped",[1511,1468]],[[64328,64328],"mapped",[1512,1468]],[[64329,64329],"mapped",[1513,1468]],[[64330,64330],"mapped",[1514,1468]],[[64331,64331],"mapped",[1493,1465]],[[64332,64332],"mapped",[1489,1471]],[[64333,64333],"mapped",[1499,1471]],[[64334,64334],"mapped",[1508,1471]],[[64335,64335],"mapped",[1488,1500]],[[64336,64337],"mapped",[1649]],[[64338,64341],"mapped",[1659]],[[64342,64345],"mapped",[1662]],[[64346,64349],"mapped",[1664]],[[64350,64353],"mapped",[1658]],[[64354,64357],"mapped",[1663]],[[64358,64361],"mapped",[1657]],[[64362,64365],"mapped",[1700]],[[64366,64369],"mapped",[1702]],[[64370,64373],"mapped",[1668]],[[64374,64377],"mapped",[1667]],[[64378,64381],"mapped",[1670]],[[64382,64385],"mapped",[1671]],[[64386,64387],"mapped",[1677]],[[64388,64389],"mapped",[1676]],[[64390,64391],"mapped",[1678]],[[64392,64393],"mapped",[1672]],[[64394,64395],"mapped",[1688]],[[64396,64397],"mapped",[1681]],[[64398,64401],"mapped",[1705]],[[64402,64405],"mapped",[1711]],[[64406,64409],"mapped",[1715]],[[64410,64413],"mapped",[1713]],[[64414,64415],"mapped",[1722]],[[64416,64419],"mapped",[1723]],[[64420,64421],"mapped",[1728]],[[64422,64425],"mapped",[1729]],[[64426,64429],"mapped",[1726]],[[64430,64431],"mapped",[1746]],[[64432,64433],"mapped",[1747]],[[64434,64449],"valid",[],"NV8"],[[64450,64466],"disallowed"],[[64467,64470],"mapped",[1709]],[[64471,64472],"mapped",[1735]],[[64473,64474],"mapped",[1734]],[[64475,64476],"mapped",[1736]],[[64477,64477],"mapped",[1735,1652]],[[64478,64479],"mapped",[1739]],[[64480,64481],"mapped",[1733]],[[64482,64483],"mapped",[1737]],[[64484,64487],"mapped",[1744]],[[64488,64489],"mapped",[1609]],[[64490,64491],"mapped",[1574,1575]],[[64492,64493],"mapped",[1574,1749]],[[64494,64495],"mapped",[1574,1608]],[[64496,64497],"mapped",[1574,1735]],[[64498,64499],"mapped",[1574,1734]],[[64500,64501],"mapped",[1574,1736]],[[64502,64504],"mapped",[1574,1744]],[[64505,64507],"mapped",[1574,1609]],[[64508,64511],"mapped",[1740]],[[64512,64512],"mapped",[1574,1580]],[[64513,64513],"mapped",[1574,1581]],[[64514,64514],"mapped",[1574,1605]],[[64515,64515],"mapped",[1574,1609]],[[64516,64516],"mapped",[1574,1610]],[[64517,64517],"mapped",[1576,1580]],[[64518,64518],"mapped",[1576,1581]],[[64519,64519],"mapped",[1576,1582]],[[64520,64520],"mapped",[1576,1605]],[[64521,64521],"mapped",[1576,1609]],[[64522,64522],"mapped",[1576,1610]],[[64523,64523],"mapped",[1578,1580]],[[64524,64524],"mapped",[1578,1581]],[[64525,64525],"mapped",[1578,1582]],[[64526,64526],"mapped",[1578,1605]],[[64527,64527],"mapped",[1578,1609]],[[64528,64528],"mapped",[1578,1610]],[[64529,64529],"mapped",[1579,1580]],[[64530,64530],"mapped",[1579,1605]],[[64531,64531],"mapped",[1579,1609]],[[64532,64532],"mapped",[1579,1610]],[[64533,64533],"mapped",[1580,1581]],[[64534,64534],"mapped",[1580,1605]],[[64535,64535],"mapped",[1581,1580]],[[64536,64536],"mapped",[1581,1605]],[[64537,64537],"mapped",[1582,1580]],[[64538,64538],"mapped",[1582,1581]],[[64539,64539],"mapped",[1582,1605]],[[64540,64540],"mapped",[1587,1580]],[[64541,64541],"mapped",[1587,1581]],[[64542,64542],"mapped",[1587,1582]],[[64543,64543],"mapped",[1587,1605]],[[64544,64544],"mapped",[1589,1581]],[[64545,64545],"mapped",[1589,1605]],[[64546,64546],"mapped",[1590,1580]],[[64547,64547],"mapped",[1590,1581]],[[64548,64548],"mapped",[1590,1582]],[[64549,64549],"mapped",[1590,1605]],[[64550,64550],"mapped",[1591,1581]],[[64551,64551],"mapped",[1591,1605]],[[64552,64552],"mapped",[1592,1605]],[[64553,64553],"mapped",[1593,1580]],[[64554,64554],"mapped",[1593,1605]],[[64555,64555],"mapped",[1594,1580]],[[64556,64556],"mapped",[1594,1605]],[[64557,64557],"mapped",[1601,1580]],[[64558,64558],"mapped",[1601,1581]],[[64559,64559],"mapped",[1601,1582]],[[64560,64560],"mapped",[1601,1605]],[[64561,64561],"mapped",[1601,1609]],[[64562,64562],"mapped",[1601,1610]],[[64563,64563],"mapped",[1602,1581]],[[64564,64564],"mapped",[1602,1605]],[[64565,64565],"mapped",[1602,1609]],[[64566,64566],"mapped",[1602,1610]],[[64567,64567],"mapped",[1603,1575]],[[64568,64568],"mapped",[1603,1580]],[[64569,64569],"mapped",[1603,1581]],[[64570,64570],"mapped",[1603,1582]],[[64571,64571],"mapped",[1603,1604]],[[64572,64572],"mapped",[1603,1605]],[[64573,64573],"mapped",[1603,1609]],[[64574,64574],"mapped",[1603,1610]],[[64575,64575],"mapped",[1604,1580]],[[64576,64576],"mapped",[1604,1581]],[[64577,64577],"mapped",[1604,1582]],[[64578,64578],"mapped",[1604,1605]],[[64579,64579],"mapped",[1604,1609]],[[64580,64580],"mapped",[1604,1610]],[[64581,64581],"mapped",[1605,1580]],[[64582,64582],"mapped",[1605,1581]],[[64583,64583],"mapped",[1605,1582]],[[64584,64584],"mapped",[1605,1605]],[[64585,64585],"mapped",[1605,1609]],[[64586,64586],"mapped",[1605,1610]],[[64587,64587],"mapped",[1606,1580]],[[64588,64588],"mapped",[1606,1581]],[[64589,64589],"mapped",[1606,1582]],[[64590,64590],"mapped",[1606,1605]],[[64591,64591],"mapped",[1606,1609]],[[64592,64592],"mapped",[1606,1610]],[[64593,64593],"mapped",[1607,1580]],[[64594,64594],"mapped",[1607,1605]],[[64595,64595],"mapped",[1607,1609]],[[64596,64596],"mapped",[1607,1610]],[[64597,64597],"mapped",[1610,1580]],[[64598,64598],"mapped",[1610,1581]],[[64599,64599],"mapped",[1610,1582]],[[64600,64600],"mapped",[1610,1605]],[[64601,64601],"mapped",[1610,1609]],[[64602,64602],"mapped",[1610,1610]],[[64603,64603],"mapped",[1584,1648]],[[64604,64604],"mapped",[1585,1648]],[[64605,64605],"mapped",[1609,1648]],[[64606,64606],"disallowed_STD3_mapped",[32,1612,1617]],[[64607,64607],"disallowed_STD3_mapped",[32,1613,1617]],[[64608,64608],"disallowed_STD3_mapped",[32,1614,1617]],[[64609,64609],"disallowed_STD3_mapped",[32,1615,1617]],[[64610,64610],"disallowed_STD3_mapped",[32,1616,1617]],[[64611,64611],"disallowed_STD3_mapped",[32,1617,1648]],[[64612,64612],"mapped",[1574,1585]],[[64613,64613],"mapped",[1574,1586]],[[64614,64614],"mapped",[1574,1605]],[[64615,64615],"mapped",[1574,1606]],[[64616,64616],"mapped",[1574,1609]],[[64617,64617],"mapped",[1574,1610]],[[64618,64618],"mapped",[1576,1585]],[[64619,64619],"mapped",[1576,1586]],[[64620,64620],"mapped",[1576,1605]],[[64621,64621],"mapped",[1576,1606]],[[64622,64622],"mapped",[1576,1609]],[[64623,64623],"mapped",[1576,1610]],[[64624,64624],"mapped",[1578,1585]],[[64625,64625],"mapped",[1578,1586]],[[64626,64626],"mapped",[1578,1605]],[[64627,64627],"mapped",[1578,1606]],[[64628,64628],"mapped",[1578,1609]],[[64629,64629],"mapped",[1578,1610]],[[64630,64630],"mapped",[1579,1585]],[[64631,64631],"mapped",[1579,1586]],[[64632,64632],"mapped",[1579,1605]],[[64633,64633],"mapped",[1579,1606]],[[64634,64634],"mapped",[1579,1609]],[[64635,64635],"mapped",[1579,1610]],[[64636,64636],"mapped",[1601,1609]],[[64637,64637],"mapped",[1601,1610]],[[64638,64638],"mapped",[1602,1609]],[[64639,64639],"mapped",[1602,1610]],[[64640,64640],"mapped",[1603,1575]],[[64641,64641],"mapped",[1603,1604]],[[64642,64642],"mapped",[1603,1605]],[[64643,64643],"mapped",[1603,1609]],[[64644,64644],"mapped",[1603,1610]],[[64645,64645],"mapped",[1604,1605]],[[64646,64646],"mapped",[1604,1609]],[[64647,64647],"mapped",[1604,1610]],[[64648,64648],"mapped",[1605,1575]],[[64649,64649],"mapped",[1605,1605]],[[64650,64650],"mapped",[1606,1585]],[[64651,64651],"mapped",[1606,1586]],[[64652,64652],"mapped",[1606,1605]],[[64653,64653],"mapped",[1606,1606]],[[64654,64654],"mapped",[1606,1609]],[[64655,64655],"mapped",[1606,1610]],[[64656,64656],"mapped",[1609,1648]],[[64657,64657],"mapped",[1610,1585]],[[64658,64658],"mapped",[1610,1586]],[[64659,64659],"mapped",[1610,1605]],[[64660,64660],"mapped",[1610,1606]],[[64661,64661],"mapped",[1610,1609]],[[64662,64662],"mapped",[1610,1610]],[[64663,64663],"mapped",[1574,1580]],[[64664,64664],"mapped",[1574,1581]],[[64665,64665],"mapped",[1574,1582]],[[64666,64666],"mapped",[1574,1605]],[[64667,64667],"mapped",[1574,1607]],[[64668,64668],"mapped",[1576,1580]],[[64669,64669],"mapped",[1576,1581]],[[64670,64670],"mapped",[1576,1582]],[[64671,64671],"mapped",[1576,1605]],[[64672,64672],"mapped",[1576,1607]],[[64673,64673],"mapped",[1578,1580]],[[64674,64674],"mapped",[1578,1581]],[[64675,64675],"mapped",[1578,1582]],[[64676,64676],"mapped",[1578,1605]],[[64677,64677],"mapped",[1578,1607]],[[64678,64678],"mapped",[1579,1605]],[[64679,64679],"mapped",[1580,1581]],[[64680,64680],"mapped",[1580,1605]],[[64681,64681],"mapped",[1581,1580]],[[64682,64682],"mapped",[1581,1605]],[[64683,64683],"mapped",[1582,1580]],[[64684,64684],"mapped",[1582,1605]],[[64685,64685],"mapped",[1587,1580]],[[64686,64686],"mapped",[1587,1581]],[[64687,64687],"mapped",[1587,1582]],[[64688,64688],"mapped",[1587,1605]],[[64689,64689],"mapped",[1589,1581]],[[64690,64690],"mapped",[1589,1582]],[[64691,64691],"mapped",[1589,1605]],[[64692,64692],"mapped",[1590,1580]],[[64693,64693],"mapped",[1590,1581]],[[64694,64694],"mapped",[1590,1582]],[[64695,64695],"mapped",[1590,1605]],[[64696,64696],"mapped",[1591,1581]],[[64697,64697],"mapped",[1592,1605]],[[64698,64698],"mapped",[1593,1580]],[[64699,64699],"mapped",[1593,1605]],[[64700,64700],"mapped",[1594,1580]],[[64701,64701],"mapped",[1594,1605]],[[64702,64702],"mapped",[1601,1580]],[[64703,64703],"mapped",[1601,1581]],[[64704,64704],"mapped",[1601,1582]],[[64705,64705],"mapped",[1601,1605]],[[64706,64706],"mapped",[1602,1581]],[[64707,64707],"mapped",[1602,1605]],[[64708,64708],"mapped",[1603,1580]],[[64709,64709],"mapped",[1603,1581]],[[64710,64710],"mapped",[1603,1582]],[[64711,64711],"mapped",[1603,1604]],[[64712,64712],"mapped",[1603,1605]],[[64713,64713],"mapped",[1604,1580]],[[64714,64714],"mapped",[1604,1581]],[[64715,64715],"mapped",[1604,1582]],[[64716,64716],"mapped",[1604,1605]],[[64717,64717],"mapped",[1604,1607]],[[64718,64718],"mapped",[1605,1580]],[[64719,64719],"mapped",[1605,1581]],[[64720,64720],"mapped",[1605,1582]],[[64721,64721],"mapped",[1605,1605]],[[64722,64722],"mapped",[1606,1580]],[[64723,64723],"mapped",[1606,1581]],[[64724,64724],"mapped",[1606,1582]],[[64725,64725],"mapped",[1606,1605]],[[64726,64726],"mapped",[1606,1607]],[[64727,64727],"mapped",[1607,1580]],[[64728,64728],"mapped",[1607,1605]],[[64729,64729],"mapped",[1607,1648]],[[64730,64730],"mapped",[1610,1580]],[[64731,64731],"mapped",[1610,1581]],[[64732,64732],"mapped",[1610,1582]],[[64733,64733],"mapped",[1610,1605]],[[64734,64734],"mapped",[1610,1607]],[[64735,64735],"mapped",[1574,1605]],[[64736,64736],"mapped",[1574,1607]],[[64737,64737],"mapped",[1576,1605]],[[64738,64738],"mapped",[1576,1607]],[[64739,64739],"mapped",[1578,1605]],[[64740,64740],"mapped",[1578,1607]],[[64741,64741],"mapped",[1579,1605]],[[64742,64742],"mapped",[1579,1607]],[[64743,64743],"mapped",[1587,1605]],[[64744,64744],"mapped",[1587,1607]],[[64745,64745],"mapped",[1588,1605]],[[64746,64746],"mapped",[1588,1607]],[[64747,64747],"mapped",[1603,1604]],[[64748,64748],"mapped",[1603,1605]],[[64749,64749],"mapped",[1604,1605]],[[64750,64750],"mapped",[1606,1605]],[[64751,64751],"mapped",[1606,1607]],[[64752,64752],"mapped",[1610,1605]],[[64753,64753],"mapped",[1610,1607]],[[64754,64754],"mapped",[1600,1614,1617]],[[64755,64755],"mapped",[1600,1615,1617]],[[64756,64756],"mapped",[1600,1616,1617]],[[64757,64757],"mapped",[1591,1609]],[[64758,64758],"mapped",[1591,1610]],[[64759,64759],"mapped",[1593,1609]],[[64760,64760],"mapped",[1593,1610]],[[64761,64761],"mapped",[1594,1609]],[[64762,64762],"mapped",[1594,1610]],[[64763,64763],"mapped",[1587,1609]],[[64764,64764],"mapped",[1587,1610]],[[64765,64765],"mapped",[1588,1609]],[[64766,64766],"mapped",[1588,1610]],[[64767,64767],"mapped",[1581,1609]],[[64768,64768],"mapped",[1581,1610]],[[64769,64769],"mapped",[1580,1609]],[[64770,64770],"mapped",[1580,1610]],[[64771,64771],"mapped",[1582,1609]],[[64772,64772],"mapped",[1582,1610]],[[64773,64773],"mapped",[1589,1609]],[[64774,64774],"mapped",[1589,1610]],[[64775,64775],"mapped",[1590,1609]],[[64776,64776],"mapped",[1590,1610]],[[64777,64777],"mapped",[1588,1580]],[[64778,64778],"mapped",[1588,1581]],[[64779,64779],"mapped",[1588,1582]],[[64780,64780],"mapped",[1588,1605]],[[64781,64781],"mapped",[1588,1585]],[[64782,64782],"mapped",[1587,1585]],[[64783,64783],"mapped",[1589,1585]],[[64784,64784],"mapped",[1590,1585]],[[64785,64785],"mapped",[1591,1609]],[[64786,64786],"mapped",[1591,1610]],[[64787,64787],"mapped",[1593,1609]],[[64788,64788],"mapped",[1593,1610]],[[64789,64789],"mapped",[1594,1609]],[[64790,64790],"mapped",[1594,1610]],[[64791,64791],"mapped",[1587,1609]],[[64792,64792],"mapped",[1587,1610]],[[64793,64793],"mapped",[1588,1609]],[[64794,64794],"mapped",[1588,1610]],[[64795,64795],"mapped",[1581,1609]],[[64796,64796],"mapped",[1581,1610]],[[64797,64797],"mapped",[1580,1609]],[[64798,64798],"mapped",[1580,1610]],[[64799,64799],"mapped",[1582,1609]],[[64800,64800],"mapped",[1582,1610]],[[64801,64801],"mapped",[1589,1609]],[[64802,64802],"mapped",[1589,1610]],[[64803,64803],"mapped",[1590,1609]],[[64804,64804],"mapped",[1590,1610]],[[64805,64805],"mapped",[1588,1580]],[[64806,64806],"mapped",[1588,1581]],[[64807,64807],"mapped",[1588,1582]],[[64808,64808],"mapped",[1588,1605]],[[64809,64809],"mapped",[1588,1585]],[[64810,64810],"mapped",[1587,1585]],[[64811,64811],"mapped",[1589,1585]],[[64812,64812],"mapped",[1590,1585]],[[64813,64813],"mapped",[1588,1580]],[[64814,64814],"mapped",[1588,1581]],[[64815,64815],"mapped",[1588,1582]],[[64816,64816],"mapped",[1588,1605]],[[64817,64817],"mapped",[1587,1607]],[[64818,64818],"mapped",[1588,1607]],[[64819,64819],"mapped",[1591,1605]],[[64820,64820],"mapped",[1587,1580]],[[64821,64821],"mapped",[1587,1581]],[[64822,64822],"mapped",[1587,1582]],[[64823,64823],"mapped",[1588,1580]],[[64824,64824],"mapped",[1588,1581]],[[64825,64825],"mapped",[1588,1582]],[[64826,64826],"mapped",[1591,1605]],[[64827,64827],"mapped",[1592,1605]],[[64828,64829],"mapped",[1575,1611]],[[64830,64831],"valid",[],"NV8"],[[64832,64847],"disallowed"],[[64848,64848],"mapped",[1578,1580,1605]],[[64849,64850],"mapped",[1578,1581,1580]],[[64851,64851],"mapped",[1578,1581,1605]],[[64852,64852],"mapped",[1578,1582,1605]],[[64853,64853],"mapped",[1578,1605,1580]],[[64854,64854],"mapped",[1578,1605,1581]],[[64855,64855],"mapped",[1578,1605,1582]],[[64856,64857],"mapped",[1580,1605,1581]],[[64858,64858],"mapped",[1581,1605,1610]],[[64859,64859],"mapped",[1581,1605,1609]],[[64860,64860],"mapped",[1587,1581,1580]],[[64861,64861],"mapped",[1587,1580,1581]],[[64862,64862],"mapped",[1587,1580,1609]],[[64863,64864],"mapped",[1587,1605,1581]],[[64865,64865],"mapped",[1587,1605,1580]],[[64866,64867],"mapped",[1587,1605,1605]],[[64868,64869],"mapped",[1589,1581,1581]],[[64870,64870],"mapped",[1589,1605,1605]],[[64871,64872],"mapped",[1588,1581,1605]],[[64873,64873],"mapped",[1588,1580,1610]],[[64874,64875],"mapped",[1588,1605,1582]],[[64876,64877],"mapped",[1588,1605,1605]],[[64878,64878],"mapped",[1590,1581,1609]],[[64879,64880],"mapped",[1590,1582,1605]],[[64881,64882],"mapped",[1591,1605,1581]],[[64883,64883],"mapped",[1591,1605,1605]],[[64884,64884],"mapped",[1591,1605,1610]],[[64885,64885],"mapped",[1593,1580,1605]],[[64886,64887],"mapped",[1593,1605,1605]],[[64888,64888],"mapped",[1593,1605,1609]],[[64889,64889],"mapped",[1594,1605,1605]],[[64890,64890],"mapped",[1594,1605,1610]],[[64891,64891],"mapped",[1594,1605,1609]],[[64892,64893],"mapped",[1601,1582,1605]],[[64894,64894],"mapped",[1602,1605,1581]],[[64895,64895],"mapped",[1602,1605,1605]],[[64896,64896],"mapped",[1604,1581,1605]],[[64897,64897],"mapped",[1604,1581,1610]],[[64898,64898],"mapped",[1604,1581,1609]],[[64899,64900],"mapped",[1604,1580,1580]],[[64901,64902],"mapped",[1604,1582,1605]],[[64903,64904],"mapped",[1604,1605,1581]],[[64905,64905],"mapped",[1605,1581,1580]],[[64906,64906],"mapped",[1605,1581,1605]],[[64907,64907],"mapped",[1605,1581,1610]],[[64908,64908],"mapped",[1605,1580,1581]],[[64909,64909],"mapped",[1605,1580,1605]],[[64910,64910],"mapped",[1605,1582,1580]],[[64911,64911],"mapped",[1605,1582,1605]],[[64912,64913],"disallowed"],[[64914,64914],"mapped",[1605,1580,1582]],[[64915,64915],"mapped",[1607,1605,1580]],[[64916,64916],"mapped",[1607,1605,1605]],[[64917,64917],"mapped",[1606,1581,1605]],[[64918,64918],"mapped",[1606,1581,1609]],[[64919,64920],"mapped",[1606,1580,1605]],[[64921,64921],"mapped",[1606,1580,1609]],[[64922,64922],"mapped",[1606,1605,1610]],[[64923,64923],"mapped",[1606,1605,1609]],[[64924,64925],"mapped",[1610,1605,1605]],[[64926,64926],"mapped",[1576,1582,1610]],[[64927,64927],"mapped",[1578,1580,1610]],[[64928,64928],"mapped",[1578,1580,1609]],[[64929,64929],"mapped",[1578,1582,1610]],[[64930,64930],"mapped",[1578,1582,1609]],[[64931,64931],"mapped",[1578,1605,1610]],[[64932,64932],"mapped",[1578,1605,1609]],[[64933,64933],"mapped",[1580,1605,1610]],[[64934,64934],"mapped",[1580,1581,1609]],[[64935,64935],"mapped",[1580,1605,1609]],[[64936,64936],"mapped",[1587,1582,1609]],[[64937,64937],"mapped",[1589,1581,1610]],[[64938,64938],"mapped",[1588,1581,1610]],[[64939,64939],"mapped",[1590,1581,1610]],[[64940,64940],"mapped",[1604,1580,1610]],[[64941,64941],"mapped",[1604,1605,1610]],[[64942,64942],"mapped",[1610,1581,1610]],[[64943,64943],"mapped",[1610,1580,1610]],[[64944,64944],"mapped",[1610,1605,1610]],[[64945,64945],"mapped",[1605,1605,1610]],[[64946,64946],"mapped",[1602,1605,1610]],[[64947,64947],"mapped",[1606,1581,1610]],[[64948,64948],"mapped",[1602,1605,1581]],[[64949,64949],"mapped",[1604,1581,1605]],[[64950,64950],"mapped",[1593,1605,1610]],[[64951,64951],"mapped",[1603,1605,1610]],[[64952,64952],"mapped",[1606,1580,1581]],[[64953,64953],"mapped",[1605,1582,1610]],[[64954,64954],"mapped",[1604,1580,1605]],[[64955,64955],"mapped",[1603,1605,1605]],[[64956,64956],"mapped",[1604,1580,1605]],[[64957,64957],"mapped",[1606,1580,1581]],[[64958,64958],"mapped",[1580,1581,1610]],[[64959,64959],"mapped",[1581,1580,1610]],[[64960,64960],"mapped",[1605,1580,1610]],[[64961,64961],"mapped",[1601,1605,1610]],[[64962,64962],"mapped",[1576,1581,1610]],[[64963,64963],"mapped",[1603,1605,1605]],[[64964,64964],"mapped",[1593,1580,1605]],[[64965,64965],"mapped",[1589,1605,1605]],[[64966,64966],"mapped",[1587,1582,1610]],[[64967,64967],"mapped",[1606,1580,1610]],[[64968,64975],"disallowed"],[[64976,65007],"disallowed"],[[65008,65008],"mapped",[1589,1604,1746]],[[65009,65009],"mapped",[1602,1604,1746]],[[65010,65010],"mapped",[1575,1604,1604,1607]],[[65011,65011],"mapped",[1575,1603,1576,1585]],[[65012,65012],"mapped",[1605,1581,1605,1583]],[[65013,65013],"mapped",[1589,1604,1593,1605]],[[65014,65014],"mapped",[1585,1587,1608,1604]],[[65015,65015],"mapped",[1593,1604,1610,1607]],[[65016,65016],"mapped",[1608,1587,1604,1605]],[[65017,65017],"mapped",[1589,1604,1609]],[[65018,65018],"disallowed_STD3_mapped",[1589,1604,1609,32,1575,1604,1604,1607,32,1593,1604,1610,1607,32,1608,1587,1604,1605]],[[65019,65019],"disallowed_STD3_mapped",[1580,1604,32,1580,1604,1575,1604,1607]],[[65020,65020],"mapped",[1585,1740,1575,1604]],[[65021,65021],"valid",[],"NV8"],[[65022,65023],"disallowed"],[[65024,65039],"ignored"],[[65040,65040],"disallowed_STD3_mapped",[44]],[[65041,65041],"mapped",[12289]],[[65042,65042],"disallowed"],[[65043,65043],"disallowed_STD3_mapped",[58]],[[65044,65044],"disallowed_STD3_mapped",[59]],[[65045,65045],"disallowed_STD3_mapped",[33]],[[65046,65046],"disallowed_STD3_mapped",[63]],[[65047,65047],"mapped",[12310]],[[65048,65048],"mapped",[12311]],[[65049,65049],"disallowed"],[[65050,65055],"disallowed"],[[65056,65059],"valid"],[[65060,65062],"valid"],[[65063,65069],"valid"],[[65070,65071],"valid"],[[65072,65072],"disallowed"],[[65073,65073],"mapped",[8212]],[[65074,65074],"mapped",[8211]],[[65075,65076],"disallowed_STD3_mapped",[95]],[[65077,65077],"disallowed_STD3_mapped",[40]],[[65078,65078],"disallowed_STD3_mapped",[41]],[[65079,65079],"disallowed_STD3_mapped",[123]],[[65080,65080],"disallowed_STD3_mapped",[125]],[[65081,65081],"mapped",[12308]],[[65082,65082],"mapped",[12309]],[[65083,65083],"mapped",[12304]],[[65084,65084],"mapped",[12305]],[[65085,65085],"mapped",[12298]],[[65086,65086],"mapped",[12299]],[[65087,65087],"mapped",[12296]],[[65088,65088],"mapped",[12297]],[[65089,65089],"mapped",[12300]],[[65090,65090],"mapped",[12301]],[[65091,65091],"mapped",[12302]],[[65092,65092],"mapped",[12303]],[[65093,65094],"valid",[],"NV8"],[[65095,65095],"disallowed_STD3_mapped",[91]],[[65096,65096],"disallowed_STD3_mapped",[93]],[[65097,65100],"disallowed_STD3_mapped",[32,773]],[[65101,65103],"disallowed_STD3_mapped",[95]],[[65104,65104],"disallowed_STD3_mapped",[44]],[[65105,65105],"mapped",[12289]],[[65106,65106],"disallowed"],[[65107,65107],"disallowed"],[[65108,65108],"disallowed_STD3_mapped",[59]],[[65109,65109],"disallowed_STD3_mapped",[58]],[[65110,65110],"disallowed_STD3_mapped",[63]],[[65111,65111],"disallowed_STD3_mapped",[33]],[[65112,65112],"mapped",[8212]],[[65113,65113],"disallowed_STD3_mapped",[40]],[[65114,65114],"disallowed_STD3_mapped",[41]],[[65115,65115],"disallowed_STD3_mapped",[123]],[[65116,65116],"disallowed_STD3_mapped",[125]],[[65117,65117],"mapped",[12308]],[[65118,65118],"mapped",[12309]],[[65119,65119],"disallowed_STD3_mapped",[35]],[[65120,65120],"disallowed_STD3_mapped",[38]],[[65121,65121],"disallowed_STD3_mapped",[42]],[[65122,65122],"disallowed_STD3_mapped",[43]],[[65123,65123],"mapped",[45]],[[65124,65124],"disallowed_STD3_mapped",[60]],[[65125,65125],"disallowed_STD3_mapped",[62]],[[65126,65126],"disallowed_STD3_mapped",[61]],[[65127,65127],"disallowed"],[[65128,65128],"disallowed_STD3_mapped",[92]],[[65129,65129],"disallowed_STD3_mapped",[36]],[[65130,65130],"disallowed_STD3_mapped",[37]],[[65131,65131],"disallowed_STD3_mapped",[64]],[[65132,65135],"disallowed"],[[65136,65136],"disallowed_STD3_mapped",[32,1611]],[[65137,65137],"mapped",[1600,1611]],[[65138,65138],"disallowed_STD3_mapped",[32,1612]],[[65139,65139],"valid"],[[65140,65140],"disallowed_STD3_mapped",[32,1613]],[[65141,65141],"disallowed"],[[65142,65142],"disallowed_STD3_mapped",[32,1614]],[[65143,65143],"mapped",[1600,1614]],[[65144,65144],"disallowed_STD3_mapped",[32,1615]],[[65145,65145],"mapped",[1600,1615]],[[65146,65146],"disallowed_STD3_mapped",[32,1616]],[[65147,65147],"mapped",[1600,1616]],[[65148,65148],"disallowed_STD3_mapped",[32,1617]],[[65149,65149],"mapped",[1600,1617]],[[65150,65150],"disallowed_STD3_mapped",[32,1618]],[[65151,65151],"mapped",[1600,1618]],[[65152,65152],"mapped",[1569]],[[65153,65154],"mapped",[1570]],[[65155,65156],"mapped",[1571]],[[65157,65158],"mapped",[1572]],[[65159,65160],"mapped",[1573]],[[65161,65164],"mapped",[1574]],[[65165,65166],"mapped",[1575]],[[65167,65170],"mapped",[1576]],[[65171,65172],"mapped",[1577]],[[65173,65176],"mapped",[1578]],[[65177,65180],"mapped",[1579]],[[65181,65184],"mapped",[1580]],[[65185,65188],"mapped",[1581]],[[65189,65192],"mapped",[1582]],[[65193,65194],"mapped",[1583]],[[65195,65196],"mapped",[1584]],[[65197,65198],"mapped",[1585]],[[65199,65200],"mapped",[1586]],[[65201,65204],"mapped",[1587]],[[65205,65208],"mapped",[1588]],[[65209,65212],"mapped",[1589]],[[65213,65216],"mapped",[1590]],[[65217,65220],"mapped",[1591]],[[65221,65224],"mapped",[1592]],[[65225,65228],"mapped",[1593]],[[65229,65232],"mapped",[1594]],[[65233,65236],"mapped",[1601]],[[65237,65240],"mapped",[1602]],[[65241,65244],"mapped",[1603]],[[65245,65248],"mapped",[1604]],[[65249,65252],"mapped",[1605]],[[65253,65256],"mapped",[1606]],[[65257,65260],"mapped",[1607]],[[65261,65262],"mapped",[1608]],[[65263,65264],"mapped",[1609]],[[65265,65268],"mapped",[1610]],[[65269,65270],"mapped",[1604,1570]],[[65271,65272],"mapped",[1604,1571]],[[65273,65274],"mapped",[1604,1573]],[[65275,65276],"mapped",[1604,1575]],[[65277,65278],"disallowed"],[[65279,65279],"ignored"],[[65280,65280],"disallowed"],[[65281,65281],"disallowed_STD3_mapped",[33]],[[65282,65282],"disallowed_STD3_mapped",[34]],[[65283,65283],"disallowed_STD3_mapped",[35]],[[65284,65284],"disallowed_STD3_mapped",[36]],[[65285,65285],"disallowed_STD3_mapped",[37]],[[65286,65286],"disallowed_STD3_mapped",[38]],[[65287,65287],"disallowed_STD3_mapped",[39]],[[65288,65288],"disallowed_STD3_mapped",[40]],[[65289,65289],"disallowed_STD3_mapped",[41]],[[65290,65290],"disallowed_STD3_mapped",[42]],[[65291,65291],"disallowed_STD3_mapped",[43]],[[65292,65292],"disallowed_STD3_mapped",[44]],[[65293,65293],"mapped",[45]],[[65294,65294],"mapped",[46]],[[65295,65295],"disallowed_STD3_mapped",[47]],[[65296,65296],"mapped",[48]],[[65297,65297],"mapped",[49]],[[65298,65298],"mapped",[50]],[[65299,65299],"mapped",[51]],[[65300,65300],"mapped",[52]],[[65301,65301],"mapped",[53]],[[65302,65302],"mapped",[54]],[[65303,65303],"mapped",[55]],[[65304,65304],"mapped",[56]],[[65305,65305],"mapped",[57]],[[65306,65306],"disallowed_STD3_mapped",[58]],[[65307,65307],"disallowed_STD3_mapped",[59]],[[65308,65308],"disallowed_STD3_mapped",[60]],[[65309,65309],"disallowed_STD3_mapped",[61]],[[65310,65310],"disallowed_STD3_mapped",[62]],[[65311,65311],"disallowed_STD3_mapped",[63]],[[65312,65312],"disallowed_STD3_mapped",[64]],[[65313,65313],"mapped",[97]],[[65314,65314],"mapped",[98]],[[65315,65315],"mapped",[99]],[[65316,65316],"mapped",[100]],[[65317,65317],"mapped",[101]],[[65318,65318],"mapped",[102]],[[65319,65319],"mapped",[103]],[[65320,65320],"mapped",[104]],[[65321,65321],"mapped",[105]],[[65322,65322],"mapped",[106]],[[65323,65323],"mapped",[107]],[[65324,65324],"mapped",[108]],[[65325,65325],"mapped",[109]],[[65326,65326],"mapped",[110]],[[65327,65327],"mapped",[111]],[[65328,65328],"mapped",[112]],[[65329,65329],"mapped",[113]],[[65330,65330],"mapped",[114]],[[65331,65331],"mapped",[115]],[[65332,65332],"mapped",[116]],[[65333,65333],"mapped",[117]],[[65334,65334],"mapped",[118]],[[65335,65335],"mapped",[119]],[[65336,65336],"mapped",[120]],[[65337,65337],"mapped",[121]],[[65338,65338],"mapped",[122]],[[65339,65339],"disallowed_STD3_mapped",[91]],[[65340,65340],"disallowed_STD3_mapped",[92]],[[65341,65341],"disallowed_STD3_mapped",[93]],[[65342,65342],"disallowed_STD3_mapped",[94]],[[65343,65343],"disallowed_STD3_mapped",[95]],[[65344,65344],"disallowed_STD3_mapped",[96]],[[65345,65345],"mapped",[97]],[[65346,65346],"mapped",[98]],[[65347,65347],"mapped",[99]],[[65348,65348],"mapped",[100]],[[65349,65349],"mapped",[101]],[[65350,65350],"mapped",[102]],[[65351,65351],"mapped",[103]],[[65352,65352],"mapped",[104]],[[65353,65353],"mapped",[105]],[[65354,65354],"mapped",[106]],[[65355,65355],"mapped",[107]],[[65356,65356],"mapped",[108]],[[65357,65357],"mapped",[109]],[[65358,65358],"mapped",[110]],[[65359,65359],"mapped",[111]],[[65360,65360],"mapped",[112]],[[65361,65361],"mapped",[113]],[[65362,65362],"mapped",[114]],[[65363,65363],"mapped",[115]],[[65364,65364],"mapped",[116]],[[65365,65365],"mapped",[117]],[[65366,65366],"mapped",[118]],[[65367,65367],"mapped",[119]],[[65368,65368],"mapped",[120]],[[65369,65369],"mapped",[121]],[[65370,65370],"mapped",[122]],[[65371,65371],"disallowed_STD3_mapped",[123]],[[65372,65372],"disallowed_STD3_mapped",[124]],[[65373,65373],"disallowed_STD3_mapped",[125]],[[65374,65374],"disallowed_STD3_mapped",[126]],[[65375,65375],"mapped",[10629]],[[65376,65376],"mapped",[10630]],[[65377,65377],"mapped",[46]],[[65378,65378],"mapped",[12300]],[[65379,65379],"mapped",[12301]],[[65380,65380],"mapped",[12289]],[[65381,65381],"mapped",[12539]],[[65382,65382],"mapped",[12530]],[[65383,65383],"mapped",[12449]],[[65384,65384],"mapped",[12451]],[[65385,65385],"mapped",[12453]],[[65386,65386],"mapped",[12455]],[[65387,65387],"mapped",[12457]],[[65388,65388],"mapped",[12515]],[[65389,65389],"mapped",[12517]],[[65390,65390],"mapped",[12519]],[[65391,65391],"mapped",[12483]],[[65392,65392],"mapped",[12540]],[[65393,65393],"mapped",[12450]],[[65394,65394],"mapped",[12452]],[[65395,65395],"mapped",[12454]],[[65396,65396],"mapped",[12456]],[[65397,65397],"mapped",[12458]],[[65398,65398],"mapped",[12459]],[[65399,65399],"mapped",[12461]],[[65400,65400],"mapped",[12463]],[[65401,65401],"mapped",[12465]],[[65402,65402],"mapped",[12467]],[[65403,65403],"mapped",[12469]],[[65404,65404],"mapped",[12471]],[[65405,65405],"mapped",[12473]],[[65406,65406],"mapped",[12475]],[[65407,65407],"mapped",[12477]],[[65408,65408],"mapped",[12479]],[[65409,65409],"mapped",[12481]],[[65410,65410],"mapped",[12484]],[[65411,65411],"mapped",[12486]],[[65412,65412],"mapped",[12488]],[[65413,65413],"mapped",[12490]],[[65414,65414],"mapped",[12491]],[[65415,65415],"mapped",[12492]],[[65416,65416],"mapped",[12493]],[[65417,65417],"mapped",[12494]],[[65418,65418],"mapped",[12495]],[[65419,65419],"mapped",[12498]],[[65420,65420],"mapped",[12501]],[[65421,65421],"mapped",[12504]],[[65422,65422],"mapped",[12507]],[[65423,65423],"mapped",[12510]],[[65424,65424],"mapped",[12511]],[[65425,65425],"mapped",[12512]],[[65426,65426],"mapped",[12513]],[[65427,65427],"mapped",[12514]],[[65428,65428],"mapped",[12516]],[[65429,65429],"mapped",[12518]],[[65430,65430],"mapped",[12520]],[[65431,65431],"mapped",[12521]],[[65432,65432],"mapped",[12522]],[[65433,65433],"mapped",[12523]],[[65434,65434],"mapped",[12524]],[[65435,65435],"mapped",[12525]],[[65436,65436],"mapped",[12527]],[[65437,65437],"mapped",[12531]],[[65438,65438],"mapped",[12441]],[[65439,65439],"mapped",[12442]],[[65440,65440],"disallowed"],[[65441,65441],"mapped",[4352]],[[65442,65442],"mapped",[4353]],[[65443,65443],"mapped",[4522]],[[65444,65444],"mapped",[4354]],[[65445,65445],"mapped",[4524]],[[65446,65446],"mapped",[4525]],[[65447,65447],"mapped",[4355]],[[65448,65448],"mapped",[4356]],[[65449,65449],"mapped",[4357]],[[65450,65450],"mapped",[4528]],[[65451,65451],"mapped",[4529]],[[65452,65452],"mapped",[4530]],[[65453,65453],"mapped",[4531]],[[65454,65454],"mapped",[4532]],[[65455,65455],"mapped",[4533]],[[65456,65456],"mapped",[4378]],[[65457,65457],"mapped",[4358]],[[65458,65458],"mapped",[4359]],[[65459,65459],"mapped",[4360]],[[65460,65460],"mapped",[4385]],[[65461,65461],"mapped",[4361]],[[65462,65462],"mapped",[4362]],[[65463,65463],"mapped",[4363]],[[65464,65464],"mapped",[4364]],[[65465,65465],"mapped",[4365]],[[65466,65466],"mapped",[4366]],[[65467,65467],"mapped",[4367]],[[65468,65468],"mapped",[4368]],[[65469,65469],"mapped",[4369]],[[65470,65470],"mapped",[4370]],[[65471,65473],"disallowed"],[[65474,65474],"mapped",[4449]],[[65475,65475],"mapped",[4450]],[[65476,65476],"mapped",[4451]],[[65477,65477],"mapped",[4452]],[[65478,65478],"mapped",[4453]],[[65479,65479],"mapped",[4454]],[[65480,65481],"disallowed"],[[65482,65482],"mapped",[4455]],[[65483,65483],"mapped",[4456]],[[65484,65484],"mapped",[4457]],[[65485,65485],"mapped",[4458]],[[65486,65486],"mapped",[4459]],[[65487,65487],"mapped",[4460]],[[65488,65489],"disallowed"],[[65490,65490],"mapped",[4461]],[[65491,65491],"mapped",[4462]],[[65492,65492],"mapped",[4463]],[[65493,65493],"mapped",[4464]],[[65494,65494],"mapped",[4465]],[[65495,65495],"mapped",[4466]],[[65496,65497],"disallowed"],[[65498,65498],"mapped",[4467]],[[65499,65499],"mapped",[4468]],[[65500,65500],"mapped",[4469]],[[65501,65503],"disallowed"],[[65504,65504],"mapped",[162]],[[65505,65505],"mapped",[163]],[[65506,65506],"mapped",[172]],[[65507,65507],"disallowed_STD3_mapped",[32,772]],[[65508,65508],"mapped",[166]],[[65509,65509],"mapped",[165]],[[65510,65510],"mapped",[8361]],[[65511,65511],"disallowed"],[[65512,65512],"mapped",[9474]],[[65513,65513],"mapped",[8592]],[[65514,65514],"mapped",[8593]],[[65515,65515],"mapped",[8594]],[[65516,65516],"mapped",[8595]],[[65517,65517],"mapped",[9632]],[[65518,65518],"mapped",[9675]],[[65519,65528],"disallowed"],[[65529,65531],"disallowed"],[[65532,65532],"disallowed"],[[65533,65533],"disallowed"],[[65534,65535],"disallowed"],[[65536,65547],"valid"],[[65548,65548],"disallowed"],[[65549,65574],"valid"],[[65575,65575],"disallowed"],[[65576,65594],"valid"],[[65595,65595],"disallowed"],[[65596,65597],"valid"],[[65598,65598],"disallowed"],[[65599,65613],"valid"],[[65614,65615],"disallowed"],[[65616,65629],"valid"],[[65630,65663],"disallowed"],[[65664,65786],"valid"],[[65787,65791],"disallowed"],[[65792,65794],"valid",[],"NV8"],[[65795,65798],"disallowed"],[[65799,65843],"valid",[],"NV8"],[[65844,65846],"disallowed"],[[65847,65855],"valid",[],"NV8"],[[65856,65930],"valid",[],"NV8"],[[65931,65932],"valid",[],"NV8"],[[65933,65935],"disallowed"],[[65936,65947],"valid",[],"NV8"],[[65948,65951],"disallowed"],[[65952,65952],"valid",[],"NV8"],[[65953,65999],"disallowed"],[[66000,66044],"valid",[],"NV8"],[[66045,66045],"valid"],[[66046,66175],"disallowed"],[[66176,66204],"valid"],[[66205,66207],"disallowed"],[[66208,66256],"valid"],[[66257,66271],"disallowed"],[[66272,66272],"valid"],[[66273,66299],"valid",[],"NV8"],[[66300,66303],"disallowed"],[[66304,66334],"valid"],[[66335,66335],"valid"],[[66336,66339],"valid",[],"NV8"],[[66340,66351],"disallowed"],[[66352,66368],"valid"],[[66369,66369],"valid",[],"NV8"],[[66370,66377],"valid"],[[66378,66378],"valid",[],"NV8"],[[66379,66383],"disallowed"],[[66384,66426],"valid"],[[66427,66431],"disallowed"],[[66432,66461],"valid"],[[66462,66462],"disallowed"],[[66463,66463],"valid",[],"NV8"],[[66464,66499],"valid"],[[66500,66503],"disallowed"],[[66504,66511],"valid"],[[66512,66517],"valid",[],"NV8"],[[66518,66559],"disallowed"],[[66560,66560],"mapped",[66600]],[[66561,66561],"mapped",[66601]],[[66562,66562],"mapped",[66602]],[[66563,66563],"mapped",[66603]],[[66564,66564],"mapped",[66604]],[[66565,66565],"mapped",[66605]],[[66566,66566],"mapped",[66606]],[[66567,66567],"mapped",[66607]],[[66568,66568],"mapped",[66608]],[[66569,66569],"mapped",[66609]],[[66570,66570],"mapped",[66610]],[[66571,66571],"mapped",[66611]],[[66572,66572],"mapped",[66612]],[[66573,66573],"mapped",[66613]],[[66574,66574],"mapped",[66614]],[[66575,66575],"mapped",[66615]],[[66576,66576],"mapped",[66616]],[[66577,66577],"mapped",[66617]],[[66578,66578],"mapped",[66618]],[[66579,66579],"mapped",[66619]],[[66580,66580],"mapped",[66620]],[[66581,66581],"mapped",[66621]],[[66582,66582],"mapped",[66622]],[[66583,66583],"mapped",[66623]],[[66584,66584],"mapped",[66624]],[[66585,66585],"mapped",[66625]],[[66586,66586],"mapped",[66626]],[[66587,66587],"mapped",[66627]],[[66588,66588],"mapped",[66628]],[[66589,66589],"mapped",[66629]],[[66590,66590],"mapped",[66630]],[[66591,66591],"mapped",[66631]],[[66592,66592],"mapped",[66632]],[[66593,66593],"mapped",[66633]],[[66594,66594],"mapped",[66634]],[[66595,66595],"mapped",[66635]],[[66596,66596],"mapped",[66636]],[[66597,66597],"mapped",[66637]],[[66598,66598],"mapped",[66638]],[[66599,66599],"mapped",[66639]],[[66600,66637],"valid"],[[66638,66717],"valid"],[[66718,66719],"disallowed"],[[66720,66729],"valid"],[[66730,66815],"disallowed"],[[66816,66855],"valid"],[[66856,66863],"disallowed"],[[66864,66915],"valid"],[[66916,66926],"disallowed"],[[66927,66927],"valid",[],"NV8"],[[66928,67071],"disallowed"],[[67072,67382],"valid"],[[67383,67391],"disallowed"],[[67392,67413],"valid"],[[67414,67423],"disallowed"],[[67424,67431],"valid"],[[67432,67583],"disallowed"],[[67584,67589],"valid"],[[67590,67591],"disallowed"],[[67592,67592],"valid"],[[67593,67593],"disallowed"],[[67594,67637],"valid"],[[67638,67638],"disallowed"],[[67639,67640],"valid"],[[67641,67643],"disallowed"],[[67644,67644],"valid"],[[67645,67646],"disallowed"],[[67647,67647],"valid"],[[67648,67669],"valid"],[[67670,67670],"disallowed"],[[67671,67679],"valid",[],"NV8"],[[67680,67702],"valid"],[[67703,67711],"valid",[],"NV8"],[[67712,67742],"valid"],[[67743,67750],"disallowed"],[[67751,67759],"valid",[],"NV8"],[[67760,67807],"disallowed"],[[67808,67826],"valid"],[[67827,67827],"disallowed"],[[67828,67829],"valid"],[[67830,67834],"disallowed"],[[67835,67839],"valid",[],"NV8"],[[67840,67861],"valid"],[[67862,67865],"valid",[],"NV8"],[[67866,67867],"valid",[],"NV8"],[[67868,67870],"disallowed"],[[67871,67871],"valid",[],"NV8"],[[67872,67897],"valid"],[[67898,67902],"disallowed"],[[67903,67903],"valid",[],"NV8"],[[67904,67967],"disallowed"],[[67968,68023],"valid"],[[68024,68027],"disallowed"],[[68028,68029],"valid",[],"NV8"],[[68030,68031],"valid"],[[68032,68047],"valid",[],"NV8"],[[68048,68049],"disallowed"],[[68050,68095],"valid",[],"NV8"],[[68096,68099],"valid"],[[68100,68100],"disallowed"],[[68101,68102],"valid"],[[68103,68107],"disallowed"],[[68108,68115],"valid"],[[68116,68116],"disallowed"],[[68117,68119],"valid"],[[68120,68120],"disallowed"],[[68121,68147],"valid"],[[68148,68151],"disallowed"],[[68152,68154],"valid"],[[68155,68158],"disallowed"],[[68159,68159],"valid"],[[68160,68167],"valid",[],"NV8"],[[68168,68175],"disallowed"],[[68176,68184],"valid",[],"NV8"],[[68185,68191],"disallowed"],[[68192,68220],"valid"],[[68221,68223],"valid",[],"NV8"],[[68224,68252],"valid"],[[68253,68255],"valid",[],"NV8"],[[68256,68287],"disallowed"],[[68288,68295],"valid"],[[68296,68296],"valid",[],"NV8"],[[68297,68326],"valid"],[[68327,68330],"disallowed"],[[68331,68342],"valid",[],"NV8"],[[68343,68351],"disallowed"],[[68352,68405],"valid"],[[68406,68408],"disallowed"],[[68409,68415],"valid",[],"NV8"],[[68416,68437],"valid"],[[68438,68439],"disallowed"],[[68440,68447],"valid",[],"NV8"],[[68448,68466],"valid"],[[68467,68471],"disallowed"],[[68472,68479],"valid",[],"NV8"],[[68480,68497],"valid"],[[68498,68504],"disallowed"],[[68505,68508],"valid",[],"NV8"],[[68509,68520],"disallowed"],[[68521,68527],"valid",[],"NV8"],[[68528,68607],"disallowed"],[[68608,68680],"valid"],[[68681,68735],"disallowed"],[[68736,68736],"mapped",[68800]],[[68737,68737],"mapped",[68801]],[[68738,68738],"mapped",[68802]],[[68739,68739],"mapped",[68803]],[[68740,68740],"mapped",[68804]],[[68741,68741],"mapped",[68805]],[[68742,68742],"mapped",[68806]],[[68743,68743],"mapped",[68807]],[[68744,68744],"mapped",[68808]],[[68745,68745],"mapped",[68809]],[[68746,68746],"mapped",[68810]],[[68747,68747],"mapped",[68811]],[[68748,68748],"mapped",[68812]],[[68749,68749],"mapped",[68813]],[[68750,68750],"mapped",[68814]],[[68751,68751],"mapped",[68815]],[[68752,68752],"mapped",[68816]],[[68753,68753],"mapped",[68817]],[[68754,68754],"mapped",[68818]],[[68755,68755],"mapped",[68819]],[[68756,68756],"mapped",[68820]],[[68757,68757],"mapped",[68821]],[[68758,68758],"mapped",[68822]],[[68759,68759],"mapped",[68823]],[[68760,68760],"mapped",[68824]],[[68761,68761],"mapped",[68825]],[[68762,68762],"mapped",[68826]],[[68763,68763],"mapped",[68827]],[[68764,68764],"mapped",[68828]],[[68765,68765],"mapped",[68829]],[[68766,68766],"mapped",[68830]],[[68767,68767],"mapped",[68831]],[[68768,68768],"mapped",[68832]],[[68769,68769],"mapped",[68833]],[[68770,68770],"mapped",[68834]],[[68771,68771],"mapped",[68835]],[[68772,68772],"mapped",[68836]],[[68773,68773],"mapped",[68837]],[[68774,68774],"mapped",[68838]],[[68775,68775],"mapped",[68839]],[[68776,68776],"mapped",[68840]],[[68777,68777],"mapped",[68841]],[[68778,68778],"mapped",[68842]],[[68779,68779],"mapped",[68843]],[[68780,68780],"mapped",[68844]],[[68781,68781],"mapped",[68845]],[[68782,68782],"mapped",[68846]],[[68783,68783],"mapped",[68847]],[[68784,68784],"mapped",[68848]],[[68785,68785],"mapped",[68849]],[[68786,68786],"mapped",[68850]],[[68787,68799],"disallowed"],[[68800,68850],"valid"],[[68851,68857],"disallowed"],[[68858,68863],"valid",[],"NV8"],[[68864,69215],"disallowed"],[[69216,69246],"valid",[],"NV8"],[[69247,69631],"disallowed"],[[69632,69702],"valid"],[[69703,69709],"valid",[],"NV8"],[[69710,69713],"disallowed"],[[69714,69733],"valid",[],"NV8"],[[69734,69743],"valid"],[[69744,69758],"disallowed"],[[69759,69759],"valid"],[[69760,69818],"valid"],[[69819,69820],"valid",[],"NV8"],[[69821,69821],"disallowed"],[[69822,69825],"valid",[],"NV8"],[[69826,69839],"disallowed"],[[69840,69864],"valid"],[[69865,69871],"disallowed"],[[69872,69881],"valid"],[[69882,69887],"disallowed"],[[69888,69940],"valid"],[[69941,69941],"disallowed"],[[69942,69951],"valid"],[[69952,69955],"valid",[],"NV8"],[[69956,69967],"disallowed"],[[69968,70003],"valid"],[[70004,70005],"valid",[],"NV8"],[[70006,70006],"valid"],[[70007,70015],"disallowed"],[[70016,70084],"valid"],[[70085,70088],"valid",[],"NV8"],[[70089,70089],"valid",[],"NV8"],[[70090,70092],"valid"],[[70093,70093],"valid",[],"NV8"],[[70094,70095],"disallowed"],[[70096,70105],"valid"],[[70106,70106],"valid"],[[70107,70107],"valid",[],"NV8"],[[70108,70108],"valid"],[[70109,70111],"valid",[],"NV8"],[[70112,70112],"disallowed"],[[70113,70132],"valid",[],"NV8"],[[70133,70143],"disallowed"],[[70144,70161],"valid"],[[70162,70162],"disallowed"],[[70163,70199],"valid"],[[70200,70205],"valid",[],"NV8"],[[70206,70271],"disallowed"],[[70272,70278],"valid"],[[70279,70279],"disallowed"],[[70280,70280],"valid"],[[70281,70281],"disallowed"],[[70282,70285],"valid"],[[70286,70286],"disallowed"],[[70287,70301],"valid"],[[70302,70302],"disallowed"],[[70303,70312],"valid"],[[70313,70313],"valid",[],"NV8"],[[70314,70319],"disallowed"],[[70320,70378],"valid"],[[70379,70383],"disallowed"],[[70384,70393],"valid"],[[70394,70399],"disallowed"],[[70400,70400],"valid"],[[70401,70403],"valid"],[[70404,70404],"disallowed"],[[70405,70412],"valid"],[[70413,70414],"disallowed"],[[70415,70416],"valid"],[[70417,70418],"disallowed"],[[70419,70440],"valid"],[[70441,70441],"disallowed"],[[70442,70448],"valid"],[[70449,70449],"disallowed"],[[70450,70451],"valid"],[[70452,70452],"disallowed"],[[70453,70457],"valid"],[[70458,70459],"disallowed"],[[70460,70468],"valid"],[[70469,70470],"disallowed"],[[70471,70472],"valid"],[[70473,70474],"disallowed"],[[70475,70477],"valid"],[[70478,70479],"disallowed"],[[70480,70480],"valid"],[[70481,70486],"disallowed"],[[70487,70487],"valid"],[[70488,70492],"disallowed"],[[70493,70499],"valid"],[[70500,70501],"disallowed"],[[70502,70508],"valid"],[[70509,70511],"disallowed"],[[70512,70516],"valid"],[[70517,70783],"disallowed"],[[70784,70853],"valid"],[[70854,70854],"valid",[],"NV8"],[[70855,70855],"valid"],[[70856,70863],"disallowed"],[[70864,70873],"valid"],[[70874,71039],"disallowed"],[[71040,71093],"valid"],[[71094,71095],"disallowed"],[[71096,71104],"valid"],[[71105,71113],"valid",[],"NV8"],[[71114,71127],"valid",[],"NV8"],[[71128,71133],"valid"],[[71134,71167],"disallowed"],[[71168,71232],"valid"],[[71233,71235],"valid",[],"NV8"],[[71236,71236],"valid"],[[71237,71247],"disallowed"],[[71248,71257],"valid"],[[71258,71295],"disallowed"],[[71296,71351],"valid"],[[71352,71359],"disallowed"],[[71360,71369],"valid"],[[71370,71423],"disallowed"],[[71424,71449],"valid"],[[71450,71452],"disallowed"],[[71453,71467],"valid"],[[71468,71471],"disallowed"],[[71472,71481],"valid"],[[71482,71487],"valid",[],"NV8"],[[71488,71839],"disallowed"],[[71840,71840],"mapped",[71872]],[[71841,71841],"mapped",[71873]],[[71842,71842],"mapped",[71874]],[[71843,71843],"mapped",[71875]],[[71844,71844],"mapped",[71876]],[[71845,71845],"mapped",[71877]],[[71846,71846],"mapped",[71878]],[[71847,71847],"mapped",[71879]],[[71848,71848],"mapped",[71880]],[[71849,71849],"mapped",[71881]],[[71850,71850],"mapped",[71882]],[[71851,71851],"mapped",[71883]],[[71852,71852],"mapped",[71884]],[[71853,71853],"mapped",[71885]],[[71854,71854],"mapped",[71886]],[[71855,71855],"mapped",[71887]],[[71856,71856],"mapped",[71888]],[[71857,71857],"mapped",[71889]],[[71858,71858],"mapped",[71890]],[[71859,71859],"mapped",[71891]],[[71860,71860],"mapped",[71892]],[[71861,71861],"mapped",[71893]],[[71862,71862],"mapped",[71894]],[[71863,71863],"mapped",[71895]],[[71864,71864],"mapped",[71896]],[[71865,71865],"mapped",[71897]],[[71866,71866],"mapped",[71898]],[[71867,71867],"mapped",[71899]],[[71868,71868],"mapped",[71900]],[[71869,71869],"mapped",[71901]],[[71870,71870],"mapped",[71902]],[[71871,71871],"mapped",[71903]],[[71872,71913],"valid"],[[71914,71922],"valid",[],"NV8"],[[71923,71934],"disallowed"],[[71935,71935],"valid"],[[71936,72383],"disallowed"],[[72384,72440],"valid"],[[72441,73727],"disallowed"],[[73728,74606],"valid"],[[74607,74648],"valid"],[[74649,74649],"valid"],[[74650,74751],"disallowed"],[[74752,74850],"valid",[],"NV8"],[[74851,74862],"valid",[],"NV8"],[[74863,74863],"disallowed"],[[74864,74867],"valid",[],"NV8"],[[74868,74868],"valid",[],"NV8"],[[74869,74879],"disallowed"],[[74880,75075],"valid"],[[75076,77823],"disallowed"],[[77824,78894],"valid"],[[78895,82943],"disallowed"],[[82944,83526],"valid"],[[83527,92159],"disallowed"],[[92160,92728],"valid"],[[92729,92735],"disallowed"],[[92736,92766],"valid"],[[92767,92767],"disallowed"],[[92768,92777],"valid"],[[92778,92781],"disallowed"],[[92782,92783],"valid",[],"NV8"],[[92784,92879],"disallowed"],[[92880,92909],"valid"],[[92910,92911],"disallowed"],[[92912,92916],"valid"],[[92917,92917],"valid",[],"NV8"],[[92918,92927],"disallowed"],[[92928,92982],"valid"],[[92983,92991],"valid",[],"NV8"],[[92992,92995],"valid"],[[92996,92997],"valid",[],"NV8"],[[92998,93007],"disallowed"],[[93008,93017],"valid"],[[93018,93018],"disallowed"],[[93019,93025],"valid",[],"NV8"],[[93026,93026],"disallowed"],[[93027,93047],"valid"],[[93048,93052],"disallowed"],[[93053,93071],"valid"],[[93072,93951],"disallowed"],[[93952,94020],"valid"],[[94021,94031],"disallowed"],[[94032,94078],"valid"],[[94079,94094],"disallowed"],[[94095,94111],"valid"],[[94112,110591],"disallowed"],[[110592,110593],"valid"],[[110594,113663],"disallowed"],[[113664,113770],"valid"],[[113771,113775],"disallowed"],[[113776,113788],"valid"],[[113789,113791],"disallowed"],[[113792,113800],"valid"],[[113801,113807],"disallowed"],[[113808,113817],"valid"],[[113818,113819],"disallowed"],[[113820,113820],"valid",[],"NV8"],[[113821,113822],"valid"],[[113823,113823],"valid",[],"NV8"],[[113824,113827],"ignored"],[[113828,118783],"disallowed"],[[118784,119029],"valid",[],"NV8"],[[119030,119039],"disallowed"],[[119040,119078],"valid",[],"NV8"],[[119079,119080],"disallowed"],[[119081,119081],"valid",[],"NV8"],[[119082,119133],"valid",[],"NV8"],[[119134,119134],"mapped",[119127,119141]],[[119135,119135],"mapped",[119128,119141]],[[119136,119136],"mapped",[119128,119141,119150]],[[119137,119137],"mapped",[119128,119141,119151]],[[119138,119138],"mapped",[119128,119141,119152]],[[119139,119139],"mapped",[119128,119141,119153]],[[119140,119140],"mapped",[119128,119141,119154]],[[119141,119154],"valid",[],"NV8"],[[119155,119162],"disallowed"],[[119163,119226],"valid",[],"NV8"],[[119227,119227],"mapped",[119225,119141]],[[119228,119228],"mapped",[119226,119141]],[[119229,119229],"mapped",[119225,119141,119150]],[[119230,119230],"mapped",[119226,119141,119150]],[[119231,119231],"mapped",[119225,119141,119151]],[[119232,119232],"mapped",[119226,119141,119151]],[[119233,119261],"valid",[],"NV8"],[[119262,119272],"valid",[],"NV8"],[[119273,119295],"disallowed"],[[119296,119365],"valid",[],"NV8"],[[119366,119551],"disallowed"],[[119552,119638],"valid",[],"NV8"],[[119639,119647],"disallowed"],[[119648,119665],"valid",[],"NV8"],[[119666,119807],"disallowed"],[[119808,119808],"mapped",[97]],[[119809,119809],"mapped",[98]],[[119810,119810],"mapped",[99]],[[119811,119811],"mapped",[100]],[[119812,119812],"mapped",[101]],[[119813,119813],"mapped",[102]],[[119814,119814],"mapped",[103]],[[119815,119815],"mapped",[104]],[[119816,119816],"mapped",[105]],[[119817,119817],"mapped",[106]],[[119818,119818],"mapped",[107]],[[119819,119819],"mapped",[108]],[[119820,119820],"mapped",[109]],[[119821,119821],"mapped",[110]],[[119822,119822],"mapped",[111]],[[119823,119823],"mapped",[112]],[[119824,119824],"mapped",[113]],[[119825,119825],"mapped",[114]],[[119826,119826],"mapped",[115]],[[119827,119827],"mapped",[116]],[[119828,119828],"mapped",[117]],[[119829,119829],"mapped",[118]],[[119830,119830],"mapped",[119]],[[119831,119831],"mapped",[120]],[[119832,119832],"mapped",[121]],[[119833,119833],"mapped",[122]],[[119834,119834],"mapped",[97]],[[119835,119835],"mapped",[98]],[[119836,119836],"mapped",[99]],[[119837,119837],"mapped",[100]],[[119838,119838],"mapped",[101]],[[119839,119839],"mapped",[102]],[[119840,119840],"mapped",[103]],[[119841,119841],"mapped",[104]],[[119842,119842],"mapped",[105]],[[119843,119843],"mapped",[106]],[[119844,119844],"mapped",[107]],[[119845,119845],"mapped",[108]],[[119846,119846],"mapped",[109]],[[119847,119847],"mapped",[110]],[[119848,119848],"mapped",[111]],[[119849,119849],"mapped",[112]],[[119850,119850],"mapped",[113]],[[119851,119851],"mapped",[114]],[[119852,119852],"mapped",[115]],[[119853,119853],"mapped",[116]],[[119854,119854],"mapped",[117]],[[119855,119855],"mapped",[118]],[[119856,119856],"mapped",[119]],[[119857,119857],"mapped",[120]],[[119858,119858],"mapped",[121]],[[119859,119859],"mapped",[122]],[[119860,119860],"mapped",[97]],[[119861,119861],"mapped",[98]],[[119862,119862],"mapped",[99]],[[119863,119863],"mapped",[100]],[[119864,119864],"mapped",[101]],[[119865,119865],"mapped",[102]],[[119866,119866],"mapped",[103]],[[119867,119867],"mapped",[104]],[[119868,119868],"mapped",[105]],[[119869,119869],"mapped",[106]],[[119870,119870],"mapped",[107]],[[119871,119871],"mapped",[108]],[[119872,119872],"mapped",[109]],[[119873,119873],"mapped",[110]],[[119874,119874],"mapped",[111]],[[119875,119875],"mapped",[112]],[[119876,119876],"mapped",[113]],[[119877,119877],"mapped",[114]],[[119878,119878],"mapped",[115]],[[119879,119879],"mapped",[116]],[[119880,119880],"mapped",[117]],[[119881,119881],"mapped",[118]],[[119882,119882],"mapped",[119]],[[119883,119883],"mapped",[120]],[[119884,119884],"mapped",[121]],[[119885,119885],"mapped",[122]],[[119886,119886],"mapped",[97]],[[119887,119887],"mapped",[98]],[[119888,119888],"mapped",[99]],[[119889,119889],"mapped",[100]],[[119890,119890],"mapped",[101]],[[119891,119891],"mapped",[102]],[[119892,119892],"mapped",[103]],[[119893,119893],"disallowed"],[[119894,119894],"mapped",[105]],[[119895,119895],"mapped",[106]],[[119896,119896],"mapped",[107]],[[119897,119897],"mapped",[108]],[[119898,119898],"mapped",[109]],[[119899,119899],"mapped",[110]],[[119900,119900],"mapped",[111]],[[119901,119901],"mapped",[112]],[[119902,119902],"mapped",[113]],[[119903,119903],"mapped",[114]],[[119904,119904],"mapped",[115]],[[119905,119905],"mapped",[116]],[[119906,119906],"mapped",[117]],[[119907,119907],"mapped",[118]],[[119908,119908],"mapped",[119]],[[119909,119909],"mapped",[120]],[[119910,119910],"mapped",[121]],[[119911,119911],"mapped",[122]],[[119912,119912],"mapped",[97]],[[119913,119913],"mapped",[98]],[[119914,119914],"mapped",[99]],[[119915,119915],"mapped",[100]],[[119916,119916],"mapped",[101]],[[119917,119917],"mapped",[102]],[[119918,119918],"mapped",[103]],[[119919,119919],"mapped",[104]],[[119920,119920],"mapped",[105]],[[119921,119921],"mapped",[106]],[[119922,119922],"mapped",[107]],[[119923,119923],"mapped",[108]],[[119924,119924],"mapped",[109]],[[119925,119925],"mapped",[110]],[[119926,119926],"mapped",[111]],[[119927,119927],"mapped",[112]],[[119928,119928],"mapped",[113]],[[119929,119929],"mapped",[114]],[[119930,119930],"mapped",[115]],[[119931,119931],"mapped",[116]],[[119932,119932],"mapped",[117]],[[119933,119933],"mapped",[118]],[[119934,119934],"mapped",[119]],[[119935,119935],"mapped",[120]],[[119936,119936],"mapped",[121]],[[119937,119937],"mapped",[122]],[[119938,119938],"mapped",[97]],[[119939,119939],"mapped",[98]],[[119940,119940],"mapped",[99]],[[119941,119941],"mapped",[100]],[[119942,119942],"mapped",[101]],[[119943,119943],"mapped",[102]],[[119944,119944],"mapped",[103]],[[119945,119945],"mapped",[104]],[[119946,119946],"mapped",[105]],[[119947,119947],"mapped",[106]],[[119948,119948],"mapped",[107]],[[119949,119949],"mapped",[108]],[[119950,119950],"mapped",[109]],[[119951,119951],"mapped",[110]],[[119952,119952],"mapped",[111]],[[119953,119953],"mapped",[112]],[[119954,119954],"mapped",[113]],[[119955,119955],"mapped",[114]],[[119956,119956],"mapped",[115]],[[119957,119957],"mapped",[116]],[[119958,119958],"mapped",[117]],[[119959,119959],"mapped",[118]],[[119960,119960],"mapped",[119]],[[119961,119961],"mapped",[120]],[[119962,119962],"mapped",[121]],[[119963,119963],"mapped",[122]],[[119964,119964],"mapped",[97]],[[119965,119965],"disallowed"],[[119966,119966],"mapped",[99]],[[119967,119967],"mapped",[100]],[[119968,119969],"disallowed"],[[119970,119970],"mapped",[103]],[[119971,119972],"disallowed"],[[119973,119973],"mapped",[106]],[[119974,119974],"mapped",[107]],[[119975,119976],"disallowed"],[[119977,119977],"mapped",[110]],[[119978,119978],"mapped",[111]],[[119979,119979],"mapped",[112]],[[119980,119980],"mapped",[113]],[[119981,119981],"disallowed"],[[119982,119982],"mapped",[115]],[[119983,119983],"mapped",[116]],[[119984,119984],"mapped",[117]],[[119985,119985],"mapped",[118]],[[119986,119986],"mapped",[119]],[[119987,119987],"mapped",[120]],[[119988,119988],"mapped",[121]],[[119989,119989],"mapped",[122]],[[119990,119990],"mapped",[97]],[[119991,119991],"mapped",[98]],[[119992,119992],"mapped",[99]],[[119993,119993],"mapped",[100]],[[119994,119994],"disallowed"],[[119995,119995],"mapped",[102]],[[119996,119996],"disallowed"],[[119997,119997],"mapped",[104]],[[119998,119998],"mapped",[105]],[[119999,119999],"mapped",[106]],[[120000,120000],"mapped",[107]],[[120001,120001],"mapped",[108]],[[120002,120002],"mapped",[109]],[[120003,120003],"mapped",[110]],[[120004,120004],"disallowed"],[[120005,120005],"mapped",[112]],[[120006,120006],"mapped",[113]],[[120007,120007],"mapped",[114]],[[120008,120008],"mapped",[115]],[[120009,120009],"mapped",[116]],[[120010,120010],"mapped",[117]],[[120011,120011],"mapped",[118]],[[120012,120012],"mapped",[119]],[[120013,120013],"mapped",[120]],[[120014,120014],"mapped",[121]],[[120015,120015],"mapped",[122]],[[120016,120016],"mapped",[97]],[[120017,120017],"mapped",[98]],[[120018,120018],"mapped",[99]],[[120019,120019],"mapped",[100]],[[120020,120020],"mapped",[101]],[[120021,120021],"mapped",[102]],[[120022,120022],"mapped",[103]],[[120023,120023],"mapped",[104]],[[120024,120024],"mapped",[105]],[[120025,120025],"mapped",[106]],[[120026,120026],"mapped",[107]],[[120027,120027],"mapped",[108]],[[120028,120028],"mapped",[109]],[[120029,120029],"mapped",[110]],[[120030,120030],"mapped",[111]],[[120031,120031],"mapped",[112]],[[120032,120032],"mapped",[113]],[[120033,120033],"mapped",[114]],[[120034,120034],"mapped",[115]],[[120035,120035],"mapped",[116]],[[120036,120036],"mapped",[117]],[[120037,120037],"mapped",[118]],[[120038,120038],"mapped",[119]],[[120039,120039],"mapped",[120]],[[120040,120040],"mapped",[121]],[[120041,120041],"mapped",[122]],[[120042,120042],"mapped",[97]],[[120043,120043],"mapped",[98]],[[120044,120044],"mapped",[99]],[[120045,120045],"mapped",[100]],[[120046,120046],"mapped",[101]],[[120047,120047],"mapped",[102]],[[120048,120048],"mapped",[103]],[[120049,120049],"mapped",[104]],[[120050,120050],"mapped",[105]],[[120051,120051],"mapped",[106]],[[120052,120052],"mapped",[107]],[[120053,120053],"mapped",[108]],[[120054,120054],"mapped",[109]],[[120055,120055],"mapped",[110]],[[120056,120056],"mapped",[111]],[[120057,120057],"mapped",[112]],[[120058,120058],"mapped",[113]],[[120059,120059],"mapped",[114]],[[120060,120060],"mapped",[115]],[[120061,120061],"mapped",[116]],[[120062,120062],"mapped",[117]],[[120063,120063],"mapped",[118]],[[120064,120064],"mapped",[119]],[[120065,120065],"mapped",[120]],[[120066,120066],"mapped",[121]],[[120067,120067],"mapped",[122]],[[120068,120068],"mapped",[97]],[[120069,120069],"mapped",[98]],[[120070,120070],"disallowed"],[[120071,120071],"mapped",[100]],[[120072,120072],"mapped",[101]],[[120073,120073],"mapped",[102]],[[120074,120074],"mapped",[103]],[[120075,120076],"disallowed"],[[120077,120077],"mapped",[106]],[[120078,120078],"mapped",[107]],[[120079,120079],"mapped",[108]],[[120080,120080],"mapped",[109]],[[120081,120081],"mapped",[110]],[[120082,120082],"mapped",[111]],[[120083,120083],"mapped",[112]],[[120084,120084],"mapped",[113]],[[120085,120085],"disallowed"],[[120086,120086],"mapped",[115]],[[120087,120087],"mapped",[116]],[[120088,120088],"mapped",[117]],[[120089,120089],"mapped",[118]],[[120090,120090],"mapped",[119]],[[120091,120091],"mapped",[120]],[[120092,120092],"mapped",[121]],[[120093,120093],"disallowed"],[[120094,120094],"mapped",[97]],[[120095,120095],"mapped",[98]],[[120096,120096],"mapped",[99]],[[120097,120097],"mapped",[100]],[[120098,120098],"mapped",[101]],[[120099,120099],"mapped",[102]],[[120100,120100],"mapped",[103]],[[120101,120101],"mapped",[104]],[[120102,120102],"mapped",[105]],[[120103,120103],"mapped",[106]],[[120104,120104],"mapped",[107]],[[120105,120105],"mapped",[108]],[[120106,120106],"mapped",[109]],[[120107,120107],"mapped",[110]],[[120108,120108],"mapped",[111]],[[120109,120109],"mapped",[112]],[[120110,120110],"mapped",[113]],[[120111,120111],"mapped",[114]],[[120112,120112],"mapped",[115]],[[120113,120113],"mapped",[116]],[[120114,120114],"mapped",[117]],[[120115,120115],"mapped",[118]],[[120116,120116],"mapped",[119]],[[120117,120117],"mapped",[120]],[[120118,120118],"mapped",[121]],[[120119,120119],"mapped",[122]],[[120120,120120],"mapped",[97]],[[120121,120121],"mapped",[98]],[[120122,120122],"disallowed"],[[120123,120123],"mapped",[100]],[[120124,120124],"mapped",[101]],[[120125,120125],"mapped",[102]],[[120126,120126],"mapped",[103]],[[120127,120127],"disallowed"],[[120128,120128],"mapped",[105]],[[120129,120129],"mapped",[106]],[[120130,120130],"mapped",[107]],[[120131,120131],"mapped",[108]],[[120132,120132],"mapped",[109]],[[120133,120133],"disallowed"],[[120134,120134],"mapped",[111]],[[120135,120137],"disallowed"],[[120138,120138],"mapped",[115]],[[120139,120139],"mapped",[116]],[[120140,120140],"mapped",[117]],[[120141,120141],"mapped",[118]],[[120142,120142],"mapped",[119]],[[120143,120143],"mapped",[120]],[[120144,120144],"mapped",[121]],[[120145,120145],"disallowed"],[[120146,120146],"mapped",[97]],[[120147,120147],"mapped",[98]],[[120148,120148],"mapped",[99]],[[120149,120149],"mapped",[100]],[[120150,120150],"mapped",[101]],[[120151,120151],"mapped",[102]],[[120152,120152],"mapped",[103]],[[120153,120153],"mapped",[104]],[[120154,120154],"mapped",[105]],[[120155,120155],"mapped",[106]],[[120156,120156],"mapped",[107]],[[120157,120157],"mapped",[108]],[[120158,120158],"mapped",[109]],[[120159,120159],"mapped",[110]],[[120160,120160],"mapped",[111]],[[120161,120161],"mapped",[112]],[[120162,120162],"mapped",[113]],[[120163,120163],"mapped",[114]],[[120164,120164],"mapped",[115]],[[120165,120165],"mapped",[116]],[[120166,120166],"mapped",[117]],[[120167,120167],"mapped",[118]],[[120168,120168],"mapped",[119]],[[120169,120169],"mapped",[120]],[[120170,120170],"mapped",[121]],[[120171,120171],"mapped",[122]],[[120172,120172],"mapped",[97]],[[120173,120173],"mapped",[98]],[[120174,120174],"mapped",[99]],[[120175,120175],"mapped",[100]],[[120176,120176],"mapped",[101]],[[120177,120177],"mapped",[102]],[[120178,120178],"mapped",[103]],[[120179,120179],"mapped",[104]],[[120180,120180],"mapped",[105]],[[120181,120181],"mapped",[106]],[[120182,120182],"mapped",[107]],[[120183,120183],"mapped",[108]],[[120184,120184],"mapped",[109]],[[120185,120185],"mapped",[110]],[[120186,120186],"mapped",[111]],[[120187,120187],"mapped",[112]],[[120188,120188],"mapped",[113]],[[120189,120189],"mapped",[114]],[[120190,120190],"mapped",[115]],[[120191,120191],"mapped",[116]],[[120192,120192],"mapped",[117]],[[120193,120193],"mapped",[118]],[[120194,120194],"mapped",[119]],[[120195,120195],"mapped",[120]],[[120196,120196],"mapped",[121]],[[120197,120197],"mapped",[122]],[[120198,120198],"mapped",[97]],[[120199,120199],"mapped",[98]],[[120200,120200],"mapped",[99]],[[120201,120201],"mapped",[100]],[[120202,120202],"mapped",[101]],[[120203,120203],"mapped",[102]],[[120204,120204],"mapped",[103]],[[120205,120205],"mapped",[104]],[[120206,120206],"mapped",[105]],[[120207,120207],"mapped",[106]],[[120208,120208],"mapped",[107]],[[120209,120209],"mapped",[108]],[[120210,120210],"mapped",[109]],[[120211,120211],"mapped",[110]],[[120212,120212],"mapped",[111]],[[120213,120213],"mapped",[112]],[[120214,120214],"mapped",[113]],[[120215,120215],"mapped",[114]],[[120216,120216],"mapped",[115]],[[120217,120217],"mapped",[116]],[[120218,120218],"mapped",[117]],[[120219,120219],"mapped",[118]],[[120220,120220],"mapped",[119]],[[120221,120221],"mapped",[120]],[[120222,120222],"mapped",[121]],[[120223,120223],"mapped",[122]],[[120224,120224],"mapped",[97]],[[120225,120225],"mapped",[98]],[[120226,120226],"mapped",[99]],[[120227,120227],"mapped",[100]],[[120228,120228],"mapped",[101]],[[120229,120229],"mapped",[102]],[[120230,120230],"mapped",[103]],[[120231,120231],"mapped",[104]],[[120232,120232],"mapped",[105]],[[120233,120233],"mapped",[106]],[[120234,120234],"mapped",[107]],[[120235,120235],"mapped",[108]],[[120236,120236],"mapped",[109]],[[120237,120237],"mapped",[110]],[[120238,120238],"mapped",[111]],[[120239,120239],"mapped",[112]],[[120240,120240],"mapped",[113]],[[120241,120241],"mapped",[114]],[[120242,120242],"mapped",[115]],[[120243,120243],"mapped",[116]],[[120244,120244],"mapped",[117]],[[120245,120245],"mapped",[118]],[[120246,120246],"mapped",[119]],[[120247,120247],"mapped",[120]],[[120248,120248],"mapped",[121]],[[120249,120249],"mapped",[122]],[[120250,120250],"mapped",[97]],[[120251,120251],"mapped",[98]],[[120252,120252],"mapped",[99]],[[120253,120253],"mapped",[100]],[[120254,120254],"mapped",[101]],[[120255,120255],"mapped",[102]],[[120256,120256],"mapped",[103]],[[120257,120257],"mapped",[104]],[[120258,120258],"mapped",[105]],[[120259,120259],"mapped",[106]],[[120260,120260],"mapped",[107]],[[120261,120261],"mapped",[108]],[[120262,120262],"mapped",[109]],[[120263,120263],"mapped",[110]],[[120264,120264],"mapped",[111]],[[120265,120265],"mapped",[112]],[[120266,120266],"mapped",[113]],[[120267,120267],"mapped",[114]],[[120268,120268],"mapped",[115]],[[120269,120269],"mapped",[116]],[[120270,120270],"mapped",[117]],[[120271,120271],"mapped",[118]],[[120272,120272],"mapped",[119]],[[120273,120273],"mapped",[120]],[[120274,120274],"mapped",[121]],[[120275,120275],"mapped",[122]],[[120276,120276],"mapped",[97]],[[120277,120277],"mapped",[98]],[[120278,120278],"mapped",[99]],[[120279,120279],"mapped",[100]],[[120280,120280],"mapped",[101]],[[120281,120281],"mapped",[102]],[[120282,120282],"mapped",[103]],[[120283,120283],"mapped",[104]],[[120284,120284],"mapped",[105]],[[120285,120285],"mapped",[106]],[[120286,120286],"mapped",[107]],[[120287,120287],"mapped",[108]],[[120288,120288],"mapped",[109]],[[120289,120289],"mapped",[110]],[[120290,120290],"mapped",[111]],[[120291,120291],"mapped",[112]],[[120292,120292],"mapped",[113]],[[120293,120293],"mapped",[114]],[[120294,120294],"mapped",[115]],[[120295,120295],"mapped",[116]],[[120296,120296],"mapped",[117]],[[120297,120297],"mapped",[118]],[[120298,120298],"mapped",[119]],[[120299,120299],"mapped",[120]],[[120300,120300],"mapped",[121]],[[120301,120301],"mapped",[122]],[[120302,120302],"mapped",[97]],[[120303,120303],"mapped",[98]],[[120304,120304],"mapped",[99]],[[120305,120305],"mapped",[100]],[[120306,120306],"mapped",[101]],[[120307,120307],"mapped",[102]],[[120308,120308],"mapped",[103]],[[120309,120309],"mapped",[104]],[[120310,120310],"mapped",[105]],[[120311,120311],"mapped",[106]],[[120312,120312],"mapped",[107]],[[120313,120313],"mapped",[108]],[[120314,120314],"mapped",[109]],[[120315,120315],"mapped",[110]],[[120316,120316],"mapped",[111]],[[120317,120317],"mapped",[112]],[[120318,120318],"mapped",[113]],[[120319,120319],"mapped",[114]],[[120320,120320],"mapped",[115]],[[120321,120321],"mapped",[116]],[[120322,120322],"mapped",[117]],[[120323,120323],"mapped",[118]],[[120324,120324],"mapped",[119]],[[120325,120325],"mapped",[120]],[[120326,120326],"mapped",[121]],[[120327,120327],"mapped",[122]],[[120328,120328],"mapped",[97]],[[120329,120329],"mapped",[98]],[[120330,120330],"mapped",[99]],[[120331,120331],"mapped",[100]],[[120332,120332],"mapped",[101]],[[120333,120333],"mapped",[102]],[[120334,120334],"mapped",[103]],[[120335,120335],"mapped",[104]],[[120336,120336],"mapped",[105]],[[120337,120337],"mapped",[106]],[[120338,120338],"mapped",[107]],[[120339,120339],"mapped",[108]],[[120340,120340],"mapped",[109]],[[120341,120341],"mapped",[110]],[[120342,120342],"mapped",[111]],[[120343,120343],"mapped",[112]],[[120344,120344],"mapped",[113]],[[120345,120345],"mapped",[114]],[[120346,120346],"mapped",[115]],[[120347,120347],"mapped",[116]],[[120348,120348],"mapped",[117]],[[120349,120349],"mapped",[118]],[[120350,120350],"mapped",[119]],[[120351,120351],"mapped",[120]],[[120352,120352],"mapped",[121]],[[120353,120353],"mapped",[122]],[[120354,120354],"mapped",[97]],[[120355,120355],"mapped",[98]],[[120356,120356],"mapped",[99]],[[120357,120357],"mapped",[100]],[[120358,120358],"mapped",[101]],[[120359,120359],"mapped",[102]],[[120360,120360],"mapped",[103]],[[120361,120361],"mapped",[104]],[[120362,120362],"mapped",[105]],[[120363,120363],"mapped",[106]],[[120364,120364],"mapped",[107]],[[120365,120365],"mapped",[108]],[[120366,120366],"mapped",[109]],[[120367,120367],"mapped",[110]],[[120368,120368],"mapped",[111]],[[120369,120369],"mapped",[112]],[[120370,120370],"mapped",[113]],[[120371,120371],"mapped",[114]],[[120372,120372],"mapped",[115]],[[120373,120373],"mapped",[116]],[[120374,120374],"mapped",[117]],[[120375,120375],"mapped",[118]],[[120376,120376],"mapped",[119]],[[120377,120377],"mapped",[120]],[[120378,120378],"mapped",[121]],[[120379,120379],"mapped",[122]],[[120380,120380],"mapped",[97]],[[120381,120381],"mapped",[98]],[[120382,120382],"mapped",[99]],[[120383,120383],"mapped",[100]],[[120384,120384],"mapped",[101]],[[120385,120385],"mapped",[102]],[[120386,120386],"mapped",[103]],[[120387,120387],"mapped",[104]],[[120388,120388],"mapped",[105]],[[120389,120389],"mapped",[106]],[[120390,120390],"mapped",[107]],[[120391,120391],"mapped",[108]],[[120392,120392],"mapped",[109]],[[120393,120393],"mapped",[110]],[[120394,120394],"mapped",[111]],[[120395,120395],"mapped",[112]],[[120396,120396],"mapped",[113]],[[120397,120397],"mapped",[114]],[[120398,120398],"mapped",[115]],[[120399,120399],"mapped",[116]],[[120400,120400],"mapped",[117]],[[120401,120401],"mapped",[118]],[[120402,120402],"mapped",[119]],[[120403,120403],"mapped",[120]],[[120404,120404],"mapped",[121]],[[120405,120405],"mapped",[122]],[[120406,120406],"mapped",[97]],[[120407,120407],"mapped",[98]],[[120408,120408],"mapped",[99]],[[120409,120409],"mapped",[100]],[[120410,120410],"mapped",[101]],[[120411,120411],"mapped",[102]],[[120412,120412],"mapped",[103]],[[120413,120413],"mapped",[104]],[[120414,120414],"mapped",[105]],[[120415,120415],"mapped",[106]],[[120416,120416],"mapped",[107]],[[120417,120417],"mapped",[108]],[[120418,120418],"mapped",[109]],[[120419,120419],"mapped",[110]],[[120420,120420],"mapped",[111]],[[120421,120421],"mapped",[112]],[[120422,120422],"mapped",[113]],[[120423,120423],"mapped",[114]],[[120424,120424],"mapped",[115]],[[120425,120425],"mapped",[116]],[[120426,120426],"mapped",[117]],[[120427,120427],"mapped",[118]],[[120428,120428],"mapped",[119]],[[120429,120429],"mapped",[120]],[[120430,120430],"mapped",[121]],[[120431,120431],"mapped",[122]],[[120432,120432],"mapped",[97]],[[120433,120433],"mapped",[98]],[[120434,120434],"mapped",[99]],[[120435,120435],"mapped",[100]],[[120436,120436],"mapped",[101]],[[120437,120437],"mapped",[102]],[[120438,120438],"mapped",[103]],[[120439,120439],"mapped",[104]],[[120440,120440],"mapped",[105]],[[120441,120441],"mapped",[106]],[[120442,120442],"mapped",[107]],[[120443,120443],"mapped",[108]],[[120444,120444],"mapped",[109]],[[120445,120445],"mapped",[110]],[[120446,120446],"mapped",[111]],[[120447,120447],"mapped",[112]],[[120448,120448],"mapped",[113]],[[120449,120449],"mapped",[114]],[[120450,120450],"mapped",[115]],[[120451,120451],"mapped",[116]],[[120452,120452],"mapped",[117]],[[120453,120453],"mapped",[118]],[[120454,120454],"mapped",[119]],[[120455,120455],"mapped",[120]],[[120456,120456],"mapped",[121]],[[120457,120457],"mapped",[122]],[[120458,120458],"mapped",[97]],[[120459,120459],"mapped",[98]],[[120460,120460],"mapped",[99]],[[120461,120461],"mapped",[100]],[[120462,120462],"mapped",[101]],[[120463,120463],"mapped",[102]],[[120464,120464],"mapped",[103]],[[120465,120465],"mapped",[104]],[[120466,120466],"mapped",[105]],[[120467,120467],"mapped",[106]],[[120468,120468],"mapped",[107]],[[120469,120469],"mapped",[108]],[[120470,120470],"mapped",[109]],[[120471,120471],"mapped",[110]],[[120472,120472],"mapped",[111]],[[120473,120473],"mapped",[112]],[[120474,120474],"mapped",[113]],[[120475,120475],"mapped",[114]],[[120476,120476],"mapped",[115]],[[120477,120477],"mapped",[116]],[[120478,120478],"mapped",[117]],[[120479,120479],"mapped",[118]],[[120480,120480],"mapped",[119]],[[120481,120481],"mapped",[120]],[[120482,120482],"mapped",[121]],[[120483,120483],"mapped",[122]],[[120484,120484],"mapped",[305]],[[120485,120485],"mapped",[567]],[[120486,120487],"disallowed"],[[120488,120488],"mapped",[945]],[[120489,120489],"mapped",[946]],[[120490,120490],"mapped",[947]],[[120491,120491],"mapped",[948]],[[120492,120492],"mapped",[949]],[[120493,120493],"mapped",[950]],[[120494,120494],"mapped",[951]],[[120495,120495],"mapped",[952]],[[120496,120496],"mapped",[953]],[[120497,120497],"mapped",[954]],[[120498,120498],"mapped",[955]],[[120499,120499],"mapped",[956]],[[120500,120500],"mapped",[957]],[[120501,120501],"mapped",[958]],[[120502,120502],"mapped",[959]],[[120503,120503],"mapped",[960]],[[120504,120504],"mapped",[961]],[[120505,120505],"mapped",[952]],[[120506,120506],"mapped",[963]],[[120507,120507],"mapped",[964]],[[120508,120508],"mapped",[965]],[[120509,120509],"mapped",[966]],[[120510,120510],"mapped",[967]],[[120511,120511],"mapped",[968]],[[120512,120512],"mapped",[969]],[[120513,120513],"mapped",[8711]],[[120514,120514],"mapped",[945]],[[120515,120515],"mapped",[946]],[[120516,120516],"mapped",[947]],[[120517,120517],"mapped",[948]],[[120518,120518],"mapped",[949]],[[120519,120519],"mapped",[950]],[[120520,120520],"mapped",[951]],[[120521,120521],"mapped",[952]],[[120522,120522],"mapped",[953]],[[120523,120523],"mapped",[954]],[[120524,120524],"mapped",[955]],[[120525,120525],"mapped",[956]],[[120526,120526],"mapped",[957]],[[120527,120527],"mapped",[958]],[[120528,120528],"mapped",[959]],[[120529,120529],"mapped",[960]],[[120530,120530],"mapped",[961]],[[120531,120532],"mapped",[963]],[[120533,120533],"mapped",[964]],[[120534,120534],"mapped",[965]],[[120535,120535],"mapped",[966]],[[120536,120536],"mapped",[967]],[[120537,120537],"mapped",[968]],[[120538,120538],"mapped",[969]],[[120539,120539],"mapped",[8706]],[[120540,120540],"mapped",[949]],[[120541,120541],"mapped",[952]],[[120542,120542],"mapped",[954]],[[120543,120543],"mapped",[966]],[[120544,120544],"mapped",[961]],[[120545,120545],"mapped",[960]],[[120546,120546],"mapped",[945]],[[120547,120547],"mapped",[946]],[[120548,120548],"mapped",[947]],[[120549,120549],"mapped",[948]],[[120550,120550],"mapped",[949]],[[120551,120551],"mapped",[950]],[[120552,120552],"mapped",[951]],[[120553,120553],"mapped",[952]],[[120554,120554],"mapped",[953]],[[120555,120555],"mapped",[954]],[[120556,120556],"mapped",[955]],[[120557,120557],"mapped",[956]],[[120558,120558],"mapped",[957]],[[120559,120559],"mapped",[958]],[[120560,120560],"mapped",[959]],[[120561,120561],"mapped",[960]],[[120562,120562],"mapped",[961]],[[120563,120563],"mapped",[952]],[[120564,120564],"mapped",[963]],[[120565,120565],"mapped",[964]],[[120566,120566],"mapped",[965]],[[120567,120567],"mapped",[966]],[[120568,120568],"mapped",[967]],[[120569,120569],"mapped",[968]],[[120570,120570],"mapped",[969]],[[120571,120571],"mapped",[8711]],[[120572,120572],"mapped",[945]],[[120573,120573],"mapped",[946]],[[120574,120574],"mapped",[947]],[[120575,120575],"mapped",[948]],[[120576,120576],"mapped",[949]],[[120577,120577],"mapped",[950]],[[120578,120578],"mapped",[951]],[[120579,120579],"mapped",[952]],[[120580,120580],"mapped",[953]],[[120581,120581],"mapped",[954]],[[120582,120582],"mapped",[955]],[[120583,120583],"mapped",[956]],[[120584,120584],"mapped",[957]],[[120585,120585],"mapped",[958]],[[120586,120586],"mapped",[959]],[[120587,120587],"mapped",[960]],[[120588,120588],"mapped",[961]],[[120589,120590],"mapped",[963]],[[120591,120591],"mapped",[964]],[[120592,120592],"mapped",[965]],[[120593,120593],"mapped",[966]],[[120594,120594],"mapped",[967]],[[120595,120595],"mapped",[968]],[[120596,120596],"mapped",[969]],[[120597,120597],"mapped",[8706]],[[120598,120598],"mapped",[949]],[[120599,120599],"mapped",[952]],[[120600,120600],"mapped",[954]],[[120601,120601],"mapped",[966]],[[120602,120602],"mapped",[961]],[[120603,120603],"mapped",[960]],[[120604,120604],"mapped",[945]],[[120605,120605],"mapped",[946]],[[120606,120606],"mapped",[947]],[[120607,120607],"mapped",[948]],[[120608,120608],"mapped",[949]],[[120609,120609],"mapped",[950]],[[120610,120610],"mapped",[951]],[[120611,120611],"mapped",[952]],[[120612,120612],"mapped",[953]],[[120613,120613],"mapped",[954]],[[120614,120614],"mapped",[955]],[[120615,120615],"mapped",[956]],[[120616,120616],"mapped",[957]],[[120617,120617],"mapped",[958]],[[120618,120618],"mapped",[959]],[[120619,120619],"mapped",[960]],[[120620,120620],"mapped",[961]],[[120621,120621],"mapped",[952]],[[120622,120622],"mapped",[963]],[[120623,120623],"mapped",[964]],[[120624,120624],"mapped",[965]],[[120625,120625],"mapped",[966]],[[120626,120626],"mapped",[967]],[[120627,120627],"mapped",[968]],[[120628,120628],"mapped",[969]],[[120629,120629],"mapped",[8711]],[[120630,120630],"mapped",[945]],[[120631,120631],"mapped",[946]],[[120632,120632],"mapped",[947]],[[120633,120633],"mapped",[948]],[[120634,120634],"mapped",[949]],[[120635,120635],"mapped",[950]],[[120636,120636],"mapped",[951]],[[120637,120637],"mapped",[952]],[[120638,120638],"mapped",[953]],[[120639,120639],"mapped",[954]],[[120640,120640],"mapped",[955]],[[120641,120641],"mapped",[956]],[[120642,120642],"mapped",[957]],[[120643,120643],"mapped",[958]],[[120644,120644],"mapped",[959]],[[120645,120645],"mapped",[960]],[[120646,120646],"mapped",[961]],[[120647,120648],"mapped",[963]],[[120649,120649],"mapped",[964]],[[120650,120650],"mapped",[965]],[[120651,120651],"mapped",[966]],[[120652,120652],"mapped",[967]],[[120653,120653],"mapped",[968]],[[120654,120654],"mapped",[969]],[[120655,120655],"mapped",[8706]],[[120656,120656],"mapped",[949]],[[120657,120657],"mapped",[952]],[[120658,120658],"mapped",[954]],[[120659,120659],"mapped",[966]],[[120660,120660],"mapped",[961]],[[120661,120661],"mapped",[960]],[[120662,120662],"mapped",[945]],[[120663,120663],"mapped",[946]],[[120664,120664],"mapped",[947]],[[120665,120665],"mapped",[948]],[[120666,120666],"mapped",[949]],[[120667,120667],"mapped",[950]],[[120668,120668],"mapped",[951]],[[120669,120669],"mapped",[952]],[[120670,120670],"mapped",[953]],[[120671,120671],"mapped",[954]],[[120672,120672],"mapped",[955]],[[120673,120673],"mapped",[956]],[[120674,120674],"mapped",[957]],[[120675,120675],"mapped",[958]],[[120676,120676],"mapped",[959]],[[120677,120677],"mapped",[960]],[[120678,120678],"mapped",[961]],[[120679,120679],"mapped",[952]],[[120680,120680],"mapped",[963]],[[120681,120681],"mapped",[964]],[[120682,120682],"mapped",[965]],[[120683,120683],"mapped",[966]],[[120684,120684],"mapped",[967]],[[120685,120685],"mapped",[968]],[[120686,120686],"mapped",[969]],[[120687,120687],"mapped",[8711]],[[120688,120688],"mapped",[945]],[[120689,120689],"mapped",[946]],[[120690,120690],"mapped",[947]],[[120691,120691],"mapped",[948]],[[120692,120692],"mapped",[949]],[[120693,120693],"mapped",[950]],[[120694,120694],"mapped",[951]],[[120695,120695],"mapped",[952]],[[120696,120696],"mapped",[953]],[[120697,120697],"mapped",[954]],[[120698,120698],"mapped",[955]],[[120699,120699],"mapped",[956]],[[120700,120700],"mapped",[957]],[[120701,120701],"mapped",[958]],[[120702,120702],"mapped",[959]],[[120703,120703],"mapped",[960]],[[120704,120704],"mapped",[961]],[[120705,120706],"mapped",[963]],[[120707,120707],"mapped",[964]],[[120708,120708],"mapped",[965]],[[120709,120709],"mapped",[966]],[[120710,120710],"mapped",[967]],[[120711,120711],"mapped",[968]],[[120712,120712],"mapped",[969]],[[120713,120713],"mapped",[8706]],[[120714,120714],"mapped",[949]],[[120715,120715],"mapped",[952]],[[120716,120716],"mapped",[954]],[[120717,120717],"mapped",[966]],[[120718,120718],"mapped",[961]],[[120719,120719],"mapped",[960]],[[120720,120720],"mapped",[945]],[[120721,120721],"mapped",[946]],[[120722,120722],"mapped",[947]],[[120723,120723],"mapped",[948]],[[120724,120724],"mapped",[949]],[[120725,120725],"mapped",[950]],[[120726,120726],"mapped",[951]],[[120727,120727],"mapped",[952]],[[120728,120728],"mapped",[953]],[[120729,120729],"mapped",[954]],[[120730,120730],"mapped",[955]],[[120731,120731],"mapped",[956]],[[120732,120732],"mapped",[957]],[[120733,120733],"mapped",[958]],[[120734,120734],"mapped",[959]],[[120735,120735],"mapped",[960]],[[120736,120736],"mapped",[961]],[[120737,120737],"mapped",[952]],[[120738,120738],"mapped",[963]],[[120739,120739],"mapped",[964]],[[120740,120740],"mapped",[965]],[[120741,120741],"mapped",[966]],[[120742,120742],"mapped",[967]],[[120743,120743],"mapped",[968]],[[120744,120744],"mapped",[969]],[[120745,120745],"mapped",[8711]],[[120746,120746],"mapped",[945]],[[120747,120747],"mapped",[946]],[[120748,120748],"mapped",[947]],[[120749,120749],"mapped",[948]],[[120750,120750],"mapped",[949]],[[120751,120751],"mapped",[950]],[[120752,120752],"mapped",[951]],[[120753,120753],"mapped",[952]],[[120754,120754],"mapped",[953]],[[120755,120755],"mapped",[954]],[[120756,120756],"mapped",[955]],[[120757,120757],"mapped",[956]],[[120758,120758],"mapped",[957]],[[120759,120759],"mapped",[958]],[[120760,120760],"mapped",[959]],[[120761,120761],"mapped",[960]],[[120762,120762],"mapped",[961]],[[120763,120764],"mapped",[963]],[[120765,120765],"mapped",[964]],[[120766,120766],"mapped",[965]],[[120767,120767],"mapped",[966]],[[120768,120768],"mapped",[967]],[[120769,120769],"mapped",[968]],[[120770,120770],"mapped",[969]],[[120771,120771],"mapped",[8706]],[[120772,120772],"mapped",[949]],[[120773,120773],"mapped",[952]],[[120774,120774],"mapped",[954]],[[120775,120775],"mapped",[966]],[[120776,120776],"mapped",[961]],[[120777,120777],"mapped",[960]],[[120778,120779],"mapped",[989]],[[120780,120781],"disallowed"],[[120782,120782],"mapped",[48]],[[120783,120783],"mapped",[49]],[[120784,120784],"mapped",[50]],[[120785,120785],"mapped",[51]],[[120786,120786],"mapped",[52]],[[120787,120787],"mapped",[53]],[[120788,120788],"mapped",[54]],[[120789,120789],"mapped",[55]],[[120790,120790],"mapped",[56]],[[120791,120791],"mapped",[57]],[[120792,120792],"mapped",[48]],[[120793,120793],"mapped",[49]],[[120794,120794],"mapped",[50]],[[120795,120795],"mapped",[51]],[[120796,120796],"mapped",[52]],[[120797,120797],"mapped",[53]],[[120798,120798],"mapped",[54]],[[120799,120799],"mapped",[55]],[[120800,120800],"mapped",[56]],[[120801,120801],"mapped",[57]],[[120802,120802],"mapped",[48]],[[120803,120803],"mapped",[49]],[[120804,120804],"mapped",[50]],[[120805,120805],"mapped",[51]],[[120806,120806],"mapped",[52]],[[120807,120807],"mapped",[53]],[[120808,120808],"mapped",[54]],[[120809,120809],"mapped",[55]],[[120810,120810],"mapped",[56]],[[120811,120811],"mapped",[57]],[[120812,120812],"mapped",[48]],[[120813,120813],"mapped",[49]],[[120814,120814],"mapped",[50]],[[120815,120815],"mapped",[51]],[[120816,120816],"mapped",[52]],[[120817,120817],"mapped",[53]],[[120818,120818],"mapped",[54]],[[120819,120819],"mapped",[55]],[[120820,120820],"mapped",[56]],[[120821,120821],"mapped",[57]],[[120822,120822],"mapped",[48]],[[120823,120823],"mapped",[49]],[[120824,120824],"mapped",[50]],[[120825,120825],"mapped",[51]],[[120826,120826],"mapped",[52]],[[120827,120827],"mapped",[53]],[[120828,120828],"mapped",[54]],[[120829,120829],"mapped",[55]],[[120830,120830],"mapped",[56]],[[120831,120831],"mapped",[57]],[[120832,121343],"valid",[],"NV8"],[[121344,121398],"valid"],[[121399,121402],"valid",[],"NV8"],[[121403,121452],"valid"],[[121453,121460],"valid",[],"NV8"],[[121461,121461],"valid"],[[121462,121475],"valid",[],"NV8"],[[121476,121476],"valid"],[[121477,121483],"valid",[],"NV8"],[[121484,121498],"disallowed"],[[121499,121503],"valid"],[[121504,121504],"disallowed"],[[121505,121519],"valid"],[[121520,124927],"disallowed"],[[124928,125124],"valid"],[[125125,125126],"disallowed"],[[125127,125135],"valid",[],"NV8"],[[125136,125142],"valid"],[[125143,126463],"disallowed"],[[126464,126464],"mapped",[1575]],[[126465,126465],"mapped",[1576]],[[126466,126466],"mapped",[1580]],[[126467,126467],"mapped",[1583]],[[126468,126468],"disallowed"],[[126469,126469],"mapped",[1608]],[[126470,126470],"mapped",[1586]],[[126471,126471],"mapped",[1581]],[[126472,126472],"mapped",[1591]],[[126473,126473],"mapped",[1610]],[[126474,126474],"mapped",[1603]],[[126475,126475],"mapped",[1604]],[[126476,126476],"mapped",[1605]],[[126477,126477],"mapped",[1606]],[[126478,126478],"mapped",[1587]],[[126479,126479],"mapped",[1593]],[[126480,126480],"mapped",[1601]],[[126481,126481],"mapped",[1589]],[[126482,126482],"mapped",[1602]],[[126483,126483],"mapped",[1585]],[[126484,126484],"mapped",[1588]],[[126485,126485],"mapped",[1578]],[[126486,126486],"mapped",[1579]],[[126487,126487],"mapped",[1582]],[[126488,126488],"mapped",[1584]],[[126489,126489],"mapped",[1590]],[[126490,126490],"mapped",[1592]],[[126491,126491],"mapped",[1594]],[[126492,126492],"mapped",[1646]],[[126493,126493],"mapped",[1722]],[[126494,126494],"mapped",[1697]],[[126495,126495],"mapped",[1647]],[[126496,126496],"disallowed"],[[126497,126497],"mapped",[1576]],[[126498,126498],"mapped",[1580]],[[126499,126499],"disallowed"],[[126500,126500],"mapped",[1607]],[[126501,126502],"disallowed"],[[126503,126503],"mapped",[1581]],[[126504,126504],"disallowed"],[[126505,126505],"mapped",[1610]],[[126506,126506],"mapped",[1603]],[[126507,126507],"mapped",[1604]],[[126508,126508],"mapped",[1605]],[[126509,126509],"mapped",[1606]],[[126510,126510],"mapped",[1587]],[[126511,126511],"mapped",[1593]],[[126512,126512],"mapped",[1601]],[[126513,126513],"mapped",[1589]],[[126514,126514],"mapped",[1602]],[[126515,126515],"disallowed"],[[126516,126516],"mapped",[1588]],[[126517,126517],"mapped",[1578]],[[126518,126518],"mapped",[1579]],[[126519,126519],"mapped",[1582]],[[126520,126520],"disallowed"],[[126521,126521],"mapped",[1590]],[[126522,126522],"disallowed"],[[126523,126523],"mapped",[1594]],[[126524,126529],"disallowed"],[[126530,126530],"mapped",[1580]],[[126531,126534],"disallowed"],[[126535,126535],"mapped",[1581]],[[126536,126536],"disallowed"],[[126537,126537],"mapped",[1610]],[[126538,126538],"disallowed"],[[126539,126539],"mapped",[1604]],[[126540,126540],"disallowed"],[[126541,126541],"mapped",[1606]],[[126542,126542],"mapped",[1587]],[[126543,126543],"mapped",[1593]],[[126544,126544],"disallowed"],[[126545,126545],"mapped",[1589]],[[126546,126546],"mapped",[1602]],[[126547,126547],"disallowed"],[[126548,126548],"mapped",[1588]],[[126549,126550],"disallowed"],[[126551,126551],"mapped",[1582]],[[126552,126552],"disallowed"],[[126553,126553],"mapped",[1590]],[[126554,126554],"disallowed"],[[126555,126555],"mapped",[1594]],[[126556,126556],"disallowed"],[[126557,126557],"mapped",[1722]],[[126558,126558],"disallowed"],[[126559,126559],"mapped",[1647]],[[126560,126560],"disallowed"],[[126561,126561],"mapped",[1576]],[[126562,126562],"mapped",[1580]],[[126563,126563],"disallowed"],[[126564,126564],"mapped",[1607]],[[126565,126566],"disallowed"],[[126567,126567],"mapped",[1581]],[[126568,126568],"mapped",[1591]],[[126569,126569],"mapped",[1610]],[[126570,126570],"mapped",[1603]],[[126571,126571],"disallowed"],[[126572,126572],"mapped",[1605]],[[126573,126573],"mapped",[1606]],[[126574,126574],"mapped",[1587]],[[126575,126575],"mapped",[1593]],[[126576,126576],"mapped",[1601]],[[126577,126577],"mapped",[1589]],[[126578,126578],"mapped",[1602]],[[126579,126579],"disallowed"],[[126580,126580],"mapped",[1588]],[[126581,126581],"mapped",[1578]],[[126582,126582],"mapped",[1579]],[[126583,126583],"mapped",[1582]],[[126584,126584],"disallowed"],[[126585,126585],"mapped",[1590]],[[126586,126586],"mapped",[1592]],[[126587,126587],"mapped",[1594]],[[126588,126588],"mapped",[1646]],[[126589,126589],"disallowed"],[[126590,126590],"mapped",[1697]],[[126591,126591],"disallowed"],[[126592,126592],"mapped",[1575]],[[126593,126593],"mapped",[1576]],[[126594,126594],"mapped",[1580]],[[126595,126595],"mapped",[1583]],[[126596,126596],"mapped",[1607]],[[126597,126597],"mapped",[1608]],[[126598,126598],"mapped",[1586]],[[126599,126599],"mapped",[1581]],[[126600,126600],"mapped",[1591]],[[126601,126601],"mapped",[1610]],[[126602,126602],"disallowed"],[[126603,126603],"mapped",[1604]],[[126604,126604],"mapped",[1605]],[[126605,126605],"mapped",[1606]],[[126606,126606],"mapped",[1587]],[[126607,126607],"mapped",[1593]],[[126608,126608],"mapped",[1601]],[[126609,126609],"mapped",[1589]],[[126610,126610],"mapped",[1602]],[[126611,126611],"mapped",[1585]],[[126612,126612],"mapped",[1588]],[[126613,126613],"mapped",[1578]],[[126614,126614],"mapped",[1579]],[[126615,126615],"mapped",[1582]],[[126616,126616],"mapped",[1584]],[[126617,126617],"mapped",[1590]],[[126618,126618],"mapped",[1592]],[[126619,126619],"mapped",[1594]],[[126620,126624],"disallowed"],[[126625,126625],"mapped",[1576]],[[126626,126626],"mapped",[1580]],[[126627,126627],"mapped",[1583]],[[126628,126628],"disallowed"],[[126629,126629],"mapped",[1608]],[[126630,126630],"mapped",[1586]],[[126631,126631],"mapped",[1581]],[[126632,126632],"mapped",[1591]],[[126633,126633],"mapped",[1610]],[[126634,126634],"disallowed"],[[126635,126635],"mapped",[1604]],[[126636,126636],"mapped",[1605]],[[126637,126637],"mapped",[1606]],[[126638,126638],"mapped",[1587]],[[126639,126639],"mapped",[1593]],[[126640,126640],"mapped",[1601]],[[126641,126641],"mapped",[1589]],[[126642,126642],"mapped",[1602]],[[126643,126643],"mapped",[1585]],[[126644,126644],"mapped",[1588]],[[126645,126645],"mapped",[1578]],[[126646,126646],"mapped",[1579]],[[126647,126647],"mapped",[1582]],[[126648,126648],"mapped",[1584]],[[126649,126649],"mapped",[1590]],[[126650,126650],"mapped",[1592]],[[126651,126651],"mapped",[1594]],[[126652,126703],"disallowed"],[[126704,126705],"valid",[],"NV8"],[[126706,126975],"disallowed"],[[126976,127019],"valid",[],"NV8"],[[127020,127023],"disallowed"],[[127024,127123],"valid",[],"NV8"],[[127124,127135],"disallowed"],[[127136,127150],"valid",[],"NV8"],[[127151,127152],"disallowed"],[[127153,127166],"valid",[],"NV8"],[[127167,127167],"valid",[],"NV8"],[[127168,127168],"disallowed"],[[127169,127183],"valid",[],"NV8"],[[127184,127184],"disallowed"],[[127185,127199],"valid",[],"NV8"],[[127200,127221],"valid",[],"NV8"],[[127222,127231],"disallowed"],[[127232,127232],"disallowed"],[[127233,127233],"disallowed_STD3_mapped",[48,44]],[[127234,127234],"disallowed_STD3_mapped",[49,44]],[[127235,127235],"disallowed_STD3_mapped",[50,44]],[[127236,127236],"disallowed_STD3_mapped",[51,44]],[[127237,127237],"disallowed_STD3_mapped",[52,44]],[[127238,127238],"disallowed_STD3_mapped",[53,44]],[[127239,127239],"disallowed_STD3_mapped",[54,44]],[[127240,127240],"disallowed_STD3_mapped",[55,44]],[[127241,127241],"disallowed_STD3_mapped",[56,44]],[[127242,127242],"disallowed_STD3_mapped",[57,44]],[[127243,127244],"valid",[],"NV8"],[[127245,127247],"disallowed"],[[127248,127248],"disallowed_STD3_mapped",[40,97,41]],[[127249,127249],"disallowed_STD3_mapped",[40,98,41]],[[127250,127250],"disallowed_STD3_mapped",[40,99,41]],[[127251,127251],"disallowed_STD3_mapped",[40,100,41]],[[127252,127252],"disallowed_STD3_mapped",[40,101,41]],[[127253,127253],"disallowed_STD3_mapped",[40,102,41]],[[127254,127254],"disallowed_STD3_mapped",[40,103,41]],[[127255,127255],"disallowed_STD3_mapped",[40,104,41]],[[127256,127256],"disallowed_STD3_mapped",[40,105,41]],[[127257,127257],"disallowed_STD3_mapped",[40,106,41]],[[127258,127258],"disallowed_STD3_mapped",[40,107,41]],[[127259,127259],"disallowed_STD3_mapped",[40,108,41]],[[127260,127260],"disallowed_STD3_mapped",[40,109,41]],[[127261,127261],"disallowed_STD3_mapped",[40,110,41]],[[127262,127262],"disallowed_STD3_mapped",[40,111,41]],[[127263,127263],"disallowed_STD3_mapped",[40,112,41]],[[127264,127264],"disallowed_STD3_mapped",[40,113,41]],[[127265,127265],"disallowed_STD3_mapped",[40,114,41]],[[127266,127266],"disallowed_STD3_mapped",[40,115,41]],[[127267,127267],"disallowed_STD3_mapped",[40,116,41]],[[127268,127268],"disallowed_STD3_mapped",[40,117,41]],[[127269,127269],"disallowed_STD3_mapped",[40,118,41]],[[127270,127270],"disallowed_STD3_mapped",[40,119,41]],[[127271,127271],"disallowed_STD3_mapped",[40,120,41]],[[127272,127272],"disallowed_STD3_mapped",[40,121,41]],[[127273,127273],"disallowed_STD3_mapped",[40,122,41]],[[127274,127274],"mapped",[12308,115,12309]],[[127275,127275],"mapped",[99]],[[127276,127276],"mapped",[114]],[[127277,127277],"mapped",[99,100]],[[127278,127278],"mapped",[119,122]],[[127279,127279],"disallowed"],[[127280,127280],"mapped",[97]],[[127281,127281],"mapped",[98]],[[127282,127282],"mapped",[99]],[[127283,127283],"mapped",[100]],[[127284,127284],"mapped",[101]],[[127285,127285],"mapped",[102]],[[127286,127286],"mapped",[103]],[[127287,127287],"mapped",[104]],[[127288,127288],"mapped",[105]],[[127289,127289],"mapped",[106]],[[127290,127290],"mapped",[107]],[[127291,127291],"mapped",[108]],[[127292,127292],"mapped",[109]],[[127293,127293],"mapped",[110]],[[127294,127294],"mapped",[111]],[[127295,127295],"mapped",[112]],[[127296,127296],"mapped",[113]],[[127297,127297],"mapped",[114]],[[127298,127298],"mapped",[115]],[[127299,127299],"mapped",[116]],[[127300,127300],"mapped",[117]],[[127301,127301],"mapped",[118]],[[127302,127302],"mapped",[119]],[[127303,127303],"mapped",[120]],[[127304,127304],"mapped",[121]],[[127305,127305],"mapped",[122]],[[127306,127306],"mapped",[104,118]],[[127307,127307],"mapped",[109,118]],[[127308,127308],"mapped",[115,100]],[[127309,127309],"mapped",[115,115]],[[127310,127310],"mapped",[112,112,118]],[[127311,127311],"mapped",[119,99]],[[127312,127318],"valid",[],"NV8"],[[127319,127319],"valid",[],"NV8"],[[127320,127326],"valid",[],"NV8"],[[127327,127327],"valid",[],"NV8"],[[127328,127337],"valid",[],"NV8"],[[127338,127338],"mapped",[109,99]],[[127339,127339],"mapped",[109,100]],[[127340,127343],"disallowed"],[[127344,127352],"valid",[],"NV8"],[[127353,127353],"valid",[],"NV8"],[[127354,127354],"valid",[],"NV8"],[[127355,127356],"valid",[],"NV8"],[[127357,127358],"valid",[],"NV8"],[[127359,127359],"valid",[],"NV8"],[[127360,127369],"valid",[],"NV8"],[[127370,127373],"valid",[],"NV8"],[[127374,127375],"valid",[],"NV8"],[[127376,127376],"mapped",[100,106]],[[127377,127386],"valid",[],"NV8"],[[127387,127461],"disallowed"],[[127462,127487],"valid",[],"NV8"],[[127488,127488],"mapped",[12411,12363]],[[127489,127489],"mapped",[12467,12467]],[[127490,127490],"mapped",[12469]],[[127491,127503],"disallowed"],[[127504,127504],"mapped",[25163]],[[127505,127505],"mapped",[23383]],[[127506,127506],"mapped",[21452]],[[127507,127507],"mapped",[12487]],[[127508,127508],"mapped",[20108]],[[127509,127509],"mapped",[22810]],[[127510,127510],"mapped",[35299]],[[127511,127511],"mapped",[22825]],[[127512,127512],"mapped",[20132]],[[127513,127513],"mapped",[26144]],[[127514,127514],"mapped",[28961]],[[127515,127515],"mapped",[26009]],[[127516,127516],"mapped",[21069]],[[127517,127517],"mapped",[24460]],[[127518,127518],"mapped",[20877]],[[127519,127519],"mapped",[26032]],[[127520,127520],"mapped",[21021]],[[127521,127521],"mapped",[32066]],[[127522,127522],"mapped",[29983]],[[127523,127523],"mapped",[36009]],[[127524,127524],"mapped",[22768]],[[127525,127525],"mapped",[21561]],[[127526,127526],"mapped",[28436]],[[127527,127527],"mapped",[25237]],[[127528,127528],"mapped",[25429]],[[127529,127529],"mapped",[19968]],[[127530,127530],"mapped",[19977]],[[127531,127531],"mapped",[36938]],[[127532,127532],"mapped",[24038]],[[127533,127533],"mapped",[20013]],[[127534,127534],"mapped",[21491]],[[127535,127535],"mapped",[25351]],[[127536,127536],"mapped",[36208]],[[127537,127537],"mapped",[25171]],[[127538,127538],"mapped",[31105]],[[127539,127539],"mapped",[31354]],[[127540,127540],"mapped",[21512]],[[127541,127541],"mapped",[28288]],[[127542,127542],"mapped",[26377]],[[127543,127543],"mapped",[26376]],[[127544,127544],"mapped",[30003]],[[127545,127545],"mapped",[21106]],[[127546,127546],"mapped",[21942]],[[127547,127551],"disallowed"],[[127552,127552],"mapped",[12308,26412,12309]],[[127553,127553],"mapped",[12308,19977,12309]],[[127554,127554],"mapped",[12308,20108,12309]],[[127555,127555],"mapped",[12308,23433,12309]],[[127556,127556],"mapped",[12308,28857,12309]],[[127557,127557],"mapped",[12308,25171,12309]],[[127558,127558],"mapped",[12308,30423,12309]],[[127559,127559],"mapped",[12308,21213,12309]],[[127560,127560],"mapped",[12308,25943,12309]],[[127561,127567],"disallowed"],[[127568,127568],"mapped",[24471]],[[127569,127569],"mapped",[21487]],[[127570,127743],"disallowed"],[[127744,127776],"valid",[],"NV8"],[[127777,127788],"valid",[],"NV8"],[[127789,127791],"valid",[],"NV8"],[[127792,127797],"valid",[],"NV8"],[[127798,127798],"valid",[],"NV8"],[[127799,127868],"valid",[],"NV8"],[[127869,127869],"valid",[],"NV8"],[[127870,127871],"valid",[],"NV8"],[[127872,127891],"valid",[],"NV8"],[[127892,127903],"valid",[],"NV8"],[[127904,127940],"valid",[],"NV8"],[[127941,127941],"valid",[],"NV8"],[[127942,127946],"valid",[],"NV8"],[[127947,127950],"valid",[],"NV8"],[[127951,127955],"valid",[],"NV8"],[[127956,127967],"valid",[],"NV8"],[[127968,127984],"valid",[],"NV8"],[[127985,127991],"valid",[],"NV8"],[[127992,127999],"valid",[],"NV8"],[[128000,128062],"valid",[],"NV8"],[[128063,128063],"valid",[],"NV8"],[[128064,128064],"valid",[],"NV8"],[[128065,128065],"valid",[],"NV8"],[[128066,128247],"valid",[],"NV8"],[[128248,128248],"valid",[],"NV8"],[[128249,128252],"valid",[],"NV8"],[[128253,128254],"valid",[],"NV8"],[[128255,128255],"valid",[],"NV8"],[[128256,128317],"valid",[],"NV8"],[[128318,128319],"valid",[],"NV8"],[[128320,128323],"valid",[],"NV8"],[[128324,128330],"valid",[],"NV8"],[[128331,128335],"valid",[],"NV8"],[[128336,128359],"valid",[],"NV8"],[[128360,128377],"valid",[],"NV8"],[[128378,128378],"disallowed"],[[128379,128419],"valid",[],"NV8"],[[128420,128420],"disallowed"],[[128421,128506],"valid",[],"NV8"],[[128507,128511],"valid",[],"NV8"],[[128512,128512],"valid",[],"NV8"],[[128513,128528],"valid",[],"NV8"],[[128529,128529],"valid",[],"NV8"],[[128530,128532],"valid",[],"NV8"],[[128533,128533],"valid",[],"NV8"],[[128534,128534],"valid",[],"NV8"],[[128535,128535],"valid",[],"NV8"],[[128536,128536],"valid",[],"NV8"],[[128537,128537],"valid",[],"NV8"],[[128538,128538],"valid",[],"NV8"],[[128539,128539],"valid",[],"NV8"],[[128540,128542],"valid",[],"NV8"],[[128543,128543],"valid",[],"NV8"],[[128544,128549],"valid",[],"NV8"],[[128550,128551],"valid",[],"NV8"],[[128552,128555],"valid",[],"NV8"],[[128556,128556],"valid",[],"NV8"],[[128557,128557],"valid",[],"NV8"],[[128558,128559],"valid",[],"NV8"],[[128560,128563],"valid",[],"NV8"],[[128564,128564],"valid",[],"NV8"],[[128565,128576],"valid",[],"NV8"],[[128577,128578],"valid",[],"NV8"],[[128579,128580],"valid",[],"NV8"],[[128581,128591],"valid",[],"NV8"],[[128592,128639],"valid",[],"NV8"],[[128640,128709],"valid",[],"NV8"],[[128710,128719],"valid",[],"NV8"],[[128720,128720],"valid",[],"NV8"],[[128721,128735],"disallowed"],[[128736,128748],"valid",[],"NV8"],[[128749,128751],"disallowed"],[[128752,128755],"valid",[],"NV8"],[[128756,128767],"disallowed"],[[128768,128883],"valid",[],"NV8"],[[128884,128895],"disallowed"],[[128896,128980],"valid",[],"NV8"],[[128981,129023],"disallowed"],[[129024,129035],"valid",[],"NV8"],[[129036,129039],"disallowed"],[[129040,129095],"valid",[],"NV8"],[[129096,129103],"disallowed"],[[129104,129113],"valid",[],"NV8"],[[129114,129119],"disallowed"],[[129120,129159],"valid",[],"NV8"],[[129160,129167],"disallowed"],[[129168,129197],"valid",[],"NV8"],[[129198,129295],"disallowed"],[[129296,129304],"valid",[],"NV8"],[[129305,129407],"disallowed"],[[129408,129412],"valid",[],"NV8"],[[129413,129471],"disallowed"],[[129472,129472],"valid",[],"NV8"],[[129473,131069],"disallowed"],[[131070,131071],"disallowed"],[[131072,173782],"valid"],[[173783,173823],"disallowed"],[[173824,177972],"valid"],[[177973,177983],"disallowed"],[[177984,178205],"valid"],[[178206,178207],"disallowed"],[[178208,183969],"valid"],[[183970,194559],"disallowed"],[[194560,194560],"mapped",[20029]],[[194561,194561],"mapped",[20024]],[[194562,194562],"mapped",[20033]],[[194563,194563],"mapped",[131362]],[[194564,194564],"mapped",[20320]],[[194565,194565],"mapped",[20398]],[[194566,194566],"mapped",[20411]],[[194567,194567],"mapped",[20482]],[[194568,194568],"mapped",[20602]],[[194569,194569],"mapped",[20633]],[[194570,194570],"mapped",[20711]],[[194571,194571],"mapped",[20687]],[[194572,194572],"mapped",[13470]],[[194573,194573],"mapped",[132666]],[[194574,194574],"mapped",[20813]],[[194575,194575],"mapped",[20820]],[[194576,194576],"mapped",[20836]],[[194577,194577],"mapped",[20855]],[[194578,194578],"mapped",[132380]],[[194579,194579],"mapped",[13497]],[[194580,194580],"mapped",[20839]],[[194581,194581],"mapped",[20877]],[[194582,194582],"mapped",[132427]],[[194583,194583],"mapped",[20887]],[[194584,194584],"mapped",[20900]],[[194585,194585],"mapped",[20172]],[[194586,194586],"mapped",[20908]],[[194587,194587],"mapped",[20917]],[[194588,194588],"mapped",[168415]],[[194589,194589],"mapped",[20981]],[[194590,194590],"mapped",[20995]],[[194591,194591],"mapped",[13535]],[[194592,194592],"mapped",[21051]],[[194593,194593],"mapped",[21062]],[[194594,194594],"mapped",[21106]],[[194595,194595],"mapped",[21111]],[[194596,194596],"mapped",[13589]],[[194597,194597],"mapped",[21191]],[[194598,194598],"mapped",[21193]],[[194599,194599],"mapped",[21220]],[[194600,194600],"mapped",[21242]],[[194601,194601],"mapped",[21253]],[[194602,194602],"mapped",[21254]],[[194603,194603],"mapped",[21271]],[[194604,194604],"mapped",[21321]],[[194605,194605],"mapped",[21329]],[[194606,194606],"mapped",[21338]],[[194607,194607],"mapped",[21363]],[[194608,194608],"mapped",[21373]],[[194609,194611],"mapped",[21375]],[[194612,194612],"mapped",[133676]],[[194613,194613],"mapped",[28784]],[[194614,194614],"mapped",[21450]],[[194615,194615],"mapped",[21471]],[[194616,194616],"mapped",[133987]],[[194617,194617],"mapped",[21483]],[[194618,194618],"mapped",[21489]],[[194619,194619],"mapped",[21510]],[[194620,194620],"mapped",[21662]],[[194621,194621],"mapped",[21560]],[[194622,194622],"mapped",[21576]],[[194623,194623],"mapped",[21608]],[[194624,194624],"mapped",[21666]],[[194625,194625],"mapped",[21750]],[[194626,194626],"mapped",[21776]],[[194627,194627],"mapped",[21843]],[[194628,194628],"mapped",[21859]],[[194629,194630],"mapped",[21892]],[[194631,194631],"mapped",[21913]],[[194632,194632],"mapped",[21931]],[[194633,194633],"mapped",[21939]],[[194634,194634],"mapped",[21954]],[[194635,194635],"mapped",[22294]],[[194636,194636],"mapped",[22022]],[[194637,194637],"mapped",[22295]],[[194638,194638],"mapped",[22097]],[[194639,194639],"mapped",[22132]],[[194640,194640],"mapped",[20999]],[[194641,194641],"mapped",[22766]],[[194642,194642],"mapped",[22478]],[[194643,194643],"mapped",[22516]],[[194644,194644],"mapped",[22541]],[[194645,194645],"mapped",[22411]],[[194646,194646],"mapped",[22578]],[[194647,194647],"mapped",[22577]],[[194648,194648],"mapped",[22700]],[[194649,194649],"mapped",[136420]],[[194650,194650],"mapped",[22770]],[[194651,194651],"mapped",[22775]],[[194652,194652],"mapped",[22790]],[[194653,194653],"mapped",[22810]],[[194654,194654],"mapped",[22818]],[[194655,194655],"mapped",[22882]],[[194656,194656],"mapped",[136872]],[[194657,194657],"mapped",[136938]],[[194658,194658],"mapped",[23020]],[[194659,194659],"mapped",[23067]],[[194660,194660],"mapped",[23079]],[[194661,194661],"mapped",[23000]],[[194662,194662],"mapped",[23142]],[[194663,194663],"mapped",[14062]],[[194664,194664],"disallowed"],[[194665,194665],"mapped",[23304]],[[194666,194667],"mapped",[23358]],[[194668,194668],"mapped",[137672]],[[194669,194669],"mapped",[23491]],[[194670,194670],"mapped",[23512]],[[194671,194671],"mapped",[23527]],[[194672,194672],"mapped",[23539]],[[194673,194673],"mapped",[138008]],[[194674,194674],"mapped",[23551]],[[194675,194675],"mapped",[23558]],[[194676,194676],"disallowed"],[[194677,194677],"mapped",[23586]],[[194678,194678],"mapped",[14209]],[[194679,194679],"mapped",[23648]],[[194680,194680],"mapped",[23662]],[[194681,194681],"mapped",[23744]],[[194682,194682],"mapped",[23693]],[[194683,194683],"mapped",[138724]],[[194684,194684],"mapped",[23875]],[[194685,194685],"mapped",[138726]],[[194686,194686],"mapped",[23918]],[[194687,194687],"mapped",[23915]],[[194688,194688],"mapped",[23932]],[[194689,194689],"mapped",[24033]],[[194690,194690],"mapped",[24034]],[[194691,194691],"mapped",[14383]],[[194692,194692],"mapped",[24061]],[[194693,194693],"mapped",[24104]],[[194694,194694],"mapped",[24125]],[[194695,194695],"mapped",[24169]],[[194696,194696],"mapped",[14434]],[[194697,194697],"mapped",[139651]],[[194698,194698],"mapped",[14460]],[[194699,194699],"mapped",[24240]],[[194700,194700],"mapped",[24243]],[[194701,194701],"mapped",[24246]],[[194702,194702],"mapped",[24266]],[[194703,194703],"mapped",[172946]],[[194704,194704],"mapped",[24318]],[[194705,194706],"mapped",[140081]],[[194707,194707],"mapped",[33281]],[[194708,194709],"mapped",[24354]],[[194710,194710],"mapped",[14535]],[[194711,194711],"mapped",[144056]],[[194712,194712],"mapped",[156122]],[[194713,194713],"mapped",[24418]],[[194714,194714],"mapped",[24427]],[[194715,194715],"mapped",[14563]],[[194716,194716],"mapped",[24474]],[[194717,194717],"mapped",[24525]],[[194718,194718],"mapped",[24535]],[[194719,194719],"mapped",[24569]],[[194720,194720],"mapped",[24705]],[[194721,194721],"mapped",[14650]],[[194722,194722],"mapped",[14620]],[[194723,194723],"mapped",[24724]],[[194724,194724],"mapped",[141012]],[[194725,194725],"mapped",[24775]],[[194726,194726],"mapped",[24904]],[[194727,194727],"mapped",[24908]],[[194728,194728],"mapped",[24910]],[[194729,194729],"mapped",[24908]],[[194730,194730],"mapped",[24954]],[[194731,194731],"mapped",[24974]],[[194732,194732],"mapped",[25010]],[[194733,194733],"mapped",[24996]],[[194734,194734],"mapped",[25007]],[[194735,194735],"mapped",[25054]],[[194736,194736],"mapped",[25074]],[[194737,194737],"mapped",[25078]],[[194738,194738],"mapped",[25104]],[[194739,194739],"mapped",[25115]],[[194740,194740],"mapped",[25181]],[[194741,194741],"mapped",[25265]],[[194742,194742],"mapped",[25300]],[[194743,194743],"mapped",[25424]],[[194744,194744],"mapped",[142092]],[[194745,194745],"mapped",[25405]],[[194746,194746],"mapped",[25340]],[[194747,194747],"mapped",[25448]],[[194748,194748],"mapped",[25475]],[[194749,194749],"mapped",[25572]],[[194750,194750],"mapped",[142321]],[[194751,194751],"mapped",[25634]],[[194752,194752],"mapped",[25541]],[[194753,194753],"mapped",[25513]],[[194754,194754],"mapped",[14894]],[[194755,194755],"mapped",[25705]],[[194756,194756],"mapped",[25726]],[[194757,194757],"mapped",[25757]],[[194758,194758],"mapped",[25719]],[[194759,194759],"mapped",[14956]],[[194760,194760],"mapped",[25935]],[[194761,194761],"mapped",[25964]],[[194762,194762],"mapped",[143370]],[[194763,194763],"mapped",[26083]],[[194764,194764],"mapped",[26360]],[[194765,194765],"mapped",[26185]],[[194766,194766],"mapped",[15129]],[[194767,194767],"mapped",[26257]],[[194768,194768],"mapped",[15112]],[[194769,194769],"mapped",[15076]],[[194770,194770],"mapped",[20882]],[[194771,194771],"mapped",[20885]],[[194772,194772],"mapped",[26368]],[[194773,194773],"mapped",[26268]],[[194774,194774],"mapped",[32941]],[[194775,194775],"mapped",[17369]],[[194776,194776],"mapped",[26391]],[[194777,194777],"mapped",[26395]],[[194778,194778],"mapped",[26401]],[[194779,194779],"mapped",[26462]],[[194780,194780],"mapped",[26451]],[[194781,194781],"mapped",[144323]],[[194782,194782],"mapped",[15177]],[[194783,194783],"mapped",[26618]],[[194784,194784],"mapped",[26501]],[[194785,194785],"mapped",[26706]],[[194786,194786],"mapped",[26757]],[[194787,194787],"mapped",[144493]],[[194788,194788],"mapped",[26766]],[[194789,194789],"mapped",[26655]],[[194790,194790],"mapped",[26900]],[[194791,194791],"mapped",[15261]],[[194792,194792],"mapped",[26946]],[[194793,194793],"mapped",[27043]],[[194794,194794],"mapped",[27114]],[[194795,194795],"mapped",[27304]],[[194796,194796],"mapped",[145059]],[[194797,194797],"mapped",[27355]],[[194798,194798],"mapped",[15384]],[[194799,194799],"mapped",[27425]],[[194800,194800],"mapped",[145575]],[[194801,194801],"mapped",[27476]],[[194802,194802],"mapped",[15438]],[[194803,194803],"mapped",[27506]],[[194804,194804],"mapped",[27551]],[[194805,194805],"mapped",[27578]],[[194806,194806],"mapped",[27579]],[[194807,194807],"mapped",[146061]],[[194808,194808],"mapped",[138507]],[[194809,194809],"mapped",[146170]],[[194810,194810],"mapped",[27726]],[[194811,194811],"mapped",[146620]],[[194812,194812],"mapped",[27839]],[[194813,194813],"mapped",[27853]],[[194814,194814],"mapped",[27751]],[[194815,194815],"mapped",[27926]],[[194816,194816],"mapped",[27966]],[[194817,194817],"mapped",[28023]],[[194818,194818],"mapped",[27969]],[[194819,194819],"mapped",[28009]],[[194820,194820],"mapped",[28024]],[[194821,194821],"mapped",[28037]],[[194822,194822],"mapped",[146718]],[[194823,194823],"mapped",[27956]],[[194824,194824],"mapped",[28207]],[[194825,194825],"mapped",[28270]],[[194826,194826],"mapped",[15667]],[[194827,194827],"mapped",[28363]],[[194828,194828],"mapped",[28359]],[[194829,194829],"mapped",[147153]],[[194830,194830],"mapped",[28153]],[[194831,194831],"mapped",[28526]],[[194832,194832],"mapped",[147294]],[[194833,194833],"mapped",[147342]],[[194834,194834],"mapped",[28614]],[[194835,194835],"mapped",[28729]],[[194836,194836],"mapped",[28702]],[[194837,194837],"mapped",[28699]],[[194838,194838],"mapped",[15766]],[[194839,194839],"mapped",[28746]],[[194840,194840],"mapped",[28797]],[[194841,194841],"mapped",[28791]],[[194842,194842],"mapped",[28845]],[[194843,194843],"mapped",[132389]],[[194844,194844],"mapped",[28997]],[[194845,194845],"mapped",[148067]],[[194846,194846],"mapped",[29084]],[[194847,194847],"disallowed"],[[194848,194848],"mapped",[29224]],[[194849,194849],"mapped",[29237]],[[194850,194850],"mapped",[29264]],[[194851,194851],"mapped",[149000]],[[194852,194852],"mapped",[29312]],[[194853,194853],"mapped",[29333]],[[194854,194854],"mapped",[149301]],[[194855,194855],"mapped",[149524]],[[194856,194856],"mapped",[29562]],[[194857,194857],"mapped",[29579]],[[194858,194858],"mapped",[16044]],[[194859,194859],"mapped",[29605]],[[194860,194861],"mapped",[16056]],[[194862,194862],"mapped",[29767]],[[194863,194863],"mapped",[29788]],[[194864,194864],"mapped",[29809]],[[194865,194865],"mapped",[29829]],[[194866,194866],"mapped",[29898]],[[194867,194867],"mapped",[16155]],[[194868,194868],"mapped",[29988]],[[194869,194869],"mapped",[150582]],[[194870,194870],"mapped",[30014]],[[194871,194871],"mapped",[150674]],[[194872,194872],"mapped",[30064]],[[194873,194873],"mapped",[139679]],[[194874,194874],"mapped",[30224]],[[194875,194875],"mapped",[151457]],[[194876,194876],"mapped",[151480]],[[194877,194877],"mapped",[151620]],[[194878,194878],"mapped",[16380]],[[194879,194879],"mapped",[16392]],[[194880,194880],"mapped",[30452]],[[194881,194881],"mapped",[151795]],[[194882,194882],"mapped",[151794]],[[194883,194883],"mapped",[151833]],[[194884,194884],"mapped",[151859]],[[194885,194885],"mapped",[30494]],[[194886,194887],"mapped",[30495]],[[194888,194888],"mapped",[30538]],[[194889,194889],"mapped",[16441]],[[194890,194890],"mapped",[30603]],[[194891,194891],"mapped",[16454]],[[194892,194892],"mapped",[16534]],[[194893,194893],"mapped",[152605]],[[194894,194894],"mapped",[30798]],[[194895,194895],"mapped",[30860]],[[194896,194896],"mapped",[30924]],[[194897,194897],"mapped",[16611]],[[194898,194898],"mapped",[153126]],[[194899,194899],"mapped",[31062]],[[194900,194900],"mapped",[153242]],[[194901,194901],"mapped",[153285]],[[194902,194902],"mapped",[31119]],[[194903,194903],"mapped",[31211]],[[194904,194904],"mapped",[16687]],[[194905,194905],"mapped",[31296]],[[194906,194906],"mapped",[31306]],[[194907,194907],"mapped",[31311]],[[194908,194908],"mapped",[153980]],[[194909,194910],"mapped",[154279]],[[194911,194911],"disallowed"],[[194912,194912],"mapped",[16898]],[[194913,194913],"mapped",[154539]],[[194914,194914],"mapped",[31686]],[[194915,194915],"mapped",[31689]],[[194916,194916],"mapped",[16935]],[[194917,194917],"mapped",[154752]],[[194918,194918],"mapped",[31954]],[[194919,194919],"mapped",[17056]],[[194920,194920],"mapped",[31976]],[[194921,194921],"mapped",[31971]],[[194922,194922],"mapped",[32000]],[[194923,194923],"mapped",[155526]],[[194924,194924],"mapped",[32099]],[[194925,194925],"mapped",[17153]],[[194926,194926],"mapped",[32199]],[[194927,194927],"mapped",[32258]],[[194928,194928],"mapped",[32325]],[[194929,194929],"mapped",[17204]],[[194930,194930],"mapped",[156200]],[[194931,194931],"mapped",[156231]],[[194932,194932],"mapped",[17241]],[[194933,194933],"mapped",[156377]],[[194934,194934],"mapped",[32634]],[[194935,194935],"mapped",[156478]],[[194936,194936],"mapped",[32661]],[[194937,194937],"mapped",[32762]],[[194938,194938],"mapped",[32773]],[[194939,194939],"mapped",[156890]],[[194940,194940],"mapped",[156963]],[[194941,194941],"mapped",[32864]],[[194942,194942],"mapped",[157096]],[[194943,194943],"mapped",[32880]],[[194944,194944],"mapped",[144223]],[[194945,194945],"mapped",[17365]],[[194946,194946],"mapped",[32946]],[[194947,194947],"mapped",[33027]],[[194948,194948],"mapped",[17419]],[[194949,194949],"mapped",[33086]],[[194950,194950],"mapped",[23221]],[[194951,194951],"mapped",[157607]],[[194952,194952],"mapped",[157621]],[[194953,194953],"mapped",[144275]],[[194954,194954],"mapped",[144284]],[[194955,194955],"mapped",[33281]],[[194956,194956],"mapped",[33284]],[[194957,194957],"mapped",[36766]],[[194958,194958],"mapped",[17515]],[[194959,194959],"mapped",[33425]],[[194960,194960],"mapped",[33419]],[[194961,194961],"mapped",[33437]],[[194962,194962],"mapped",[21171]],[[194963,194963],"mapped",[33457]],[[194964,194964],"mapped",[33459]],[[194965,194965],"mapped",[33469]],[[194966,194966],"mapped",[33510]],[[194967,194967],"mapped",[158524]],[[194968,194968],"mapped",[33509]],[[194969,194969],"mapped",[33565]],[[194970,194970],"mapped",[33635]],[[194971,194971],"mapped",[33709]],[[194972,194972],"mapped",[33571]],[[194973,194973],"mapped",[33725]],[[194974,194974],"mapped",[33767]],[[194975,194975],"mapped",[33879]],[[194976,194976],"mapped",[33619]],[[194977,194977],"mapped",[33738]],[[194978,194978],"mapped",[33740]],[[194979,194979],"mapped",[33756]],[[194980,194980],"mapped",[158774]],[[194981,194981],"mapped",[159083]],[[194982,194982],"mapped",[158933]],[[194983,194983],"mapped",[17707]],[[194984,194984],"mapped",[34033]],[[194985,194985],"mapped",[34035]],[[194986,194986],"mapped",[34070]],[[194987,194987],"mapped",[160714]],[[194988,194988],"mapped",[34148]],[[194989,194989],"mapped",[159532]],[[194990,194990],"mapped",[17757]],[[194991,194991],"mapped",[17761]],[[194992,194992],"mapped",[159665]],[[194993,194993],"mapped",[159954]],[[194994,194994],"mapped",[17771]],[[194995,194995],"mapped",[34384]],[[194996,194996],"mapped",[34396]],[[194997,194997],"mapped",[34407]],[[194998,194998],"mapped",[34409]],[[194999,194999],"mapped",[34473]],[[195000,195000],"mapped",[34440]],[[195001,195001],"mapped",[34574]],[[195002,195002],"mapped",[34530]],[[195003,195003],"mapped",[34681]],[[195004,195004],"mapped",[34600]],[[195005,195005],"mapped",[34667]],[[195006,195006],"mapped",[34694]],[[195007,195007],"disallowed"],[[195008,195008],"mapped",[34785]],[[195009,195009],"mapped",[34817]],[[195010,195010],"mapped",[17913]],[[195011,195011],"mapped",[34912]],[[195012,195012],"mapped",[34915]],[[195013,195013],"mapped",[161383]],[[195014,195014],"mapped",[35031]],[[195015,195015],"mapped",[35038]],[[195016,195016],"mapped",[17973]],[[195017,195017],"mapped",[35066]],[[195018,195018],"mapped",[13499]],[[195019,195019],"mapped",[161966]],[[195020,195020],"mapped",[162150]],[[195021,195021],"mapped",[18110]],[[195022,195022],"mapped",[18119]],[[195023,195023],"mapped",[35488]],[[195024,195024],"mapped",[35565]],[[195025,195025],"mapped",[35722]],[[195026,195026],"mapped",[35925]],[[195027,195027],"mapped",[162984]],[[195028,195028],"mapped",[36011]],[[195029,195029],"mapped",[36033]],[[195030,195030],"mapped",[36123]],[[195031,195031],"mapped",[36215]],[[195032,195032],"mapped",[163631]],[[195033,195033],"mapped",[133124]],[[195034,195034],"mapped",[36299]],[[195035,195035],"mapped",[36284]],[[195036,195036],"mapped",[36336]],[[195037,195037],"mapped",[133342]],[[195038,195038],"mapped",[36564]],[[195039,195039],"mapped",[36664]],[[195040,195040],"mapped",[165330]],[[195041,195041],"mapped",[165357]],[[195042,195042],"mapped",[37012]],[[195043,195043],"mapped",[37105]],[[195044,195044],"mapped",[37137]],[[195045,195045],"mapped",[165678]],[[195046,195046],"mapped",[37147]],[[195047,195047],"mapped",[37432]],[[195048,195048],"mapped",[37591]],[[195049,195049],"mapped",[37592]],[[195050,195050],"mapped",[37500]],[[195051,195051],"mapped",[37881]],[[195052,195052],"mapped",[37909]],[[195053,195053],"mapped",[166906]],[[195054,195054],"mapped",[38283]],[[195055,195055],"mapped",[18837]],[[195056,195056],"mapped",[38327]],[[195057,195057],"mapped",[167287]],[[195058,195058],"mapped",[18918]],[[195059,195059],"mapped",[38595]],[[195060,195060],"mapped",[23986]],[[195061,195061],"mapped",[38691]],[[195062,195062],"mapped",[168261]],[[195063,195063],"mapped",[168474]],[[195064,195064],"mapped",[19054]],[[195065,195065],"mapped",[19062]],[[195066,195066],"mapped",[38880]],[[195067,195067],"mapped",[168970]],[[195068,195068],"mapped",[19122]],[[195069,195069],"mapped",[169110]],[[195070,195071],"mapped",[38923]],[[195072,195072],"mapped",[38953]],[[195073,195073],"mapped",[169398]],[[195074,195074],"mapped",[39138]],[[195075,195075],"mapped",[19251]],[[195076,195076],"mapped",[39209]],[[195077,195077],"mapped",[39335]],[[195078,195078],"mapped",[39362]],[[195079,195079],"mapped",[39422]],[[195080,195080],"mapped",[19406]],[[195081,195081],"mapped",[170800]],[[195082,195082],"mapped",[39698]],[[195083,195083],"mapped",[40000]],[[195084,195084],"mapped",[40189]],[[195085,195085],"mapped",[19662]],[[195086,195086],"mapped",[19693]],[[195087,195087],"mapped",[40295]],[[195088,195088],"mapped",[172238]],[[195089,195089],"mapped",[19704]],[[195090,195090],"mapped",[172293]],[[195091,195091],"mapped",[172558]],[[195092,195092],"mapped",[172689]],[[195093,195093],"mapped",[40635]],[[195094,195094],"mapped",[19798]],[[195095,195095],"mapped",[40697]],[[195096,195096],"mapped",[40702]],[[195097,195097],"mapped",[40709]],[[195098,195098],"mapped",[40719]],[[195099,195099],"mapped",[40726]],[[195100,195100],"mapped",[40763]],[[195101,195101],"mapped",[173568]],[[195102,196605],"disallowed"],[[196606,196607],"disallowed"],[[196608,262141],"disallowed"],[[262142,262143],"disallowed"],[[262144,327677],"disallowed"],[[327678,327679],"disallowed"],[[327680,393213],"disallowed"],[[393214,393215],"disallowed"],[[393216,458749],"disallowed"],[[458750,458751],"disallowed"],[[458752,524285],"disallowed"],[[524286,524287],"disallowed"],[[524288,589821],"disallowed"],[[589822,589823],"disallowed"],[[589824,655357],"disallowed"],[[655358,655359],"disallowed"],[[655360,720893],"disallowed"],[[720894,720895],"disallowed"],[[720896,786429],"disallowed"],[[786430,786431],"disallowed"],[[786432,851965],"disallowed"],[[851966,851967],"disallowed"],[[851968,917501],"disallowed"],[[917502,917503],"disallowed"],[[917504,917504],"disallowed"],[[917505,917505],"disallowed"],[[917506,917535],"disallowed"],[[917536,917631],"disallowed"],[[917632,917759],"disallowed"],[[917760,917999],"ignored"],[[918000,983037],"disallowed"],[[983038,983039],"disallowed"],[[983040,1048573],"disallowed"],[[1048574,1048575],"disallowed"],[[1048576,1114109],"disallowed"],[[1114110,1114111],"disallowed"]]')}};var __webpack_module_cache__={};function __nccwpck_require__(a){var C=__webpack_module_cache__[a];if(C!==undefined){return C.exports}var q=__webpack_module_cache__[a]={exports:{}};var re=true;try{__webpack_modules__[a].call(q.exports,q,q.exports,__nccwpck_require__);re=false}finally{if(re)delete __webpack_module_cache__[a]}return q.exports}__nccwpck_require__.m=__webpack_modules__;(()=>{__nccwpck_require__.d=(a,C)=>{for(var q in C){if(__nccwpck_require__.o(C,q)&&!__nccwpck_require__.o(a,q)){Object.defineProperty(a,q,{enumerable:true,get:C[q]})}}}})();(()=>{__nccwpck_require__.f={};__nccwpck_require__.e=a=>Promise.all(Object.keys(__nccwpck_require__.f).reduce(((C,q)=>{__nccwpck_require__.f[q](a,C);return C}),[]))})();(()=>{__nccwpck_require__.u=a=>""+a+".index.js"})();(()=>{__nccwpck_require__.o=(a,C)=>Object.prototype.hasOwnProperty.call(a,C)})();if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=new URL(".",import.meta.url).pathname.slice(import.meta.url.match(/^file:\/\/\/\w:/)?1:0,-1)+"/";(()=>{var a={792:0};var installChunk=C=>{var{ids:q,modules:re,runtime:ae}=C;var Ue,lt,Pt=0;for(Ue in re){if(__nccwpck_require__.o(re,Ue)){__nccwpck_require__.m[Ue]=re[Ue]}}if(ae)ae(__nccwpck_require__);for(;Pt{var re=__nccwpck_require__.o(a,C)?a[C]:undefined;if(re!==0){if(re){q.push(re[1])}else{if(true){var ae=import("./"+__nccwpck_require__.u(C)).then(installChunk,(q=>{if(a[C]!==0)a[C]=undefined;throw q}));var ae=Promise.race([ae,new Promise((q=>re=a[C]=[q]))]);q.push(re[1]=ae)}}}}})();var __webpack_exports__={};var core=__nccwpck_require__(7484);var github=__nccwpck_require__(3228);const VERSION="0.39.0";let auto=false;let kind=undefined;let fetch=undefined;let Request=null&&undefined;let Response=null&&undefined;let Headers=null&&undefined;let registry_FormData=null&&undefined;let src_Blob=null&&undefined;let File=undefined;let ReadableStream=undefined;let registry_getMultipartRequestOptions=null&&undefined;let getDefaultAgent=undefined;let fileFromPath=undefined;let registry_isFsReadStream=null&&undefined;function setShims(a,C={auto:false}){if(auto){throw new Error(`you must \`import '@anthropic-ai/sdk/shims/${a.kind}'\` before importing anything else from @anthropic-ai/sdk`)}if(kind){throw new Error(`can't \`import '@anthropic-ai/sdk/shims/${a.kind}'\` after \`import '@anthropic-ai/sdk/shims/${kind}'\``)}auto=C.auto;kind=a.kind;fetch=a.fetch;Request=a.Request;Response=a.Response;Headers=a.Headers;registry_FormData=a.FormData;src_Blob=a.Blob;File=a.File;ReadableStream=a.ReadableStream;registry_getMultipartRequestOptions=a.getMultipartRequestOptions;getDefaultAgent=a.getDefaultAgent;fileFromPath=a.fileFromPath;registry_isFsReadStream=a.isFsReadStream}var lib=__nccwpck_require__(6705);var external_util_=__nccwpck_require__(9023);var esm_File=__nccwpck_require__(2928);var isFile=__nccwpck_require__(928);var esm_Blob=__nccwpck_require__(6220);const isBlob=a=>a instanceof esm_Blob.Y;var isFunction=__nccwpck_require__(5122);const deprecateConstructorEntries=(0,external_util_.deprecate)((()=>{}),'Constructor "entries" argument is not spec-compliant '+"and will be removed in next major release.");var __classPrivateFieldGet=undefined&&undefined.__classPrivateFieldGet||function(a,C,q,re){if(q==="a"&&!re)throw new TypeError("Private accessor was defined without a getter");if(typeof C==="function"?a!==C||!re:!C.has(a))throw new TypeError("Cannot read private member from an object whose class did not declare it");return q==="m"?re:q==="a"?re.call(a):re?re.value:C.get(a)};var _FormData_instances,_FormData_entries,_FormData_setEntry;class FormData_FormData{constructor(a){_FormData_instances.add(this);_FormData_entries.set(this,new Map);if(a){deprecateConstructorEntries();a.forEach((({name:a,value:C,fileName:q})=>this.append(a,C,q)))}}static[(_FormData_entries=new WeakMap,_FormData_instances=new WeakSet,Symbol.hasInstance)](a){return Boolean(a&&(0,isFunction.T)(a.constructor)&&a[Symbol.toStringTag]==="FormData"&&(0,isFunction.T)(a.append)&&(0,isFunction.T)(a.set)&&(0,isFunction.T)(a.get)&&(0,isFunction.T)(a.getAll)&&(0,isFunction.T)(a.has)&&(0,isFunction.T)(a.delete)&&(0,isFunction.T)(a.entries)&&(0,isFunction.T)(a.values)&&(0,isFunction.T)(a.keys)&&(0,isFunction.T)(a[Symbol.iterator])&&(0,isFunction.T)(a.forEach))}append(a,C,q){__classPrivateFieldGet(this,_FormData_instances,"m",_FormData_setEntry).call(this,{name:a,fileName:q,append:true,rawValue:C,argsLength:arguments.length})}set(a,C,q){__classPrivateFieldGet(this,_FormData_instances,"m",_FormData_setEntry).call(this,{name:a,fileName:q,append:false,rawValue:C,argsLength:arguments.length})}get(a){const C=__classPrivateFieldGet(this,_FormData_entries,"f").get(String(a));if(!C){return null}return C[0]}getAll(a){const C=__classPrivateFieldGet(this,_FormData_entries,"f").get(String(a));if(!C){return[]}return C.slice()}has(a){return __classPrivateFieldGet(this,_FormData_entries,"f").has(String(a))}delete(a){__classPrivateFieldGet(this,_FormData_entries,"f").delete(String(a))}*keys(){for(const a of __classPrivateFieldGet(this,_FormData_entries,"f").keys()){yield a}}*entries(){for(const a of this.keys()){const C=this.getAll(a);for(const q of C){yield[a,q]}}}*values(){for(const[,a]of this){yield a}}[(_FormData_setEntry=function _FormData_setEntry({name:a,rawValue:C,append:q,fileName:re,argsLength:ae}){const Ue=q?"append":"set";if(ae<2){throw new TypeError(`Failed to execute '${Ue}' on 'FormData': `+`2 arguments required, but only ${ae} present.`)}a=String(a);let lt;if((0,isFile.f)(C)){lt=re===undefined?C:new esm_File.Z([C],re,{type:C.type,lastModified:C.lastModified})}else if(isBlob(C)){lt=new esm_File.Z([C],re===undefined?"blob":re,{type:C.type})}else if(re){throw new TypeError(`Failed to execute '${Ue}' on 'FormData': `+"parameter 2 is not of type 'Blob'.")}else{lt=String(C)}const Pt=__classPrivateFieldGet(this,_FormData_entries,"f").get(a);if(!Pt){return void __classPrivateFieldGet(this,_FormData_entries,"f").set(a,[lt])}if(!q){return void __classPrivateFieldGet(this,_FormData_entries,"f").set(a,[lt])}Pt.push(lt)},Symbol.iterator)](){return this.entries()}forEach(a,C){for(const[q,re]of this){a.call(C,re,q,this)}}get[Symbol.toStringTag](){return"FormData"}[external_util_.inspect.custom](){return this[Symbol.toStringTag]}}var agentkeepalive=__nccwpck_require__(3873);var abort_controller=__nccwpck_require__(7413);const external_node_fs_namespaceObject=__WEBPACK_EXTERNAL_createRequire(import.meta.url)("node:fs");const alphabet="abcdefghijklmnopqrstuvwxyz0123456789";function createBoundary(){let a=16;let C="";while(a--){C+=alphabet[Math.random()*alphabet.length<<0]}return C}const util_createBoundary=createBoundary;const getType=a=>Object.prototype.toString.call(a).slice(8,-1).toLowerCase();function isPlainObject(a){if(getType(a)!=="object"){return false}const C=Object.getPrototypeOf(a);if(C===null||C===undefined){return true}const q=C.constructor&&C.constructor.toString();return q===Object.toString()}const util_isPlainObject=isPlainObject;const normalizeValue=a=>String(a).replace(/\r|\n/g,((a,C,q)=>{if(a==="\r"&&q[C+1]!=="\n"||a==="\n"&&q[C-1]!=="\r"){return"\r\n"}return a}));const util_normalizeValue=normalizeValue;const escapeName=a=>String(a).replace(/\r/g,"%0D").replace(/\n/g,"%0A").replace(/"/g,"%22");const util_escapeName=escapeName;const isFunction_isFunction=a=>typeof a==="function";const util_isFunction=isFunction_isFunction;const isFileLike=a=>Boolean(a&&typeof a==="object"&&util_isFunction(a.constructor)&&a[Symbol.toStringTag]==="File"&&util_isFunction(a.stream)&&a.name!=null&&a.size!=null&&a.lastModified!=null);const isFormData=a=>Boolean(a&&util_isFunction(a.constructor)&&a[Symbol.toStringTag]==="FormData"&&util_isFunction(a.append)&&util_isFunction(a.getAll)&&util_isFunction(a.entries)&&util_isFunction(a[Symbol.iterator]));const isFormDataLike=null&&isFormData;var __classPrivateFieldSet=undefined&&undefined.__classPrivateFieldSet||function(a,C,q,re,ae){if(re==="m")throw new TypeError("Private method is not writable");if(re==="a"&&!ae)throw new TypeError("Private accessor was defined without a setter");if(typeof C==="function"?a!==C||!ae:!C.has(a))throw new TypeError("Cannot write private member to an object whose class did not declare it");return re==="a"?ae.call(a,q):ae?ae.value=q:C.set(a,q),q};var FormDataEncoder_classPrivateFieldGet=undefined&&undefined.__classPrivateFieldGet||function(a,C,q,re){if(q==="a"&&!re)throw new TypeError("Private accessor was defined without a getter");if(typeof C==="function"?a!==C||!re:!C.has(a))throw new TypeError("Cannot read private member from an object whose class did not declare it");return q==="m"?re:q==="a"?re.call(a):re?re.value:C.get(a)};var _FormDataEncoder_instances,_FormDataEncoder_CRLF,_FormDataEncoder_CRLF_BYTES,_FormDataEncoder_CRLF_BYTES_LENGTH,_FormDataEncoder_DASHES,_FormDataEncoder_encoder,_FormDataEncoder_footer,_FormDataEncoder_form,_FormDataEncoder_options,_FormDataEncoder_getFieldHeader;const defaultOptions={enableAdditionalHeaders:false};class FormDataEncoder{constructor(a,C,q){_FormDataEncoder_instances.add(this);_FormDataEncoder_CRLF.set(this,"\r\n");_FormDataEncoder_CRLF_BYTES.set(this,void 0);_FormDataEncoder_CRLF_BYTES_LENGTH.set(this,void 0);_FormDataEncoder_DASHES.set(this,"-".repeat(2));_FormDataEncoder_encoder.set(this,new TextEncoder);_FormDataEncoder_footer.set(this,void 0);_FormDataEncoder_form.set(this,void 0);_FormDataEncoder_options.set(this,void 0);if(!isFormData(a)){throw new TypeError("Expected first argument to be a FormData instance.")}let re;if(util_isPlainObject(C)){q=C}else{re=C}if(!re){re=util_createBoundary()}if(typeof re!=="string"){throw new TypeError("Expected boundary argument to be a string.")}if(q&&!util_isPlainObject(q)){throw new TypeError("Expected options argument to be an object.")}__classPrivateFieldSet(this,_FormDataEncoder_form,a,"f");__classPrivateFieldSet(this,_FormDataEncoder_options,{...defaultOptions,...q},"f");__classPrivateFieldSet(this,_FormDataEncoder_CRLF_BYTES,FormDataEncoder_classPrivateFieldGet(this,_FormDataEncoder_encoder,"f").encode(FormDataEncoder_classPrivateFieldGet(this,_FormDataEncoder_CRLF,"f")),"f");__classPrivateFieldSet(this,_FormDataEncoder_CRLF_BYTES_LENGTH,FormDataEncoder_classPrivateFieldGet(this,_FormDataEncoder_CRLF_BYTES,"f").byteLength,"f");this.boundary=`form-data-boundary-${re}`;this.contentType=`multipart/form-data; boundary=${this.boundary}`;__classPrivateFieldSet(this,_FormDataEncoder_footer,FormDataEncoder_classPrivateFieldGet(this,_FormDataEncoder_encoder,"f").encode(`${FormDataEncoder_classPrivateFieldGet(this,_FormDataEncoder_DASHES,"f")}${this.boundary}${FormDataEncoder_classPrivateFieldGet(this,_FormDataEncoder_DASHES,"f")}${FormDataEncoder_classPrivateFieldGet(this,_FormDataEncoder_CRLF,"f").repeat(2)}`),"f");this.contentLength=String(this.getContentLength());this.headers=Object.freeze({"Content-Type":this.contentType,"Content-Length":this.contentLength});Object.defineProperties(this,{boundary:{writable:false,configurable:false},contentType:{writable:false,configurable:false},contentLength:{writable:false,configurable:false},headers:{writable:false,configurable:false}})}getContentLength(){let a=0;for(const[C,q]of FormDataEncoder_classPrivateFieldGet(this,_FormDataEncoder_form,"f")){const re=isFileLike(q)?q:FormDataEncoder_classPrivateFieldGet(this,_FormDataEncoder_encoder,"f").encode(util_normalizeValue(q));a+=FormDataEncoder_classPrivateFieldGet(this,_FormDataEncoder_instances,"m",_FormDataEncoder_getFieldHeader).call(this,C,re).byteLength;a+=isFileLike(re)?re.size:re.byteLength;a+=FormDataEncoder_classPrivateFieldGet(this,_FormDataEncoder_CRLF_BYTES_LENGTH,"f")}return a+FormDataEncoder_classPrivateFieldGet(this,_FormDataEncoder_footer,"f").byteLength}*values(){for(const[a,C]of FormDataEncoder_classPrivateFieldGet(this,_FormDataEncoder_form,"f").entries()){const q=isFileLike(C)?C:FormDataEncoder_classPrivateFieldGet(this,_FormDataEncoder_encoder,"f").encode(util_normalizeValue(C));yield FormDataEncoder_classPrivateFieldGet(this,_FormDataEncoder_instances,"m",_FormDataEncoder_getFieldHeader).call(this,a,q);yield q;yield FormDataEncoder_classPrivateFieldGet(this,_FormDataEncoder_CRLF_BYTES,"f")}yield FormDataEncoder_classPrivateFieldGet(this,_FormDataEncoder_footer,"f")}async*encode(){for(const a of this.values()){if(isFileLike(a)){yield*a.stream()}else{yield a}}}[(_FormDataEncoder_CRLF=new WeakMap,_FormDataEncoder_CRLF_BYTES=new WeakMap,_FormDataEncoder_CRLF_BYTES_LENGTH=new WeakMap,_FormDataEncoder_DASHES=new WeakMap,_FormDataEncoder_encoder=new WeakMap,_FormDataEncoder_footer=new WeakMap,_FormDataEncoder_form=new WeakMap,_FormDataEncoder_options=new WeakMap,_FormDataEncoder_instances=new WeakSet,_FormDataEncoder_getFieldHeader=function _FormDataEncoder_getFieldHeader(a,C){let q="";q+=`${FormDataEncoder_classPrivateFieldGet(this,_FormDataEncoder_DASHES,"f")}${this.boundary}${FormDataEncoder_classPrivateFieldGet(this,_FormDataEncoder_CRLF,"f")}`;q+=`Content-Disposition: form-data; name="${util_escapeName(a)}"`;if(isFileLike(C)){q+=`; filename="${util_escapeName(C.name)}"${FormDataEncoder_classPrivateFieldGet(this,_FormDataEncoder_CRLF,"f")}`;q+=`Content-Type: ${C.type||"application/octet-stream"}`}if(FormDataEncoder_classPrivateFieldGet(this,_FormDataEncoder_options,"f").enableAdditionalHeaders===true){q+=`${FormDataEncoder_classPrivateFieldGet(this,_FormDataEncoder_CRLF,"f")}Content-Length: ${isFileLike(C)?C.size:C.byteLength}`}return FormDataEncoder_classPrivateFieldGet(this,_FormDataEncoder_encoder,"f").encode(`${q}${FormDataEncoder_classPrivateFieldGet(this,_FormDataEncoder_CRLF,"f").repeat(2)}`)},Symbol.iterator)](){return this.values()}[Symbol.asyncIterator](){return this.encode()}}const Encoder=null&&FormDataEncoder;var external_node_stream_=__nccwpck_require__(7075);class MultipartBody{constructor(a){this.body=a}get[Symbol.toStringTag](){return"MultipartBody"}}const web_namespaceObject=__WEBPACK_EXTERNAL_createRequire(import.meta.url)("node:stream/web");let fileFromPathWarned=false;async function node_runtime_fileFromPath(a,...C){const{fileFromPath:q}=await __nccwpck_require__.e(33).then(__nccwpck_require__.bind(__nccwpck_require__,2033));if(!fileFromPathWarned){console.warn(`fileFromPath is deprecated; use fs.createReadStream(${JSON.stringify(a)}) instead`);fileFromPathWarned=true}return await q(a,...C)}const defaultHttpAgent=new agentkeepalive({keepAlive:true,timeout:5*60*1e3});const defaultHttpsAgent=new agentkeepalive.HttpsAgent({keepAlive:true,timeout:5*60*1e3});async function node_runtime_getMultipartRequestOptions(a,C){const q=new FormDataEncoder(a);const re=external_node_stream_.Readable.from(q);const ae=new MultipartBody(re);const Ue={...C.headers,...q.headers,"Content-Length":q.contentLength};return{...C,body:ae,headers:Ue}}function getRuntime(){if(typeof AbortController==="undefined"){globalThis.AbortController=abort_controller.AbortController}return{kind:"node",fetch:lib,Request:lib.Request,Response:lib.Response,Headers:lib.Headers,FormData:FormData_FormData,Blob:esm_Blob.Y,File:esm_File.Z,ReadableStream:web_namespaceObject.ReadableStream,getMultipartRequestOptions:node_runtime_getMultipartRequestOptions,getDefaultAgent:a=>a.startsWith("https")?defaultHttpsAgent:defaultHttpAgent,fileFromPath:node_runtime_fileFromPath,isFsReadStream:a=>a instanceof external_node_fs_namespaceObject.ReadStream}}if(!kind)setShims(getRuntime(),{auto:true});class error_AnthropicError extends Error{}class APIError extends error_AnthropicError{constructor(a,C,q,re){super(`${APIError.makeMessage(a,C,q)}`);this.status=a;this.headers=re;this.request_id=re?.["request-id"];this.error=C}static makeMessage(a,C,q){const re=C?.message?typeof C.message==="string"?C.message:JSON.stringify(C.message):C?JSON.stringify(C):q;if(a&&re){return`${a} ${re}`}if(a){return`${a} status code (no body)`}if(re){return re}return"(no status code or body)"}static generate(a,C,q,re){if(!a||!re){return new APIConnectionError({message:q,cause:castToError(C)})}const ae=C;if(a===400){return new BadRequestError(a,ae,q,re)}if(a===401){return new AuthenticationError(a,ae,q,re)}if(a===403){return new PermissionDeniedError(a,ae,q,re)}if(a===404){return new NotFoundError(a,ae,q,re)}if(a===409){return new ConflictError(a,ae,q,re)}if(a===422){return new UnprocessableEntityError(a,ae,q,re)}if(a===429){return new RateLimitError(a,ae,q,re)}if(a>=500){return new InternalServerError(a,ae,q,re)}return new APIError(a,ae,q,re)}}class APIUserAbortError extends APIError{constructor({message:a}={}){super(undefined,undefined,a||"Request was aborted.",undefined)}}class APIConnectionError extends APIError{constructor({message:a,cause:C}){super(undefined,undefined,a||"Connection error.",undefined);if(C)this.cause=C}}class APIConnectionTimeoutError extends APIConnectionError{constructor({message:a}={}){super({message:a??"Request timed out."})}}class BadRequestError extends APIError{}class AuthenticationError extends APIError{}class PermissionDeniedError extends APIError{}class NotFoundError extends APIError{}class ConflictError extends APIError{}class UnprocessableEntityError extends APIError{}class RateLimitError extends APIError{}class InternalServerError extends APIError{}var line_classPrivateFieldSet=undefined&&undefined.__classPrivateFieldSet||function(a,C,q,re,ae){if(re==="m")throw new TypeError("Private method is not writable");if(re==="a"&&!ae)throw new TypeError("Private accessor was defined without a setter");if(typeof C==="function"?a!==C||!ae:!C.has(a))throw new TypeError("Cannot write private member to an object whose class did not declare it");return re==="a"?ae.call(a,q):ae?ae.value=q:C.set(a,q),q};var line_classPrivateFieldGet=undefined&&undefined.__classPrivateFieldGet||function(a,C,q,re){if(q==="a"&&!re)throw new TypeError("Private accessor was defined without a getter");if(typeof C==="function"?a!==C||!re:!C.has(a))throw new TypeError("Cannot read private member from an object whose class did not declare it");return q==="m"?re:q==="a"?re.call(a):re?re.value:C.get(a)};var _LineDecoder_carriageReturnIndex;class LineDecoder{constructor(){_LineDecoder_carriageReturnIndex.set(this,void 0);this.buffer=new Uint8Array;line_classPrivateFieldSet(this,_LineDecoder_carriageReturnIndex,null,"f")}decode(a){if(a==null){return[]}const C=a instanceof ArrayBuffer?new Uint8Array(a):typeof a==="string"?(new TextEncoder).encode(a):a;let q=new Uint8Array(this.buffer.length+C.length);q.set(this.buffer);q.set(C,this.buffer.length);this.buffer=q;const re=[];let ae;while((ae=findNewlineIndex(this.buffer,line_classPrivateFieldGet(this,_LineDecoder_carriageReturnIndex,"f")))!=null){if(ae.carriage&&line_classPrivateFieldGet(this,_LineDecoder_carriageReturnIndex,"f")==null){line_classPrivateFieldSet(this,_LineDecoder_carriageReturnIndex,ae.index,"f");continue}if(line_classPrivateFieldGet(this,_LineDecoder_carriageReturnIndex,"f")!=null&&(ae.index!==line_classPrivateFieldGet(this,_LineDecoder_carriageReturnIndex,"f")+1||ae.carriage)){re.push(this.decodeText(this.buffer.slice(0,line_classPrivateFieldGet(this,_LineDecoder_carriageReturnIndex,"f")-1)));this.buffer=this.buffer.slice(line_classPrivateFieldGet(this,_LineDecoder_carriageReturnIndex,"f"));line_classPrivateFieldSet(this,_LineDecoder_carriageReturnIndex,null,"f");continue}const a=line_classPrivateFieldGet(this,_LineDecoder_carriageReturnIndex,"f")!==null?ae.preceding-1:ae.preceding;const C=this.decodeText(this.buffer.slice(0,a));re.push(C);this.buffer=this.buffer.slice(ae.index);line_classPrivateFieldSet(this,_LineDecoder_carriageReturnIndex,null,"f")}return re}decodeText(a){if(a==null)return"";if(typeof a==="string")return a;if(typeof Buffer!=="undefined"){if(a instanceof Buffer){return a.toString()}if(a instanceof Uint8Array){return Buffer.from(a).toString()}throw new error_AnthropicError(`Unexpected: received non-Uint8Array (${a.constructor.name}) stream chunk in an environment with a global "Buffer" defined, which this library assumes to be Node. Please report this error.`)}if(typeof TextDecoder!=="undefined"){if(a instanceof Uint8Array||a instanceof ArrayBuffer){this.textDecoder??(this.textDecoder=new TextDecoder("utf8"));return this.textDecoder.decode(a)}throw new error_AnthropicError(`Unexpected: received non-Uint8Array/ArrayBuffer (${a.constructor.name}) in a web platform. Please report this error.`)}throw new error_AnthropicError(`Unexpected: neither Buffer nor TextDecoder are available as globals. Please report this error.`)}flush(){if(!this.buffer.length){return[]}return this.decode("\n")}}_LineDecoder_carriageReturnIndex=new WeakMap;LineDecoder.NEWLINE_CHARS=new Set(["\n","\r"]);LineDecoder.NEWLINE_REGEXP=/\r\n|[\n\r]/g;function findNewlineIndex(a,C){const q=10;const re=13;for(let ae=C??0;ae({next:()=>{if(re.length===0){const re=q.next();a.push(re);C.push(re)}return re.shift()}});return[new Stream((()=>teeIterator(a)),this.controller),new Stream((()=>teeIterator(C)),this.controller)]}toReadableStream(){const a=this;let C;const q=new TextEncoder;return new ReadableStream({async start(){C=a[Symbol.asyncIterator]()},async pull(a){try{const{value:re,done:ae}=await C.next();if(ae)return a.close();const Ue=q.encode(JSON.stringify(re)+"\n");a.enqueue(Ue)}catch(C){a.error(C)}},async cancel(){await(C.return?.())}})}}async function*_iterSSEMessages(a,C){if(!a.body){C.abort();throw new error_AnthropicError(`Attempted to iterate over a response with no body`)}const q=new SSEDecoder;const re=new LineDecoder;const ae=ReadableStreamToAsyncIterable(a.body);for await(const a of iterSSEChunks(ae)){for(const C of re.decode(a)){const a=q.decode(C);if(a)yield a}}for(const a of re.flush()){const C=q.decode(a);if(C)yield C}}async function*iterSSEChunks(a){let C=new Uint8Array;for await(const q of a){if(q==null){continue}const a=q instanceof ArrayBuffer?new Uint8Array(q):typeof q==="string"?(new TextEncoder).encode(q):q;let re=new Uint8Array(C.length+a.length);re.set(C);re.set(a,C.length);C=re;let ae;while((ae=findDoubleNewlineIndex(C))!==-1){yield C.slice(0,ae);C=C.slice(ae)}}if(C.length>0){yield C}}class SSEDecoder{constructor(){this.event=null;this.data=[];this.chunks=[]}decode(a){if(a.endsWith("\r")){a=a.substring(0,a.length-1)}if(!a){if(!this.event&&!this.data.length)return null;const a={event:this.event,data:this.data.join("\n"),raw:this.chunks};this.event=null;this.data=[];this.chunks=[];return a}this.chunks.push(a);if(a.startsWith(":")){return null}let[C,q,re]=partition(a,":");if(re.startsWith(" ")){re=re.substring(1)}if(C==="event"){this.event=re}else if(C==="data"){this.data.push(re)}return null}}function partition(a,C){const q=a.indexOf(C);if(q!==-1){return[a.substring(0,q),C,a.substring(q+C.length)]}return[a,"",""]}const isResponseLike=a=>a!=null&&typeof a==="object"&&typeof a.url==="string"&&typeof a.blob==="function";const uploads_isFileLike=a=>a!=null&&typeof a==="object"&&typeof a.name==="string"&&typeof a.lastModified==="number"&&isBlobLike(a);const isBlobLike=a=>a!=null&&typeof a==="object"&&typeof a.size==="number"&&typeof a.type==="string"&&typeof a.text==="function"&&typeof a.slice==="function"&&typeof a.arrayBuffer==="function";const isUploadable=a=>uploads_isFileLike(a)||isResponseLike(a)||isFsReadStream(a);async function toFile(a,C,q){a=await a;if(uploads_isFileLike(a)){return a}if(isResponseLike(a)){const re=await a.blob();C||(C=new URL(a.url).pathname.split(/[\\/]/).pop()??"unknown_file");const ae=isBlobLike(re)?[await re.arrayBuffer()]:[re];return new File(ae,C,q)}const re=await getBytes(a);C||(C=getName(a)??"unknown_file");if(!q?.type){const a=re[0]?.type;if(typeof a==="string"){q={...q,type:a}}}return new File(re,C,q)}async function getBytes(a){let C=[];if(typeof a==="string"||ArrayBuffer.isView(a)||a instanceof ArrayBuffer){C.push(a)}else if(isBlobLike(a)){C.push(await a.arrayBuffer())}else if(isAsyncIterableIterator(a)){for await(const q of a){C.push(q)}}else{throw new Error(`Unexpected data type: ${typeof a}; constructor: ${a?.constructor?.name}; props: ${propsForError(a)}`)}return C}function propsForError(a){const C=Object.getOwnPropertyNames(a);return`[${C.map((a=>`"${a}"`)).join(", ")}]`}function getName(a){return getStringFromMaybeBuffer(a.name)||getStringFromMaybeBuffer(a.filename)||getStringFromMaybeBuffer(a.path)?.split(/[\\/]/).pop()}const getStringFromMaybeBuffer=a=>{if(typeof a==="string")return a;if(typeof Buffer!=="undefined"&&a instanceof Buffer)return String(a);return undefined};const isAsyncIterableIterator=a=>a!=null&&typeof a==="object"&&typeof a[Symbol.asyncIterator]==="function";const isMultipartBody=a=>a&&typeof a==="object"&&a.body&&a[Symbol.toStringTag]==="MultipartBody";const maybeMultipartFormRequestOptions=async a=>{if(!hasUploadableValue(a.body))return a;const C=await createForm(a.body);return getMultipartRequestOptions(C,a)};const multipartFormRequestOptions=async a=>{const C=await createForm(a.body);return getMultipartRequestOptions(C,a)};const createForm=async a=>{const C=new FormData;await Promise.all(Object.entries(a||{}).map((([a,q])=>addFormValue(C,a,q))));return C};const hasUploadableValue=a=>{if(isUploadable(a))return true;if(Array.isArray(a))return a.some(hasUploadableValue);if(a&&typeof a==="object"){for(const C in a){if(hasUploadableValue(a[C]))return true}}return false};const addFormValue=async(a,C,q)=>{if(q===undefined)return;if(q==null){throw new TypeError(`Received null for "${C}"; to pass null in FormData, you must use the string 'null'`)}if(typeof q==="string"||typeof q==="number"||typeof q==="boolean"){a.append(C,String(q))}else if(isUploadable(q)){const re=await toFile(q);a.append(C,re)}else if(Array.isArray(q)){await Promise.all(q.map((q=>addFormValue(a,C+"[]",q))))}else if(typeof q==="object"){await Promise.all(Object.entries(q).map((([q,re])=>addFormValue(a,`${C}[${q}]`,re))))}else{throw new TypeError(`Invalid value given to form, expected a string, number, boolean, object, Array, File or Blob but got ${q} instead`)}};var core_classPrivateFieldSet=undefined&&undefined.__classPrivateFieldSet||function(a,C,q,re,ae){if(re==="m")throw new TypeError("Private method is not writable");if(re==="a"&&!ae)throw new TypeError("Private accessor was defined without a setter");if(typeof C==="function"?a!==C||!ae:!C.has(a))throw new TypeError("Cannot write private member to an object whose class did not declare it");return re==="a"?ae.call(a,q):ae?ae.value=q:C.set(a,q),q};var core_classPrivateFieldGet=undefined&&undefined.__classPrivateFieldGet||function(a,C,q,re){if(q==="a"&&!re)throw new TypeError("Private accessor was defined without a getter");if(typeof C==="function"?a!==C||!re:!C.has(a))throw new TypeError("Cannot read private member from an object whose class did not declare it");return q==="m"?re:q==="a"?re.call(a):re?re.value:C.get(a)};var _AbstractPage_client;async function defaultParseResponse(a){const{response:C}=a;if(a.options.stream){debug("response",C.status,C.url,C.headers,C.body);if(a.options.__streamClass){return a.options.__streamClass.fromSSEResponse(C,a.controller)}return Stream.fromSSEResponse(C,a.controller)}if(C.status===204){return null}if(a.options.__binaryResponse){return C}const q=C.headers.get("content-type");const re=q?.includes("application/json")||q?.includes("application/vnd.api+json");if(re){const a=await C.json();debug("response",C.status,C.url,C.headers,a);return _addRequestID(a,C)}const ae=await C.text();debug("response",C.status,C.url,C.headers,ae);return ae}function _addRequestID(a,C){if(!a||typeof a!=="object"||Array.isArray(a)){return a}return Object.defineProperty(a,"_request_id",{value:C.headers.get("request-id"),enumerable:false})}class APIPromise extends Promise{constructor(a,C=defaultParseResponse){super((a=>{a(null)}));this.responsePromise=a;this.parseResponse=C}_thenUnwrap(a){return new APIPromise(this.responsePromise,(async C=>_addRequestID(a(await this.parseResponse(C),C),C.response)))}asResponse(){return this.responsePromise.then((a=>a.response))}async withResponse(){const[a,C]=await Promise.all([this.parse(),this.asResponse()]);return{data:a,response:C,request_id:C.headers.get("request-id")}}parse(){if(!this.parsedPromise){this.parsedPromise=this.responsePromise.then(this.parseResponse)}return this.parsedPromise}then(a,C){return this.parse().then(a,C)}catch(a){return this.parse().catch(a)}finally(a){return this.parse().finally(a)}}class APIClient{constructor({baseURL:a,maxRetries:C=2,timeout:q=6e5,httpAgent:re,fetch:ae}){this.baseURL=a;this.maxRetries=validatePositiveInteger("maxRetries",C);this.timeout=validatePositiveInteger("timeout",q);this.httpAgent=re;this.fetch=ae??fetch}authHeaders(a){return{}}defaultHeaders(a){return{Accept:"application/json","Content-Type":"application/json","User-Agent":this.getUserAgent(),...getPlatformHeaders(),...this.authHeaders(a)}}validateHeaders(a,C){}defaultIdempotencyKey(){return`stainless-node-retry-${uuid4()}`}get(a,C){return this.methodRequest("get",a,C)}post(a,C){return this.methodRequest("post",a,C)}patch(a,C){return this.methodRequest("patch",a,C)}put(a,C){return this.methodRequest("put",a,C)}delete(a,C){return this.methodRequest("delete",a,C)}methodRequest(a,C,q){return this.request(Promise.resolve(q).then((async q=>{const re=q&&isBlobLike(q?.body)?new DataView(await q.body.arrayBuffer()):q?.body instanceof DataView?q.body:q?.body instanceof ArrayBuffer?new DataView(q.body):q&&ArrayBuffer.isView(q?.body)?new DataView(q.body.buffer):q?.body;return{method:a,path:C,...q,body:re}})))}getAPIList(a,C,q){return this.requestAPIList(C,{method:"get",path:a,...q})}calculateContentLength(a){if(typeof a==="string"){if(typeof Buffer!=="undefined"){return Buffer.byteLength(a,"utf8").toString()}if(typeof TextEncoder!=="undefined"){const C=new TextEncoder;const q=C.encode(a);return q.length.toString()}}else if(ArrayBuffer.isView(a)){return a.byteLength.toString()}return null}buildRequest(a,{retryCount:C=0}={}){a={...a};const{method:q,path:re,query:ae,headers:Ue={}}=a;const lt=ArrayBuffer.isView(a.body)||a.__binaryRequest&&typeof a.body==="string"?a.body:isMultipartBody(a.body)?a.body.body:a.body?JSON.stringify(a.body,null,2):null;const Pt=this.calculateContentLength(lt);const Wt=this.buildURL(re,ae);if("timeout"in a)validatePositiveInteger("timeout",a.timeout);a.timeout=a.timeout??this.timeout;const Ar=a.httpAgent??this.httpAgent??getDefaultAgent(Wt);const Er=a.timeout+1e3;if(typeof Ar?.options?.timeout==="number"&&Er>(Ar.options.timeout??0)){Ar.options.timeout=Er}if(this.idempotencyHeader&&q!=="get"){if(!a.idempotencyKey)a.idempotencyKey=this.defaultIdempotencyKey();Ue[this.idempotencyHeader]=a.idempotencyKey}const Br=this.buildHeaders({options:a,headers:Ue,contentLength:Pt,retryCount:C});const Qr={method:q,...lt&&{body:lt},headers:Br,...Ar&&{agent:Ar},signal:a.signal??null};return{req:Qr,url:Wt,timeout:a.timeout}}buildHeaders({options:a,headers:C,contentLength:q,retryCount:re}){const ae={};if(q){ae["content-length"]=q}const Ue=this.defaultHeaders(a);applyHeadersMut(ae,Ue);applyHeadersMut(ae,C);if(isMultipartBody(a.body)&&kind!=="node"){delete ae["content-type"]}if(getHeader(Ue,"x-stainless-retry-count")===undefined&&getHeader(C,"x-stainless-retry-count")===undefined){ae["x-stainless-retry-count"]=String(re)}if(getHeader(Ue,"x-stainless-timeout")===undefined&&getHeader(C,"x-stainless-timeout")===undefined&&a.timeout){ae["x-stainless-timeout"]=String(a.timeout)}this.validateHeaders(ae,C);return ae}_calculateNonstreamingTimeout(a){const C=10*60;const q=60*60*a/128e3;if(q>C){throw new error_AnthropicError("Streaming is strongly recommended for operations that may take longer than 10 minutes. "+"See https://github.com/anthropics/anthropic-sdk-python#streaming-responses for more details")}return C*1e3}async prepareOptions(a){}async prepareRequest(a,{url:C,options:q}){}parseHeaders(a){return!a?{}:Symbol.iterator in a?Object.fromEntries(Array.from(a).map((a=>[...a]))):{...a}}makeStatusError(a,C,q,re){return APIError.generate(a,C,q,re)}request(a,C=null){return new APIPromise(this.makeRequest(a,C))}async makeRequest(a,C){const q=await a;const re=q.maxRetries??this.maxRetries;if(C==null){C=re}await this.prepareOptions(q);const{req:ae,url:Ue,timeout:lt}=this.buildRequest(q,{retryCount:re-C});await this.prepareRequest(ae,{url:Ue,options:q});debug("request",Ue,q,ae.headers);if(q.signal?.aborted){throw new APIUserAbortError}const Pt=new AbortController;const Wt=await this.fetchWithTimeout(Ue,ae,lt,Pt).catch(castToError);if(Wt instanceof Error){if(q.signal?.aborted){throw new APIUserAbortError}if(C){return this.retryRequest(q,C)}if(Wt.name==="AbortError"){throw new APIConnectionTimeoutError}throw new APIConnectionError({cause:Wt})}const Ar=createResponseHeaders(Wt.headers);if(!Wt.ok){if(C&&this.shouldRetry(Wt)){const a=`retrying, ${C} attempts remaining`;debug(`response (error; ${a})`,Wt.status,Ue,Ar);return this.retryRequest(q,C,Ar)}const a=await Wt.text().catch((a=>castToError(a).message));const re=safeJSON(a);const ae=re?undefined:a;const lt=C?`(error; no more retries left)`:`(error; not retryable)`;debug(`response (error; ${lt})`,Wt.status,Ue,Ar,ae);const Pt=this.makeStatusError(Wt.status,re,ae,Ar);throw Pt}return{response:Wt,options:q,controller:Pt}}requestAPIList(a,C){const q=this.makeRequest(C,null);return new PagePromise(this,q,a)}buildURL(a,C){const q=isAbsoluteURL(a)?new URL(a):new URL(this.baseURL+(this.baseURL.endsWith("/")&&a.startsWith("/")?a.slice(1):a));const re=this.defaultQuery();if(!isEmptyObj(re)){C={...re,...C}}if(typeof C==="object"&&C&&!Array.isArray(C)){q.search=this.stringifyQuery(C)}return q.toString()}stringifyQuery(a){return Object.entries(a).filter((([a,C])=>typeof C!=="undefined")).map((([a,C])=>{if(typeof C==="string"||typeof C==="number"||typeof C==="boolean"){return`${encodeURIComponent(a)}=${encodeURIComponent(C)}`}if(C===null){return`${encodeURIComponent(a)}=`}throw new error_AnthropicError(`Cannot stringify type ${typeof C}; 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("&")}async fetchWithTimeout(a,C,q,re){const{signal:ae,...Ue}=C||{};if(ae)ae.addEventListener("abort",(()=>re.abort()));const lt=setTimeout((()=>re.abort()),q);const Pt={signal:re.signal,...Ue};if(Pt.method){Pt.method=Pt.method.toUpperCase()}const Wt=60*1e3;const Ar=setTimeout((()=>{if(Pt&&Pt?.agent?.sockets){for(const a of Object.values(Pt?.agent?.sockets).flat()){if(a?.setKeepAlive){a.setKeepAlive(true,Wt)}}}}),Wt);return this.fetch.call(undefined,a,Pt).finally((()=>{clearTimeout(lt);clearTimeout(Ar)}))}shouldRetry(a){const C=a.headers.get("x-should-retry");if(C==="true")return true;if(C==="false")return false;if(a.status===408)return true;if(a.status===409)return true;if(a.status===429)return true;if(a.status>=500)return true;return false}async retryRequest(a,C,q){let re;const ae=q?.["retry-after-ms"];if(ae){const a=parseFloat(ae);if(!Number.isNaN(a)){re=a}}const Ue=q?.["retry-after"];if(Ue&&!re){const a=parseFloat(Ue);if(!Number.isNaN(a)){re=a*1e3}else{re=Date.parse(Ue)-Date.now()}}if(!(re&&0<=re&&re<60*1e3)){const q=a.maxRetries??this.maxRetries;re=this.calculateDefaultRetryTimeoutMillis(C,q)}await sleep(re);return this.makeRequest(a,C-1)}calculateDefaultRetryTimeoutMillis(a,C){const q=.5;const re=8;const ae=C-a;const Ue=Math.min(q*Math.pow(2,ae),re);const lt=1-Math.random()*.25;return Ue*lt*1e3}getUserAgent(){return`${this.constructor.name}/JS ${VERSION}`}}class AbstractPage{constructor(a,C,q,re){_AbstractPage_client.set(this,void 0);core_classPrivateFieldSet(this,_AbstractPage_client,a,"f");this.options=re;this.response=C;this.body=q}hasNextPage(){const a=this.getPaginatedItems();if(!a.length)return false;return this.nextPageInfo()!=null}async getNextPage(){const a=this.nextPageInfo();if(!a){throw new error_AnthropicError("No next page expected; please check `.hasNextPage()` before calling `.getNextPage()`.")}const C={...this.options};if("params"in a&&typeof C.query==="object"){C.query={...C.query,...a.params}}else if("url"in a){const q=[...Object.entries(C.query||{}),...a.url.searchParams.entries()];for(const[C,re]of q){a.url.searchParams.set(C,re)}C.query=undefined;C.path=a.url.toString()}return await core_classPrivateFieldGet(this,_AbstractPage_client,"f").requestAPIList(this.constructor,C)}async*iterPages(){let a=this;yield a;while(a.hasNextPage()){a=await a.getNextPage();yield a}}async*[(_AbstractPage_client=new WeakMap,Symbol.asyncIterator)](){for await(const a of this.iterPages()){for(const C of a.getPaginatedItems()){yield C}}}}class PagePromise extends APIPromise{constructor(a,C,q){super(C,(async C=>new q(a,C.response,await defaultParseResponse(C),C.options)))}async*[Symbol.asyncIterator](){const a=await(this);for await(const C of a){yield C}}}const createResponseHeaders=a=>new Proxy(Object.fromEntries(a.entries()),{get(a,C){const q=C.toString();return a[q.toLowerCase()]||a[q]}});const requestOptionsKeys={method:true,path:true,query:true,body:true,headers:true,maxRetries:true,stream:true,timeout:true,httpAgent:true,signal:true,idempotencyKey:true,__binaryRequest:true,__binaryResponse:true,__streamClass:true};const isRequestOptions=a=>typeof a==="object"&&a!==null&&!isEmptyObj(a)&&Object.keys(a).every((a=>hasOwn(requestOptionsKeys,a)));const getPlatformProperties=()=>{if(typeof Deno!=="undefined"&&Deno.build!=null){return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":VERSION,"X-Stainless-OS":normalizePlatform(Deno.build.os),"X-Stainless-Arch":normalizeArch(Deno.build.arch),"X-Stainless-Runtime":"deno","X-Stainless-Runtime-Version":typeof Deno.version==="string"?Deno.version:Deno.version?.deno??"unknown"}}if(typeof EdgeRuntime!=="undefined"){return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":VERSION,"X-Stainless-OS":"Unknown","X-Stainless-Arch":`other:${EdgeRuntime}`,"X-Stainless-Runtime":"edge","X-Stainless-Runtime-Version":process.version}}if(Object.prototype.toString.call(typeof process!=="undefined"?process:0)==="[object process]"){return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":VERSION,"X-Stainless-OS":normalizePlatform(process.platform),"X-Stainless-Arch":normalizeArch(process.arch),"X-Stainless-Runtime":"node","X-Stainless-Runtime-Version":process.version}}const a=getBrowserInfo();if(a){return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":VERSION,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":`browser:${a.browser}`,"X-Stainless-Runtime-Version":a.version}}return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":VERSION,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":"unknown","X-Stainless-Runtime-Version":"unknown"}};function getBrowserInfo(){if(typeof navigator==="undefined"||!navigator){return null}const a=[{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(const{key:C,pattern:q}of a){const a=q.exec(navigator.userAgent);if(a){const q=a[1]||0;const re=a[2]||0;const ae=a[3]||0;return{browser:C,version:`${q}.${re}.${ae}`}}}return null}const normalizeArch=a=>{if(a==="x32")return"x32";if(a==="x86_64"||a==="x64")return"x64";if(a==="arm")return"arm";if(a==="aarch64"||a==="arm64")return"arm64";if(a)return`other:${a}`;return"unknown"};const normalizePlatform=a=>{a=a.toLowerCase();if(a.includes("ios"))return"iOS";if(a==="android")return"Android";if(a==="darwin")return"MacOS";if(a==="win32")return"Windows";if(a==="freebsd")return"FreeBSD";if(a==="openbsd")return"OpenBSD";if(a==="linux")return"Linux";if(a)return`Other:${a}`;return"Unknown"};let _platformHeaders;const getPlatformHeaders=()=>_platformHeaders??(_platformHeaders=getPlatformProperties());const safeJSON=a=>{try{return JSON.parse(a)}catch(a){return undefined}};const startsWithSchemeRegexp=/^[a-z][a-z0-9+.-]*:/i;const isAbsoluteURL=a=>startsWithSchemeRegexp.test(a);const sleep=a=>new Promise((C=>setTimeout(C,a)));const validatePositiveInteger=(a,C)=>{if(typeof C!=="number"||!Number.isInteger(C)){throw new error_AnthropicError(`${a} must be an integer`)}if(C<0){throw new error_AnthropicError(`${a} must be a positive integer`)}return C};const castToError=a=>{if(a instanceof Error)return a;if(typeof a==="object"&&a!==null){try{return new Error(JSON.stringify(a))}catch{}}return new Error(String(a))};const ensurePresent=a=>{if(a==null)throw new AnthropicError(`Expected a value to be given but received ${a} instead.`);return a};const readEnv=a=>{if(typeof process!=="undefined"){return process.env?.[a]?.trim()??undefined}if(typeof Deno!=="undefined"){return Deno.env?.get?.(a)?.trim()}return undefined};const coerceInteger=a=>{if(typeof a==="number")return Math.round(a);if(typeof a==="string")return parseInt(a,10);throw new AnthropicError(`Could not coerce ${a} (type: ${typeof a}) into a number`)};const coerceFloat=a=>{if(typeof a==="number")return a;if(typeof a==="string")return parseFloat(a);throw new AnthropicError(`Could not coerce ${a} (type: ${typeof a}) into a number`)};const coerceBoolean=a=>{if(typeof a==="boolean")return a;if(typeof a==="string")return a==="true";return Boolean(a)};const maybeCoerceInteger=a=>{if(a===undefined){return undefined}return coerceInteger(a)};const maybeCoerceFloat=a=>{if(a===undefined){return undefined}return coerceFloat(a)};const maybeCoerceBoolean=a=>{if(a===undefined){return undefined}return coerceBoolean(a)};function isEmptyObj(a){if(!a)return true;for(const C in a)return false;return true}function hasOwn(a,C){return Object.prototype.hasOwnProperty.call(a,C)}function applyHeadersMut(a,C){for(const q in C){if(!hasOwn(C,q))continue;const re=q.toLowerCase();if(!re)continue;const ae=C[q];if(ae===null){delete a[re]}else if(ae!==undefined){a[re]=ae}}}function debug(a,...C){if(typeof process!=="undefined"&&process?.env?.["DEBUG"]==="true"){console.log(`Anthropic:DEBUG:${a}`,...C)}}const uuid4=()=>"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(a=>{const C=Math.random()*16|0;const q=a==="x"?C:C&3|8;return q.toString(16)}));const isRunningInBrowser=()=>typeof window!=="undefined"&&typeof window.document!=="undefined"&&typeof navigator!=="undefined";const isHeadersProtocol=a=>typeof a?.get==="function";const getRequiredHeader=(a,C)=>{const q=getHeader(a,C);if(q===undefined){throw new Error(`Could not find ${C} header`)}return q};const getHeader=(a,C)=>{const q=C.toLowerCase();if(isHeadersProtocol(a)){const re=C[0]?.toUpperCase()+C.substring(1).replace(/([^\w])(\w)/g,((a,C,q)=>C+q.toUpperCase()));for(const ae of[C,q,C.toUpperCase(),re]){const C=a.get(ae);if(C){return C}}}for(const[re,ae]of Object.entries(a)){if(re.toLowerCase()===q){if(Array.isArray(ae)){if(ae.length<=1)return ae[0];console.warn(`Received ${ae.length} entries for the ${C} header, using the first entry.`);return ae[0]}return ae}}return undefined};const toBase64=a=>{if(!a)return"";if(typeof Buffer!=="undefined"){return Buffer.from(a).toString("base64")}if(typeof btoa!=="undefined"){return btoa(a)}throw new AnthropicError("Cannot generate b64 string; Expected `Buffer` or `btoa` to be defined")};function isObj(a){return a!=null&&typeof a==="object"&&!Array.isArray(a)}class APIResource{constructor(a){this._client=a}}class Completions extends APIResource{create(a,C){return this._client.post("/v1/complete",{body:a,timeout:this._client._options.timeout??6e5,...C,stream:a.stream??false})}}class Page extends AbstractPage{constructor(a,C,q,re){super(a,C,q,re);this.data=q.data||[];this.has_more=q.has_more||false;this.first_id=q.first_id||null;this.last_id=q.last_id||null}getPaginatedItems(){return this.data??[]}hasNextPage(){if(this.has_more===false){return false}return super.hasNextPage()}nextPageParams(){const a=this.nextPageInfo();if(!a)return null;if("params"in a)return a.params;const C=Object.fromEntries(a.url.searchParams);if(!Object.keys(C).length)return null;return C}nextPageInfo(){if(this.options.query?.["before_id"]){const a=this.first_id;if(!a){return null}return{params:{before_id:a}}}const a=this.last_id;if(!a){return null}return{params:{after_id:a}}}}class JSONLDecoder{constructor(a,C){this.iterator=a;this.controller=C}async*decoder(){const a=new LineDecoder;for await(const C of this.iterator){for(const q of a.decode(C)){yield JSON.parse(q)}}for(const C of a.flush()){yield JSON.parse(C)}}[Symbol.asyncIterator](){return this.decoder()}static fromResponse(a,C){if(!a.body){C.abort();throw new error_AnthropicError(`Attempted to iterate over a response with no body`)}return new JSONLDecoder(ReadableStreamToAsyncIterable(a.body),C)}}class Batches extends APIResource{create(a,C){return this._client.post("/v1/messages/batches",{body:a,...C})}retrieve(a,C){return this._client.get(`/v1/messages/batches/${a}`,C)}list(a={},C){if(isRequestOptions(a)){return this.list({},a)}return this._client.getAPIList("/v1/messages/batches",MessageBatchesPage,{query:a,...C})}delete(a,C){return this._client.delete(`/v1/messages/batches/${a}`,C)}cancel(a,C){return this._client.post(`/v1/messages/batches/${a}/cancel`,C)}async results(a,C){const q=await this.retrieve(a);if(!q.results_url){throw new error_AnthropicError(`No batch \`results_url\`; Has it finished processing? ${q.processing_status} - ${q.id}`)}return this._client.get(q.results_url,{...C,headers:{Accept:"application/binary",...C?.headers},__binaryResponse:true})._thenUnwrap(((a,C)=>JSONLDecoder.fromResponse(C.response,C.controller)))}}class MessageBatchesPage extends Page{}Batches.MessageBatchesPage=MessageBatchesPage;const tokenize=a=>{let C=0;let q=[];while(C{if(a.length===0){return a}let C=a[a.length-1];switch(C.type){case"separator":a=a.slice(0,a.length-1);return strip(a);break;case"number":let q=C.value[C.value.length-1];if(q==="."||q==="-"){a=a.slice(0,a.length-1);return strip(a)}case"string":let re=a[a.length-2];if(re?.type==="delimiter"){a=a.slice(0,a.length-1);return strip(a)}else if(re?.type==="brace"&&re.value==="{"){a=a.slice(0,a.length-1);return strip(a)}break;case"delimiter":a=a.slice(0,a.length-1);return strip(a);break}return a},unstrip=a=>{let C=[];a.map((a=>{if(a.type==="brace"){if(a.value==="{"){C.push("}")}else{C.splice(C.lastIndexOf("}"),1)}}if(a.type==="paren"){if(a.value==="["){C.push("]")}else{C.splice(C.lastIndexOf("]"),1)}}}));if(C.length>0){C.reverse().map((C=>{if(C==="}"){a.push({type:"brace",value:"}"})}else if(C==="]"){a.push({type:"paren",value:"]"})}}))}return a},generate=a=>{let C="";a.map((a=>{switch(a.type){case"string":C+='"'+a.value+'"';break;default:C+=a.value;break}}));return C},partialParse=a=>JSON.parse(generate(unstrip(strip(tokenize(a)))));var MessageStream_classPrivateFieldSet=undefined&&undefined.__classPrivateFieldSet||function(a,C,q,re,ae){if(re==="m")throw new TypeError("Private method is not writable");if(re==="a"&&!ae)throw new TypeError("Private accessor was defined without a setter");if(typeof C==="function"?a!==C||!ae:!C.has(a))throw new TypeError("Cannot write private member to an object whose class did not declare it");return re==="a"?ae.call(a,q):ae?ae.value=q:C.set(a,q),q};var MessageStream_classPrivateFieldGet=undefined&&undefined.__classPrivateFieldGet||function(a,C,q,re){if(q==="a"&&!re)throw new TypeError("Private accessor was defined without a getter");if(typeof C==="function"?a!==C||!re:!C.has(a))throw new TypeError("Cannot read private member from an object whose class did not declare it");return q==="m"?re:q==="a"?re.call(a):re?re.value:C.get(a)};var _MessageStream_instances,_MessageStream_currentMessageSnapshot,_MessageStream_connectedPromise,_MessageStream_resolveConnectedPromise,_MessageStream_rejectConnectedPromise,_MessageStream_endPromise,_MessageStream_resolveEndPromise,_MessageStream_rejectEndPromise,_MessageStream_listeners,_MessageStream_ended,_MessageStream_errored,_MessageStream_aborted,_MessageStream_catchingPromiseCreated,_MessageStream_response,_MessageStream_request_id,_MessageStream_getFinalMessage,_MessageStream_getFinalText,_MessageStream_handleError,_MessageStream_beginRequest,_MessageStream_addStreamEvent,_MessageStream_endRequest,_MessageStream_accumulateMessage;const JSON_BUF_PROPERTY="__json_buf";class MessageStream{constructor(){_MessageStream_instances.add(this);this.messages=[];this.receivedMessages=[];_MessageStream_currentMessageSnapshot.set(this,void 0);this.controller=new AbortController;_MessageStream_connectedPromise.set(this,void 0);_MessageStream_resolveConnectedPromise.set(this,(()=>{}));_MessageStream_rejectConnectedPromise.set(this,(()=>{}));_MessageStream_endPromise.set(this,void 0);_MessageStream_resolveEndPromise.set(this,(()=>{}));_MessageStream_rejectEndPromise.set(this,(()=>{}));_MessageStream_listeners.set(this,{});_MessageStream_ended.set(this,false);_MessageStream_errored.set(this,false);_MessageStream_aborted.set(this,false);_MessageStream_catchingPromiseCreated.set(this,false);_MessageStream_response.set(this,void 0);_MessageStream_request_id.set(this,void 0);_MessageStream_handleError.set(this,(a=>{MessageStream_classPrivateFieldSet(this,_MessageStream_errored,true,"f");if(a instanceof Error&&a.name==="AbortError"){a=new APIUserAbortError}if(a instanceof APIUserAbortError){MessageStream_classPrivateFieldSet(this,_MessageStream_aborted,true,"f");return this._emit("abort",a)}if(a instanceof error_AnthropicError){return this._emit("error",a)}if(a instanceof Error){const C=new error_AnthropicError(a.message);C.cause=a;return this._emit("error",C)}return this._emit("error",new error_AnthropicError(String(a)))}));MessageStream_classPrivateFieldSet(this,_MessageStream_connectedPromise,new Promise(((a,C)=>{MessageStream_classPrivateFieldSet(this,_MessageStream_resolveConnectedPromise,a,"f");MessageStream_classPrivateFieldSet(this,_MessageStream_rejectConnectedPromise,C,"f")})),"f");MessageStream_classPrivateFieldSet(this,_MessageStream_endPromise,new Promise(((a,C)=>{MessageStream_classPrivateFieldSet(this,_MessageStream_resolveEndPromise,a,"f");MessageStream_classPrivateFieldSet(this,_MessageStream_rejectEndPromise,C,"f")})),"f");MessageStream_classPrivateFieldGet(this,_MessageStream_connectedPromise,"f").catch((()=>{}));MessageStream_classPrivateFieldGet(this,_MessageStream_endPromise,"f").catch((()=>{}))}get response(){return MessageStream_classPrivateFieldGet(this,_MessageStream_response,"f")}get request_id(){return MessageStream_classPrivateFieldGet(this,_MessageStream_request_id,"f")}async withResponse(){const a=await MessageStream_classPrivateFieldGet(this,_MessageStream_connectedPromise,"f");if(!a){throw new Error("Could not resolve a `Response` object")}return{data:this,response:a,request_id:a.headers.get("request-id")}}static fromReadableStream(a){const C=new MessageStream;C._run((()=>C._fromReadableStream(a)));return C}static createMessage(a,C,q){const re=new MessageStream;for(const a of C.messages){re._addMessageParam(a)}re._run((()=>re._createMessage(a,{...C,stream:true},{...q,headers:{...q?.headers,"X-Stainless-Helper-Method":"stream"}})));return re}_run(a){a().then((()=>{this._emitFinal();this._emit("end")}),MessageStream_classPrivateFieldGet(this,_MessageStream_handleError,"f"))}_addMessageParam(a){this.messages.push(a)}_addMessage(a,C=true){this.receivedMessages.push(a);if(C){this._emit("message",a)}}async _createMessage(a,C,q){const re=q?.signal;if(re){if(re.aborted)this.controller.abort();re.addEventListener("abort",(()=>this.controller.abort()))}MessageStream_classPrivateFieldGet(this,_MessageStream_instances,"m",_MessageStream_beginRequest).call(this);const{response:ae,data:Ue}=await a.create({...C,stream:true},{...q,signal:this.controller.signal}).withResponse();this._connected(ae);for await(const a of Ue){MessageStream_classPrivateFieldGet(this,_MessageStream_instances,"m",_MessageStream_addStreamEvent).call(this,a)}if(Ue.controller.signal?.aborted){throw new APIUserAbortError}MessageStream_classPrivateFieldGet(this,_MessageStream_instances,"m",_MessageStream_endRequest).call(this)}_connected(a){if(this.ended)return;MessageStream_classPrivateFieldSet(this,_MessageStream_response,a,"f");MessageStream_classPrivateFieldSet(this,_MessageStream_request_id,a?.headers.get("request-id"),"f");MessageStream_classPrivateFieldGet(this,_MessageStream_resolveConnectedPromise,"f").call(this,a);this._emit("connect")}get ended(){return MessageStream_classPrivateFieldGet(this,_MessageStream_ended,"f")}get errored(){return MessageStream_classPrivateFieldGet(this,_MessageStream_errored,"f")}get aborted(){return MessageStream_classPrivateFieldGet(this,_MessageStream_aborted,"f")}abort(){this.controller.abort()}on(a,C){const q=MessageStream_classPrivateFieldGet(this,_MessageStream_listeners,"f")[a]||(MessageStream_classPrivateFieldGet(this,_MessageStream_listeners,"f")[a]=[]);q.push({listener:C});return this}off(a,C){const q=MessageStream_classPrivateFieldGet(this,_MessageStream_listeners,"f")[a];if(!q)return this;const re=q.findIndex((a=>a.listener===C));if(re>=0)q.splice(re,1);return this}once(a,C){const q=MessageStream_classPrivateFieldGet(this,_MessageStream_listeners,"f")[a]||(MessageStream_classPrivateFieldGet(this,_MessageStream_listeners,"f")[a]=[]);q.push({listener:C,once:true});return this}emitted(a){return new Promise(((C,q)=>{MessageStream_classPrivateFieldSet(this,_MessageStream_catchingPromiseCreated,true,"f");if(a!=="error")this.once("error",q);this.once(a,C)}))}async done(){MessageStream_classPrivateFieldSet(this,_MessageStream_catchingPromiseCreated,true,"f");await MessageStream_classPrivateFieldGet(this,_MessageStream_endPromise,"f")}get currentMessage(){return MessageStream_classPrivateFieldGet(this,_MessageStream_currentMessageSnapshot,"f")}async finalMessage(){await this.done();return MessageStream_classPrivateFieldGet(this,_MessageStream_instances,"m",_MessageStream_getFinalMessage).call(this)}async finalText(){await this.done();return MessageStream_classPrivateFieldGet(this,_MessageStream_instances,"m",_MessageStream_getFinalText).call(this)}_emit(a,...C){if(MessageStream_classPrivateFieldGet(this,_MessageStream_ended,"f"))return;if(a==="end"){MessageStream_classPrivateFieldSet(this,_MessageStream_ended,true,"f");MessageStream_classPrivateFieldGet(this,_MessageStream_resolveEndPromise,"f").call(this)}const q=MessageStream_classPrivateFieldGet(this,_MessageStream_listeners,"f")[a];if(q){MessageStream_classPrivateFieldGet(this,_MessageStream_listeners,"f")[a]=q.filter((a=>!a.once));q.forEach((({listener:a})=>a(...C)))}if(a==="abort"){const a=C[0];if(!MessageStream_classPrivateFieldGet(this,_MessageStream_catchingPromiseCreated,"f")&&!q?.length){Promise.reject(a)}MessageStream_classPrivateFieldGet(this,_MessageStream_rejectConnectedPromise,"f").call(this,a);MessageStream_classPrivateFieldGet(this,_MessageStream_rejectEndPromise,"f").call(this,a);this._emit("end");return}if(a==="error"){const a=C[0];if(!MessageStream_classPrivateFieldGet(this,_MessageStream_catchingPromiseCreated,"f")&&!q?.length){Promise.reject(a)}MessageStream_classPrivateFieldGet(this,_MessageStream_rejectConnectedPromise,"f").call(this,a);MessageStream_classPrivateFieldGet(this,_MessageStream_rejectEndPromise,"f").call(this,a);this._emit("end")}}_emitFinal(){const a=this.receivedMessages.at(-1);if(a){this._emit("finalMessage",MessageStream_classPrivateFieldGet(this,_MessageStream_instances,"m",_MessageStream_getFinalMessage).call(this))}}async _fromReadableStream(a,C){const q=C?.signal;if(q){if(q.aborted)this.controller.abort();q.addEventListener("abort",(()=>this.controller.abort()))}MessageStream_classPrivateFieldGet(this,_MessageStream_instances,"m",_MessageStream_beginRequest).call(this);this._connected(null);const re=Stream.fromReadableStream(a,this.controller);for await(const a of re){MessageStream_classPrivateFieldGet(this,_MessageStream_instances,"m",_MessageStream_addStreamEvent).call(this,a)}if(re.controller.signal?.aborted){throw new APIUserAbortError}MessageStream_classPrivateFieldGet(this,_MessageStream_instances,"m",_MessageStream_endRequest).call(this)}[(_MessageStream_currentMessageSnapshot=new WeakMap,_MessageStream_connectedPromise=new WeakMap,_MessageStream_resolveConnectedPromise=new WeakMap,_MessageStream_rejectConnectedPromise=new WeakMap,_MessageStream_endPromise=new WeakMap,_MessageStream_resolveEndPromise=new WeakMap,_MessageStream_rejectEndPromise=new WeakMap,_MessageStream_listeners=new WeakMap,_MessageStream_ended=new WeakMap,_MessageStream_errored=new WeakMap,_MessageStream_aborted=new WeakMap,_MessageStream_catchingPromiseCreated=new WeakMap,_MessageStream_response=new WeakMap,_MessageStream_request_id=new WeakMap,_MessageStream_handleError=new WeakMap,_MessageStream_instances=new WeakSet,_MessageStream_getFinalMessage=function _MessageStream_getFinalMessage(){if(this.receivedMessages.length===0){throw new error_AnthropicError("stream ended without producing a Message with role=assistant")}return this.receivedMessages.at(-1)},_MessageStream_getFinalText=function _MessageStream_getFinalText(){if(this.receivedMessages.length===0){throw new error_AnthropicError("stream ended without producing a Message with role=assistant")}const a=this.receivedMessages.at(-1).content.filter((a=>a.type==="text")).map((a=>a.text));if(a.length===0){throw new error_AnthropicError("stream ended without producing a content block with type=text")}return a.join(" ")},_MessageStream_beginRequest=function _MessageStream_beginRequest(){if(this.ended)return;MessageStream_classPrivateFieldSet(this,_MessageStream_currentMessageSnapshot,undefined,"f")},_MessageStream_addStreamEvent=function _MessageStream_addStreamEvent(a){if(this.ended)return;const C=MessageStream_classPrivateFieldGet(this,_MessageStream_instances,"m",_MessageStream_accumulateMessage).call(this,a);this._emit("streamEvent",a,C);switch(a.type){case"content_block_delta":{const q=C.content.at(-1);switch(a.delta.type){case"text_delta":{if(q.type==="text"){this._emit("text",a.delta.text,q.text||"")}break}case"citations_delta":{if(q.type==="text"){this._emit("citation",a.delta.citation,q.citations??[])}break}case"input_json_delta":{if(q.type==="tool_use"&&q.input){this._emit("inputJson",a.delta.partial_json,q.input)}break}case"thinking_delta":{if(q.type==="thinking"){this._emit("thinking",a.delta.thinking,q.thinking)}break}case"signature_delta":{if(q.type==="thinking"){this._emit("signature",q.signature)}break}default:checkNever(a.delta)}break}case"message_stop":{this._addMessageParam(C);this._addMessage(C,true);break}case"content_block_stop":{this._emit("contentBlock",C.content.at(-1));break}case"message_start":{MessageStream_classPrivateFieldSet(this,_MessageStream_currentMessageSnapshot,C,"f");break}case"content_block_start":case"message_delta":break}},_MessageStream_endRequest=function _MessageStream_endRequest(){if(this.ended){throw new error_AnthropicError(`stream has ended, this shouldn't happen`)}const a=MessageStream_classPrivateFieldGet(this,_MessageStream_currentMessageSnapshot,"f");if(!a){throw new error_AnthropicError(`request ended without sending any chunks`)}MessageStream_classPrivateFieldSet(this,_MessageStream_currentMessageSnapshot,undefined,"f");return a},_MessageStream_accumulateMessage=function _MessageStream_accumulateMessage(a){let C=MessageStream_classPrivateFieldGet(this,_MessageStream_currentMessageSnapshot,"f");if(a.type==="message_start"){if(C){throw new error_AnthropicError(`Unexpected event order, got ${a.type} before receiving "message_stop"`)}return a.message}if(!C){throw new error_AnthropicError(`Unexpected event order, got ${a.type} before "message_start"`)}switch(a.type){case"message_stop":return C;case"message_delta":C.stop_reason=a.delta.stop_reason;C.stop_sequence=a.delta.stop_sequence;C.usage.output_tokens=a.usage.output_tokens;return C;case"content_block_start":C.content.push(a.content_block);return C;case"content_block_delta":{const q=C.content.at(a.index);switch(a.delta.type){case"text_delta":{if(q?.type==="text"){q.text+=a.delta.text}break}case"citations_delta":{if(q?.type==="text"){q.citations??(q.citations=[]);q.citations.push(a.delta.citation)}break}case"input_json_delta":{if(q?.type==="tool_use"){let C=q[JSON_BUF_PROPERTY]||"";C+=a.delta.partial_json;Object.defineProperty(q,JSON_BUF_PROPERTY,{value:C,enumerable:false,writable:true});if(C){q.input=partialParse(C)}}break}case"thinking_delta":{if(q?.type==="thinking"){q.thinking+=a.delta.thinking}break}case"signature_delta":{if(q?.type==="thinking"){q.signature=a.delta.signature}break}default:checkNever(a.delta)}return C}case"content_block_stop":return C}},Symbol.asyncIterator)](){const a=[];const C=[];let q=false;this.on("streamEvent",(q=>{const re=C.shift();if(re){re.resolve(q)}else{a.push(q)}}));this.on("end",(()=>{q=true;for(const a of C){a.resolve(undefined)}C.length=0}));this.on("abort",(a=>{q=true;for(const q of C){q.reject(a)}C.length=0}));this.on("error",(a=>{q=true;for(const q of C){q.reject(a)}C.length=0}));return{next:async()=>{if(!a.length){if(q){return{value:undefined,done:true}}return new Promise(((a,q)=>C.push({resolve:a,reject:q}))).then((a=>a?{value:a,done:false}:{value:undefined,done:true}))}const re=a.shift();return{value:re,done:false}},return:async()=>{this.abort();return{value:undefined,done:true}}}}toReadableStream(){const a=new Stream(this[Symbol.asyncIterator].bind(this),this.controller);return a.toReadableStream()}}function checkNever(a){}class Messages extends APIResource{constructor(){super(...arguments);this.batches=new Batches(this._client)}create(a,C){if(a.model in DEPRECATED_MODELS){console.warn(`The model '${a.model}' is deprecated and will reach end-of-life on ${DEPRECATED_MODELS[a.model]}\nPlease migrate to a newer model. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information.`)}return this._client.post("/v1/messages",{body:a,timeout:this._client._options.timeout??(a.stream?6e5:this._client._calculateNonstreamingTimeout(a.max_tokens)),...C,stream:a.stream??false})}stream(a,C){return MessageStream.createMessage(this,a,C)}countTokens(a,C){return this._client.post("/v1/messages/count_tokens",{body:a,...C})}}const DEPRECATED_MODELS={"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-2.1":"July 21st, 2025","claude-2.0":"July 21st, 2025"};Messages.Batches=Batches;Messages.MessageBatchesPage=MessageBatchesPage;class Models extends APIResource{retrieve(a,C){return this._client.get(`/v1/models/${a}`,C)}list(a={},C){if(isRequestOptions(a)){return this.list({},a)}return this._client.getAPIList("/v1/models",ModelInfosPage,{query:a,...C})}}class ModelInfosPage extends Page{}Models.ModelInfosPage=ModelInfosPage;class models_Models extends APIResource{retrieve(a,C){return this._client.get(`/v1/models/${a}?beta=true`,C)}list(a={},C){if(isRequestOptions(a)){return this.list({},a)}return this._client.getAPIList("/v1/models?beta=true",BetaModelInfosPage,{query:a,...C})}}class BetaModelInfosPage extends Page{}models_Models.BetaModelInfosPage=BetaModelInfosPage;class batches_Batches extends APIResource{create(a,C){const{betas:q,...re}=a;return this._client.post("/v1/messages/batches?beta=true",{body:re,...C,headers:{"anthropic-beta":[...q??[],"message-batches-2024-09-24"].toString(),...C?.headers}})}retrieve(a,C={},q){if(isRequestOptions(C)){return this.retrieve(a,{},C)}const{betas:re}=C;return this._client.get(`/v1/messages/batches/${a}?beta=true`,{...q,headers:{"anthropic-beta":[...re??[],"message-batches-2024-09-24"].toString(),...q?.headers}})}list(a={},C){if(isRequestOptions(a)){return this.list({},a)}const{betas:q,...re}=a;return this._client.getAPIList("/v1/messages/batches?beta=true",BetaMessageBatchesPage,{query:re,...C,headers:{"anthropic-beta":[...q??[],"message-batches-2024-09-24"].toString(),...C?.headers}})}delete(a,C={},q){if(isRequestOptions(C)){return this.delete(a,{},C)}const{betas:re}=C;return this._client.delete(`/v1/messages/batches/${a}?beta=true`,{...q,headers:{"anthropic-beta":[...re??[],"message-batches-2024-09-24"].toString(),...q?.headers}})}cancel(a,C={},q){if(isRequestOptions(C)){return this.cancel(a,{},C)}const{betas:re}=C;return this._client.post(`/v1/messages/batches/${a}/cancel?beta=true`,{...q,headers:{"anthropic-beta":[...re??[],"message-batches-2024-09-24"].toString(),...q?.headers}})}async results(a,C={},q){if(isRequestOptions(C)){return this.results(a,{},C)}const re=await this.retrieve(a);if(!re.results_url){throw new error_AnthropicError(`No batch \`results_url\`; Has it finished processing? ${re.processing_status} - ${re.id}`)}const{betas:ae}=C;return this._client.get(re.results_url,{...q,headers:{"anthropic-beta":[...ae??[],"message-batches-2024-09-24"].toString(),Accept:"application/binary",...q?.headers},__binaryResponse:true})._thenUnwrap(((a,C)=>JSONLDecoder.fromResponse(C.response,C.controller)))}}class BetaMessageBatchesPage extends Page{}batches_Batches.BetaMessageBatchesPage=BetaMessageBatchesPage;var BetaMessageStream_classPrivateFieldSet=undefined&&undefined.__classPrivateFieldSet||function(a,C,q,re,ae){if(re==="m")throw new TypeError("Private method is not writable");if(re==="a"&&!ae)throw new TypeError("Private accessor was defined without a setter");if(typeof C==="function"?a!==C||!ae:!C.has(a))throw new TypeError("Cannot write private member to an object whose class did not declare it");return re==="a"?ae.call(a,q):ae?ae.value=q:C.set(a,q),q};var BetaMessageStream_classPrivateFieldGet=undefined&&undefined.__classPrivateFieldGet||function(a,C,q,re){if(q==="a"&&!re)throw new TypeError("Private accessor was defined without a getter");if(typeof C==="function"?a!==C||!re:!C.has(a))throw new TypeError("Cannot read private member from an object whose class did not declare it");return q==="m"?re:q==="a"?re.call(a):re?re.value:C.get(a)};var _BetaMessageStream_instances,_BetaMessageStream_currentMessageSnapshot,_BetaMessageStream_connectedPromise,_BetaMessageStream_resolveConnectedPromise,_BetaMessageStream_rejectConnectedPromise,_BetaMessageStream_endPromise,_BetaMessageStream_resolveEndPromise,_BetaMessageStream_rejectEndPromise,_BetaMessageStream_listeners,_BetaMessageStream_ended,_BetaMessageStream_errored,_BetaMessageStream_aborted,_BetaMessageStream_catchingPromiseCreated,_BetaMessageStream_response,_BetaMessageStream_request_id,_BetaMessageStream_getFinalMessage,_BetaMessageStream_getFinalText,_BetaMessageStream_handleError,_BetaMessageStream_beginRequest,_BetaMessageStream_addStreamEvent,_BetaMessageStream_endRequest,_BetaMessageStream_accumulateMessage;const BetaMessageStream_JSON_BUF_PROPERTY="__json_buf";class BetaMessageStream{constructor(){_BetaMessageStream_instances.add(this);this.messages=[];this.receivedMessages=[];_BetaMessageStream_currentMessageSnapshot.set(this,void 0);this.controller=new AbortController;_BetaMessageStream_connectedPromise.set(this,void 0);_BetaMessageStream_resolveConnectedPromise.set(this,(()=>{}));_BetaMessageStream_rejectConnectedPromise.set(this,(()=>{}));_BetaMessageStream_endPromise.set(this,void 0);_BetaMessageStream_resolveEndPromise.set(this,(()=>{}));_BetaMessageStream_rejectEndPromise.set(this,(()=>{}));_BetaMessageStream_listeners.set(this,{});_BetaMessageStream_ended.set(this,false);_BetaMessageStream_errored.set(this,false);_BetaMessageStream_aborted.set(this,false);_BetaMessageStream_catchingPromiseCreated.set(this,false);_BetaMessageStream_response.set(this,void 0);_BetaMessageStream_request_id.set(this,void 0);_BetaMessageStream_handleError.set(this,(a=>{BetaMessageStream_classPrivateFieldSet(this,_BetaMessageStream_errored,true,"f");if(a instanceof Error&&a.name==="AbortError"){a=new APIUserAbortError}if(a instanceof APIUserAbortError){BetaMessageStream_classPrivateFieldSet(this,_BetaMessageStream_aborted,true,"f");return this._emit("abort",a)}if(a instanceof error_AnthropicError){return this._emit("error",a)}if(a instanceof Error){const C=new error_AnthropicError(a.message);C.cause=a;return this._emit("error",C)}return this._emit("error",new error_AnthropicError(String(a)))}));BetaMessageStream_classPrivateFieldSet(this,_BetaMessageStream_connectedPromise,new Promise(((a,C)=>{BetaMessageStream_classPrivateFieldSet(this,_BetaMessageStream_resolveConnectedPromise,a,"f");BetaMessageStream_classPrivateFieldSet(this,_BetaMessageStream_rejectConnectedPromise,C,"f")})),"f");BetaMessageStream_classPrivateFieldSet(this,_BetaMessageStream_endPromise,new Promise(((a,C)=>{BetaMessageStream_classPrivateFieldSet(this,_BetaMessageStream_resolveEndPromise,a,"f");BetaMessageStream_classPrivateFieldSet(this,_BetaMessageStream_rejectEndPromise,C,"f")})),"f");BetaMessageStream_classPrivateFieldGet(this,_BetaMessageStream_connectedPromise,"f").catch((()=>{}));BetaMessageStream_classPrivateFieldGet(this,_BetaMessageStream_endPromise,"f").catch((()=>{}))}get response(){return BetaMessageStream_classPrivateFieldGet(this,_BetaMessageStream_response,"f")}get request_id(){return BetaMessageStream_classPrivateFieldGet(this,_BetaMessageStream_request_id,"f")}async withResponse(){const a=await BetaMessageStream_classPrivateFieldGet(this,_BetaMessageStream_connectedPromise,"f");if(!a){throw new Error("Could not resolve a `Response` object")}return{data:this,response:a,request_id:a.headers.get("request-id")}}static fromReadableStream(a){const C=new BetaMessageStream;C._run((()=>C._fromReadableStream(a)));return C}static createMessage(a,C,q){const re=new BetaMessageStream;for(const a of C.messages){re._addMessageParam(a)}re._run((()=>re._createMessage(a,{...C,stream:true},{...q,headers:{...q?.headers,"X-Stainless-Helper-Method":"stream"}})));return re}_run(a){a().then((()=>{this._emitFinal();this._emit("end")}),BetaMessageStream_classPrivateFieldGet(this,_BetaMessageStream_handleError,"f"))}_addMessageParam(a){this.messages.push(a)}_addMessage(a,C=true){this.receivedMessages.push(a);if(C){this._emit("message",a)}}async _createMessage(a,C,q){const re=q?.signal;if(re){if(re.aborted)this.controller.abort();re.addEventListener("abort",(()=>this.controller.abort()))}BetaMessageStream_classPrivateFieldGet(this,_BetaMessageStream_instances,"m",_BetaMessageStream_beginRequest).call(this);const{response:ae,data:Ue}=await a.create({...C,stream:true},{...q,signal:this.controller.signal}).withResponse();this._connected(ae);for await(const a of Ue){BetaMessageStream_classPrivateFieldGet(this,_BetaMessageStream_instances,"m",_BetaMessageStream_addStreamEvent).call(this,a)}if(Ue.controller.signal?.aborted){throw new APIUserAbortError}BetaMessageStream_classPrivateFieldGet(this,_BetaMessageStream_instances,"m",_BetaMessageStream_endRequest).call(this)}_connected(a){if(this.ended)return;BetaMessageStream_classPrivateFieldSet(this,_BetaMessageStream_response,a,"f");BetaMessageStream_classPrivateFieldSet(this,_BetaMessageStream_request_id,a?.headers.get("request-id"),"f");BetaMessageStream_classPrivateFieldGet(this,_BetaMessageStream_resolveConnectedPromise,"f").call(this,a);this._emit("connect")}get ended(){return BetaMessageStream_classPrivateFieldGet(this,_BetaMessageStream_ended,"f")}get errored(){return BetaMessageStream_classPrivateFieldGet(this,_BetaMessageStream_errored,"f")}get aborted(){return BetaMessageStream_classPrivateFieldGet(this,_BetaMessageStream_aborted,"f")}abort(){this.controller.abort()}on(a,C){const q=BetaMessageStream_classPrivateFieldGet(this,_BetaMessageStream_listeners,"f")[a]||(BetaMessageStream_classPrivateFieldGet(this,_BetaMessageStream_listeners,"f")[a]=[]);q.push({listener:C});return this}off(a,C){const q=BetaMessageStream_classPrivateFieldGet(this,_BetaMessageStream_listeners,"f")[a];if(!q)return this;const re=q.findIndex((a=>a.listener===C));if(re>=0)q.splice(re,1);return this}once(a,C){const q=BetaMessageStream_classPrivateFieldGet(this,_BetaMessageStream_listeners,"f")[a]||(BetaMessageStream_classPrivateFieldGet(this,_BetaMessageStream_listeners,"f")[a]=[]);q.push({listener:C,once:true});return this}emitted(a){return new Promise(((C,q)=>{BetaMessageStream_classPrivateFieldSet(this,_BetaMessageStream_catchingPromiseCreated,true,"f");if(a!=="error")this.once("error",q);this.once(a,C)}))}async done(){BetaMessageStream_classPrivateFieldSet(this,_BetaMessageStream_catchingPromiseCreated,true,"f");await BetaMessageStream_classPrivateFieldGet(this,_BetaMessageStream_endPromise,"f")}get currentMessage(){return BetaMessageStream_classPrivateFieldGet(this,_BetaMessageStream_currentMessageSnapshot,"f")}async finalMessage(){await this.done();return BetaMessageStream_classPrivateFieldGet(this,_BetaMessageStream_instances,"m",_BetaMessageStream_getFinalMessage).call(this)}async finalText(){await this.done();return BetaMessageStream_classPrivateFieldGet(this,_BetaMessageStream_instances,"m",_BetaMessageStream_getFinalText).call(this)}_emit(a,...C){if(BetaMessageStream_classPrivateFieldGet(this,_BetaMessageStream_ended,"f"))return;if(a==="end"){BetaMessageStream_classPrivateFieldSet(this,_BetaMessageStream_ended,true,"f");BetaMessageStream_classPrivateFieldGet(this,_BetaMessageStream_resolveEndPromise,"f").call(this)}const q=BetaMessageStream_classPrivateFieldGet(this,_BetaMessageStream_listeners,"f")[a];if(q){BetaMessageStream_classPrivateFieldGet(this,_BetaMessageStream_listeners,"f")[a]=q.filter((a=>!a.once));q.forEach((({listener:a})=>a(...C)))}if(a==="abort"){const a=C[0];if(!BetaMessageStream_classPrivateFieldGet(this,_BetaMessageStream_catchingPromiseCreated,"f")&&!q?.length){Promise.reject(a)}BetaMessageStream_classPrivateFieldGet(this,_BetaMessageStream_rejectConnectedPromise,"f").call(this,a);BetaMessageStream_classPrivateFieldGet(this,_BetaMessageStream_rejectEndPromise,"f").call(this,a);this._emit("end");return}if(a==="error"){const a=C[0];if(!BetaMessageStream_classPrivateFieldGet(this,_BetaMessageStream_catchingPromiseCreated,"f")&&!q?.length){Promise.reject(a)}BetaMessageStream_classPrivateFieldGet(this,_BetaMessageStream_rejectConnectedPromise,"f").call(this,a);BetaMessageStream_classPrivateFieldGet(this,_BetaMessageStream_rejectEndPromise,"f").call(this,a);this._emit("end")}}_emitFinal(){const a=this.receivedMessages.at(-1);if(a){this._emit("finalMessage",BetaMessageStream_classPrivateFieldGet(this,_BetaMessageStream_instances,"m",_BetaMessageStream_getFinalMessage).call(this))}}async _fromReadableStream(a,C){const q=C?.signal;if(q){if(q.aborted)this.controller.abort();q.addEventListener("abort",(()=>this.controller.abort()))}BetaMessageStream_classPrivateFieldGet(this,_BetaMessageStream_instances,"m",_BetaMessageStream_beginRequest).call(this);this._connected(null);const re=Stream.fromReadableStream(a,this.controller);for await(const a of re){BetaMessageStream_classPrivateFieldGet(this,_BetaMessageStream_instances,"m",_BetaMessageStream_addStreamEvent).call(this,a)}if(re.controller.signal?.aborted){throw new APIUserAbortError}BetaMessageStream_classPrivateFieldGet(this,_BetaMessageStream_instances,"m",_BetaMessageStream_endRequest).call(this)}[(_BetaMessageStream_currentMessageSnapshot=new WeakMap,_BetaMessageStream_connectedPromise=new WeakMap,_BetaMessageStream_resolveConnectedPromise=new WeakMap,_BetaMessageStream_rejectConnectedPromise=new WeakMap,_BetaMessageStream_endPromise=new WeakMap,_BetaMessageStream_resolveEndPromise=new WeakMap,_BetaMessageStream_rejectEndPromise=new WeakMap,_BetaMessageStream_listeners=new WeakMap,_BetaMessageStream_ended=new WeakMap,_BetaMessageStream_errored=new WeakMap,_BetaMessageStream_aborted=new WeakMap,_BetaMessageStream_catchingPromiseCreated=new WeakMap,_BetaMessageStream_response=new WeakMap,_BetaMessageStream_request_id=new WeakMap,_BetaMessageStream_handleError=new WeakMap,_BetaMessageStream_instances=new WeakSet,_BetaMessageStream_getFinalMessage=function _BetaMessageStream_getFinalMessage(){if(this.receivedMessages.length===0){throw new error_AnthropicError("stream ended without producing a Message with role=assistant")}return this.receivedMessages.at(-1)},_BetaMessageStream_getFinalText=function _BetaMessageStream_getFinalText(){if(this.receivedMessages.length===0){throw new error_AnthropicError("stream ended without producing a Message with role=assistant")}const a=this.receivedMessages.at(-1).content.filter((a=>a.type==="text")).map((a=>a.text));if(a.length===0){throw new error_AnthropicError("stream ended without producing a content block with type=text")}return a.join(" ")},_BetaMessageStream_beginRequest=function _BetaMessageStream_beginRequest(){if(this.ended)return;BetaMessageStream_classPrivateFieldSet(this,_BetaMessageStream_currentMessageSnapshot,undefined,"f")},_BetaMessageStream_addStreamEvent=function _BetaMessageStream_addStreamEvent(a){if(this.ended)return;const C=BetaMessageStream_classPrivateFieldGet(this,_BetaMessageStream_instances,"m",_BetaMessageStream_accumulateMessage).call(this,a);this._emit("streamEvent",a,C);switch(a.type){case"content_block_delta":{const q=C.content.at(-1);switch(a.delta.type){case"text_delta":{if(q.type==="text"){this._emit("text",a.delta.text,q.text||"")}break}case"citations_delta":{if(q.type==="text"){this._emit("citation",a.delta.citation,q.citations??[])}break}case"input_json_delta":{if(q.type==="tool_use"&&q.input){this._emit("inputJson",a.delta.partial_json,q.input)}break}case"thinking_delta":{if(q.type==="thinking"){this._emit("thinking",a.delta.thinking,q.thinking)}break}case"signature_delta":{if(q.type==="thinking"){this._emit("signature",q.signature)}break}default:BetaMessageStream_checkNever(a.delta)}break}case"message_stop":{this._addMessageParam(C);this._addMessage(C,true);break}case"content_block_stop":{this._emit("contentBlock",C.content.at(-1));break}case"message_start":{BetaMessageStream_classPrivateFieldSet(this,_BetaMessageStream_currentMessageSnapshot,C,"f");break}case"content_block_start":case"message_delta":break}},_BetaMessageStream_endRequest=function _BetaMessageStream_endRequest(){if(this.ended){throw new error_AnthropicError(`stream has ended, this shouldn't happen`)}const a=BetaMessageStream_classPrivateFieldGet(this,_BetaMessageStream_currentMessageSnapshot,"f");if(!a){throw new error_AnthropicError(`request ended without sending any chunks`)}BetaMessageStream_classPrivateFieldSet(this,_BetaMessageStream_currentMessageSnapshot,undefined,"f");return a},_BetaMessageStream_accumulateMessage=function _BetaMessageStream_accumulateMessage(a){let C=BetaMessageStream_classPrivateFieldGet(this,_BetaMessageStream_currentMessageSnapshot,"f");if(a.type==="message_start"){if(C){throw new error_AnthropicError(`Unexpected event order, got ${a.type} before receiving "message_stop"`)}return a.message}if(!C){throw new error_AnthropicError(`Unexpected event order, got ${a.type} before "message_start"`)}switch(a.type){case"message_stop":return C;case"message_delta":C.stop_reason=a.delta.stop_reason;C.stop_sequence=a.delta.stop_sequence;C.usage.output_tokens=a.usage.output_tokens;return C;case"content_block_start":C.content.push(a.content_block);return C;case"content_block_delta":{const q=C.content.at(a.index);switch(a.delta.type){case"text_delta":{if(q?.type==="text"){q.text+=a.delta.text}break}case"citations_delta":{if(q?.type==="text"){q.citations??(q.citations=[]);q.citations.push(a.delta.citation)}break}case"input_json_delta":{if(q?.type==="tool_use"){let C=q[BetaMessageStream_JSON_BUF_PROPERTY]||"";C+=a.delta.partial_json;Object.defineProperty(q,BetaMessageStream_JSON_BUF_PROPERTY,{value:C,enumerable:false,writable:true});if(C){q.input=partialParse(C)}}break}case"thinking_delta":{if(q?.type==="thinking"){q.thinking+=a.delta.thinking}break}case"signature_delta":{if(q?.type==="thinking"){q.signature=a.delta.signature}break}default:BetaMessageStream_checkNever(a.delta)}return C}case"content_block_stop":return C}},Symbol.asyncIterator)](){const a=[];const C=[];let q=false;this.on("streamEvent",(q=>{const re=C.shift();if(re){re.resolve(q)}else{a.push(q)}}));this.on("end",(()=>{q=true;for(const a of C){a.resolve(undefined)}C.length=0}));this.on("abort",(a=>{q=true;for(const q of C){q.reject(a)}C.length=0}));this.on("error",(a=>{q=true;for(const q of C){q.reject(a)}C.length=0}));return{next:async()=>{if(!a.length){if(q){return{value:undefined,done:true}}return new Promise(((a,q)=>C.push({resolve:a,reject:q}))).then((a=>a?{value:a,done:false}:{value:undefined,done:true}))}const re=a.shift();return{value:re,done:false}},return:async()=>{this.abort();return{value:undefined,done:true}}}}toReadableStream(){const a=new Stream(this[Symbol.asyncIterator].bind(this),this.controller);return a.toReadableStream()}}function BetaMessageStream_checkNever(a){}const messages_DEPRECATED_MODELS={"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-2.1":"July 21st, 2025","claude-2.0":"July 21st, 2025"};class messages_Messages extends APIResource{constructor(){super(...arguments);this.batches=new batches_Batches(this._client)}create(a,C){const{betas:q,...re}=a;if(re.model in messages_DEPRECATED_MODELS){console.warn(`The model '${re.model}' is deprecated and will reach end-of-life on ${messages_DEPRECATED_MODELS[re.model]}\nPlease migrate to a newer model. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information.`)}return this._client.post("/v1/messages?beta=true",{body:re,timeout:this._client._options.timeout??(re.stream?6e5:this._client._calculateNonstreamingTimeout(re.max_tokens)),...C,headers:{...q?.toString()!=null?{"anthropic-beta":q?.toString()}:undefined,...C?.headers},stream:a.stream??false})}stream(a,C){return BetaMessageStream.createMessage(this,a,C)}countTokens(a,C){const{betas:q,...re}=a;return this._client.post("/v1/messages/count_tokens?beta=true",{body:re,...C,headers:{"anthropic-beta":[...q??[],"token-counting-2024-11-01"].toString(),...C?.headers}})}}messages_Messages.Batches=batches_Batches;messages_Messages.BetaMessageBatchesPage=BetaMessageBatchesPage;class Beta extends APIResource{constructor(){super(...arguments);this.models=new models_Models(this._client);this.messages=new messages_Messages(this._client)}}Beta.Models=models_Models;Beta.BetaModelInfosPage=BetaModelInfosPage;Beta.Messages=messages_Messages;var _a;class Anthropic extends APIClient{constructor({baseURL:a=readEnv("ANTHROPIC_BASE_URL"),apiKey:C=readEnv("ANTHROPIC_API_KEY")??null,authToken:q=readEnv("ANTHROPIC_AUTH_TOKEN")??null,...re}={}){const ae={apiKey:C,authToken:q,...re,baseURL:a||`https://api.anthropic.com`};if(!ae.dangerouslyAllowBrowser&&isRunningInBrowser()){throw new error_AnthropicError("It looks like you're running in a browser-like environment.\n\nThis is disabled by default, as it risks exposing your secret API credentials to attackers.\nIf you understand the risks and have appropriate mitigations in place,\nyou can set the `dangerouslyAllowBrowser` option to `true`, e.g.,\n\nnew Anthropic({ apiKey, dangerouslyAllowBrowser: true });\n")}super({baseURL:ae.baseURL,timeout:ae.timeout??6e5,httpAgent:ae.httpAgent,maxRetries:ae.maxRetries,fetch:ae.fetch});this.completions=new Completions(this);this.messages=new Messages(this);this.models=new Models(this);this.beta=new Beta(this);this._options=ae;this.apiKey=C;this.authToken=q}defaultQuery(){return this._options.defaultQuery}defaultHeaders(a){return{...super.defaultHeaders(a),...this._options.dangerouslyAllowBrowser?{"anthropic-dangerous-direct-browser-access":"true"}:undefined,"anthropic-version":"2023-06-01",...this._options.defaultHeaders}}validateHeaders(a,C){if(this.apiKey&&a["x-api-key"]){return}if(C["x-api-key"]===null){return}if(this.authToken&&a["authorization"]){return}if(C["authorization"]===null){return}throw new 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')}authHeaders(a){const C=this.apiKeyAuth(a);const q=this.bearerAuth(a);if(C!=null&&!isEmptyObj(C)){return C}if(q!=null&&!isEmptyObj(q)){return q}return{}}apiKeyAuth(a){if(this.apiKey==null){return{}}return{"X-Api-Key":this.apiKey}}bearerAuth(a){if(this.authToken==null){return{}}return{Authorization:`Bearer ${this.authToken}`}}}_a=Anthropic;Anthropic.Anthropic=_a;Anthropic.HUMAN_PROMPT="\n\nHuman:";Anthropic.AI_PROMPT="\n\nAssistant:";Anthropic.DEFAULT_TIMEOUT=6e5;Anthropic.AnthropicError=error_AnthropicError;Anthropic.APIError=APIError;Anthropic.APIConnectionError=APIConnectionError;Anthropic.APIConnectionTimeoutError=APIConnectionTimeoutError;Anthropic.APIUserAbortError=APIUserAbortError;Anthropic.NotFoundError=NotFoundError;Anthropic.ConflictError=ConflictError;Anthropic.RateLimitError=RateLimitError;Anthropic.BadRequestError=BadRequestError;Anthropic.AuthenticationError=AuthenticationError;Anthropic.InternalServerError=InternalServerError;Anthropic.PermissionDeniedError=PermissionDeniedError;Anthropic.UnprocessableEntityError=UnprocessableEntityError;Anthropic.toFile=toFile;Anthropic.fileFromPath=fileFromPath;Anthropic.Completions=Completions;Anthropic.Messages=Messages;Anthropic.Models=Models;Anthropic.ModelInfosPage=ModelInfosPage;Anthropic.Beta=Beta;const{HUMAN_PROMPT:HUMAN_PROMPT,AI_PROMPT:AI_PROMPT}=Anthropic;const sdk=Anthropic;const TOOL={name:"submit_decision",description:"Submit the arbiter verdict for this PR.",input_schema:{type:"object",required:["outcome","summary","blocking_findings","escalation_reasons"],additionalProperties:false,properties:{outcome:{enum:["approve","request-changes","comment","escalate"]},summary:{type:"string",maxLength:4e3},blocking_findings:{type:"array",items:{type:"string"}},escalation_reasons:{type:"array",items:{type:"string"}}}}};async function decideViaAnthropic(a){const C=new sdk({apiKey:a.apiKey});const q=await C.messages.create({model:a.model,max_tokens:a.maxTokens??2048,tools:[TOOL],tool_choice:{type:"tool",name:"submit_decision"},messages:[{role:"user",content:a.prompt}]});const re=(q.content??[]).find((a=>a.type==="tool_use"));if(!re){throw new Error(`arbiter: model did not call the submit_decision tool (stop_reason=${q.stop_reason})`)}return re.input}const FILE_LIST_CAP=50;function fileList(a){if(a.length<=FILE_LIST_CAP)return a.map((a=>`- ${a}`)).join("\n");const C=a.slice(0,FILE_LIST_CAP).map((a=>`- ${a}`)).join("\n");return`${C}\n- ...+${a.length-FILE_LIST_CAP} more`}function findingsList(a){if(a.findings.length===0)return"(none)";return a.findings.map((a=>`[${a.severity}] ${a.file}${a.line?`:${a.line}`:""} — ${a.title}`)).join("\n")}function buildArbiterPrompt(a){const C=[];C.push("# Arbiter");C.push("You are the AAO-SECRETARIAT arbiter. Read the rules, the context, and the reviewer findings. Then call the `submit_decision` tool exactly once.");C.push("\n## Severity model\n");C.push(a.severityRules);C.push("\n## Decision rules\n");C.push(a.decisionRules);C.push("\n## PR context");C.push(`- Repo: ${a.repoSlug}`);C.push(`- PR: #${a.prNumber}`);C.push(`- Base ref: ${a.baseRef}`);C.push(`- Base SHA: ${a.baseSha}`);C.push(`- Head SHA: ${a.headSha}`);C.push("\n## Diff stats");C.push(`- Files changed: ${a.diffStats.fileCount}`);C.push(`- Additions: ${a.diffStats.additions}`);C.push(`- Deletions: ${a.diffStats.deletions}`);C.push("- Files:");C.push(fileList(a.diffStats.files));C.push("\n## High-risk flag");C.push(`- high_risk: ${a.highRisk?"true":"false"}`);if(a.highRiskReasons.length>0){C.push("- Reasons:");for(const q of a.highRiskReasons)C.push(` - ${q}`)}C.push("\n## Gated paths (hard approval gate — deterministic) and Required Review Status");C.push(`- gated_paths: ${a.gatedPaths?"true":"false"}`);if(a.gatedPathsReasons.length>0){C.push("- Reasons:");for(const q of a.gatedPathsReasons)C.push(` - ${q}`)}C.push(`- review_decision: ${a.reviewDecision||"(unknown/none)"}`);C.push("\n## Author team gates");if(a.authorTeamMatches.length>0){C.push("- Author is a member of (no-auto-approve):");for(const q of a.authorTeamMatches)C.push(` - ${q}`)}else{C.push("- No no-auto-approve team match.")}C.push("\n## Prior decision");if(a.priorDecision){C.push(`- Outcome: ${a.priorDecision.outcome}`);C.push(`- For head: ${a.priorDecision.head}`);C.push(`- High-risk: ${a.priorDecision.high_risk}`);if(a.priorDecision.reasons.length>0){C.push("- Reasons:");for(const q of a.priorDecision.reasons)C.push(` - ${q}`)}if(a.priorDecision.findings&&a.priorDecision.findings.length>0){C.push("- Previous findings (what was flagged in that run):");for(const q of a.priorDecision.findings){const a=q.line!==undefined?`${q.file}:${q.line}`:q.file;C.push(` - [${q.severity}] ${a} — ${q.title}`)}}else if(a.priorDecision.findings!==undefined){C.push("- Previous findings: none (no critical/high/medium findings in that run).")}else{C.push("- Previous findings: none recorded (older marker format).")}}else{C.push("- None (first review of this PR).")}C.push("\n## Reviewer findings summary");C.push(a.findings.summary);C.push("\n### Findings list");C.push(findingsList(a.findings));if(a.repoContext){C.push("\n## Repo-specific context\n");C.push(a.repoContext)}C.push("\nApply the decision rules top-down. Choose ONE outcome. Call `submit_decision` with the JSON payload and STOP.");return C.join("\n")}const SEVERITY_RULES=`# Severity model\n\nAAO-SECRETARIAT classifies findings into four severities. Both the reviewer (which assigns severities) and the arbiter (which interprets them for the gate decision) use these definitions verbatim.\n\n## Critical\nData loss, security holes, billing bugs, auth bypass, multi-tenant boundary breaks, happy-path crashes on load-bearing flows. Always blocks.\n\n## High\nReproducible runtime errors, broken queries, AdCP spec drift, customer-contract breaks, V1 edits in repos that have migrated to V2, reproducible bugs on load-bearing paths. Always blocks.\n\n## Medium\nUnhandled edge cases (empty array, null, race windows), missing timeouts on external calls, warn-only error handling on durable / async / billing paths, missing tests on new branches, LLM-context scope gaps. Surfaced inline; may or may not block depending on category and count (see arbiter decision rules).\n\n## Low\nStyle, naming, structure, "you could also" suggestions, speculative concerns. Omitted from the output unless the arbiter is producing an approve-with-nits summary.\n\n---\n\n## What counts as each tier (with examples)\n\n**Critical:** data loss/corruption, security holes, billing/money bugs, auth bypass, multi-tenant isolation breaks, a crash on the happy path.\n\n**High:** runtime error on a real branch, broken query, AdCP spec drift, breaking a customer contract, V1 contamination, a concrete reproducible bug on a load-bearing path.\n\n**Medium:** an unhandled edge case that will actually occur (empty array, null deref, the error branch, a real concurrency window); a missing timeout/cancellation on a path that can hang user-visible work, a worker lane, a queue claim, or a billing path; warn-only error handling that hides a durable-state, async, upload, or billing failure; a missing test for a branch this PR added where a regression would be silent and costly; an agent-context scope/lifetime/budget gap; non-deterministic SQL on a load-bearing path.\n\n**Low:** code style, naming, structure, formatting; "you could also handle X" for an X that won't happen; "consider extracting a helper"; speculative "in the future"; wrong/missing changeset where the change itself is sound; docs MUST-vs-SHOULD wording.\n`;const DECISION_RULES=`# Arbiter decision rules\n\nYou are the arbiter. Your sole job is to translate the reviewer's findings and the contextual flags into ONE of four outcomes. Apply the decision table TOP-DOWN: the first matching row wins. Call the \`submit_decision\` tool with your choice.\n\n---\n\n## HARD RULE — never \`approve\` when \`author_team_matches\` is non-empty\n\n> **READ THIS BEFORE EVERYTHING ELSE.**\n>\n> Look at the \`Author team gates\` block in the PR context that follows. If the line \`Author is a member of (no-auto-approve):\` lists ONE OR MORE teams, the PR author belongs to a team explicitly configured to never be auto-approved. **Your outcome MUST NOT be \`approve\`.** Valid choices in this case are \`request-changes\` (if blocking findings exist), \`comment\` (default), or \`escalate\` (if high-risk warrants).\n>\n> This is a HARD GATE. A code-level backstop in the action will detect this case and override your \`approve\` → \`comment\` automatically. Getting it right in your tool call is faster and cleaner — but the rule is non-negotiable either way.\n>\n> Why this matters: repos accept PRs from non-technical contributors (consultants, partners, marketing, etc.) whose changes must never auto-merge without a human even if the diff is mechanically clean. The \`## No-Auto-Approve Teams\` AAO-SECRETARIAT.md section is how each repo declares the people whose work needs that extra eye. Treat it as the most important rule in this file.\n\n---\n\n## HARD RULE — never \`approve\` when \`gated_paths\` is true AND \`review_decision\` is not \`APPROVED\`\n\n> **READ THIS BEFORE EVERYTHING ELSE, ALONGSIDE THE RULE ABOVE.**\n>\n> Look at the \`Gated paths (hard approval gate — deterministic) and Required Review Status\` block in the PR\n> context. If \`gated_paths: true\`, this PR touches a file the repo has declared\n> under a **hard, non-overridable approval gate** — a purely mechanical fact\n> based on the file path, not something you evaluate or re-derive. **Your outcome\n> MUST NOT be \`approve\` unless \`review_decision\` is exactly \`APPROVED\`.**\n>\n> - If \`review_decision\` is \`APPROVED\`: the gate is satisfied by a real human/\n> CODEOWNERS approval. Fall through to the rest of the decision table\n> normally — a clean diff with no other trigger CAN approve.\n> - If \`review_decision\` is \`CHANGES_REQUESTED\`, \`REVIEW_REQUIRED\`, or empty/\n> unknown: the gate is NOT satisfied. Your outcome MUST be \`escalate\` (or\n> \`request-changes\` if blocking findings also exist) — never \`approve\`,\n> never plain \`comment\`.\n>\n> This is a HARD GATE, same posture as the no-auto-approve-teams rule above.\n> A code-level backstop (\`enforceDecisionGuards\`) will force-downgrade an\n> \`approve\` back down automatically if you get this wrong — but get it right\n> in your tool call.\n>\n> **The same posture applies to prose-based hard gates** described in\n> \`## Repo Context\` (e.g. spec-ownership governance, major-version-bump\n> governance, AAO-SECRETARIAT.md-integrity governance) that this repo's \`## Repo\n> Context\` may declare. Those gates are NOT reflected in \`gated_paths\` —\n> they are semantic, not path-based, and you must still evaluate their\n> prose conditions yourself. But once you have determined such a gate\n> applies, treat \`review_decision: APPROVED\` as satisfying it exactly the\n> same way: if a prose gate's condition is met AND \`review_decision\` is\n> \`APPROVED\`, you may fall through to the normal decision table instead of\n> forcing \`escalate\`. If \`review_decision\` is not \`APPROVED\`, the prose\n> gate's own escalation instruction stands.\n\n---\n\n## Outcomes\n\n- **approve** — The PR is ready to merge. Body summarizes what you checked.\n- **request-changes** — Blocking findings exist. Body lists each blocker (file:line + 1-line rationale).\n- **comment** — Not blocking, but not auto-approvable. Body surfaces medium findings and explains why a human should look.\n- **escalate** — Requires explicit human reviewers (destructive change, schema migration, sensitive-category problem, etc.). Body lists the escalation reasons. The action will also request the configured escalation reviewers and apply the \`aao-secretariat/needs-human-review\` label.\n\n## Reading the \`high_risk\` flag\n\n\`high_risk\` is true whenever any changed file matches a glob in the repo's \`## High-Risk Paths\`. It is a **heuristic signal**, not an automatic escalation trigger. It tells you to LOOK more carefully at those files. Whether the actual change is risky depends on the **change-kind** in \`high_risk_reasons\`:\n\n- **\`(added)\`** — A new file. Inherently low risk on its own: nothing existed to break. A PR that ONLY adds new files matching high-risk globs (scaffolding a new system, adding a new action, introducing a new schema) is **not** escalation-worthy on the flag alone. Approve / comment as the reviewer's findings dictate.\n- **\`(modified)\`** — An existing file changed. Risk depends on whether the change preserves the file's contract. If the reviewer found no medium-or-higher concerns, the modification is presumed safe.\n- **\`(deleted)\`** — A file is being removed. Always merits escalation — deletions in sensitive paths are rare and hard to recover from if wrong.\n- **\`(renamed)\`** — Treat as a modification for risk purposes.\n\nDo not escalate solely because \`high_risk\` is true. Escalate when there is real evidence: a destructive change, a sensitive-category finding, or a medium concern on a modified sensitive file. New files matching high-risk globs are normal scaffolding work.\n\n## Subsequent review — when a prior decision exists\n\nWhen the \`## Prior decision\` block shows a prior outcome other than \`approve\`, the developer has pushed new commits in response to your earlier feedback. Handle this carefully:\n\n1. **Compare findings.** The prior decision block lists the findings from the previous run (if available). Compare them against the current run's findings. A finding present in the prior list but absent now was addressed by the developer — acknowledge this in your summary.\n\n2. **Evaluate current findings independently.** Apply the decision table to the current findings as-is. Prior findings that were resolved do not carry forward. Only current findings count toward the rows in the decision table.\n\n3. **Credit iteration.** If the developer has resolved prior critical/high findings and the remaining current findings are medium-or-below, you are looking at a net improvement. Your summary should reflect this. Do not frame a subsequent review as "still has issues" when the prior blocking issues are gone.\n\n4. **Do not penalize new medium findings discovered in a subsequent push.** Developers write more code; reviewers find new things. A new medium finding on a second or third pass is not evidence of a developer ignoring feedback — it is the normal result of the reviewer looking at new code. Apply the same threshold as a first pass: 1–2 medium findings with no blocking issues = \`approve\`.\n\n## Decision table\n\n| # | Condition (evaluated top-down; first match wins) | Outcome |\n|---|---|---|\n| 1 | Any finding has \`severity\` ∈ {\`critical\`, \`high\`} | \`request-changes\` |\n| 2 | \`gated_paths\` is true AND \`review_decision\` ≠ \`APPROVED\` | \`escalate\` |\n| 3 | \`high_risk\` is true AND any \`high_risk_reasons\` entry contains \`(deleted)\` | \`escalate\` |\n| 4 | Any finding has \`severity = medium\` AND \`category\` ∈ {\`data-loss\`, \`schema\`, \`infra\`} | \`escalate\` |\n| 5 | \`high_risk\` is true AND any \`high_risk_reasons\` entry contains \`(modified)\` AND any finding has \`severity = medium\` | \`escalate\` |\n| 6 | Prior decision was \`escalate\` AND at least one new \`critical\`/\`high\`/\`medium\` finding is present in this run | \`escalate\` (sticky — only persists when fresh evidence still exists) |\n| 7 | PR author ∈ any \`no_auto_approve_teams\` | \`comment\` |\n| 8 | Three or more findings have \`severity = medium\` | \`comment\` |\n| 9 | Otherwise | \`approve\` |\n\n**Row 9 means \`approve\` — no exceptions beyond rows 1–8.** If none of rows 1–8 fired, the outcome is \`approve\`. 1 or 2 medium findings with no escalation trigger and no team gate falls through to row 9 and is an \`approve\`. Do not use \`comment\` as a weaker form of \`request-changes\` or as a hedge when the diff "feels risky." Comment is explicitly reserved for three or more medium findings (row 8) or an author team gate (row 7). If you are tempted to comment on fewer than three medium findings, check whether you are applying row 8 correctly — you are not, and the outcome must be \`approve\`.\n\nNote on \`gated_paths\` (row 2): \`gated_paths\` is a purely deterministic,\npath-based fact computed by the setup action from \`## Gated Paths\` globs —\nit is never something you derive from prose, and it never changes based on\nthe code inside the file. The gate lifts the moment \`review_decision\`\nbecomes \`APPROVED\` (a real GitHub-computed signal from branch protection /\nCODEOWNERS), not because you decided the diff looks safe. Do not escalate\n"forever" once \`review_decision\` is \`APPROVED\` — that is the entire point of\nchecking it. Note also that row 2 only fires when \`review_decision\` is NOT\nalready \`APPROVED\`; once approved, the same PR falls through to rows 3-9 like\nany other PR (including a possible \`approve\` at row 9 on a clean diff).\n\nRow 2 is not merely documentation — you are expected to apply it directly,\nexactly like every other row. A code-level backstop (\`enforceDecisionGuards\`)\nadditionally guarantees the gate holds even if you get it wrong: it\nforce-downgrades an \`approve\` to \`escalate\`, and if you already chose\n\`escalate\` for a different row while \`gated_paths\` is unsatisfied, it merges\nthe gated-paths reason into \`escalation_reasons\` so a human reviewing the\noutput sees both triggers. This is the same dual-layer pattern (prompt-level\nrule you should follow + code-level guarantee in case you don't) already\nused for the no-auto-approve-teams HARD RULE above.\n\nNote on sticky escalation (row 6): the previous version of this rule kept a PR escalated forever as long as \`high_risk\` stayed true — which traps PRs in escalation whenever the diff continues to touch high-risk-path files. The new rule requires the current run to surface at least one fresh finding to justify persisting an earlier escalation. If the reviewer finds nothing actionable, an earlier escalate does not stick.\n\nNote on \`protected_branches\` (deprecated): an earlier version of this table had a row blocking auto-approve when the PR's base was in \`protected_branches\`. That rule made every PR into \`main\` a forced \`comment\`, which is the opposite of what most teams want — a clean review with no blocking findings should approve regardless of the base. The rule has been removed. The \`## Protected Branches\` section in AAO-SECRETARIAT.md is now informational only; parser-side support is kept for backward compatibility but does not affect the decision. Repos that need an extra approval gate on a specific branch should use GitHub's branch protection rules (required reviewers), not AAO-SECRETARIAT.\n\n## Body composition\n\nFor every outcome, the body is structured as:\n\n1. One-line verdict ("Approve", "Request changes — N blocking finding(s)", etc.).\n2. **Blocking findings** section, listing each \`critical\`/\`high\` finding as \`- :\`.\n3. **Medium findings** section, same format (collapsed under \`<details>\` if more than 5).\n4. **Escalation reasons** section (only on \`escalate\`), listing each reason in plain English (e.g. "Deletes \`terraform/prod/main.tf\` — production infra change"). For a \`gated_paths\` escalation (row 2), state the gated file(s) and that human/CODEOWNERS review is required — do not re-explain the gate's rationale at length; that lives in AAO-SECRETARIAT.md, not the PR comment.\n5. **Sticky marker** line at the very end (an HTML comment, see arbiter implementation).\n\nKeep total body length ≤ 4000 characters. Truncate medium-finding lists if needed.\n`;var exec=__nccwpck_require__(5236);const promises_namespaceObject=__WEBPACK_EXTERNAL_createRequire(import.meta.url)("node:fs/promises");function parseDiffStats(a){let C=0;let q=0;const re=[];for(const ae of a.split("\n")){if(!ae.trim())continue;const a=ae.split("\t");if(a.length<3)continue;const Ue=a[0]==="-"?0:Number(a[0]);const lt=a[1]==="-"?0:Number(a[1]);C+=Number.isFinite(Ue)?Ue:0;q+=Number.isFinite(lt)?lt:0;re.push(a.slice(2).join("\t"))}return{fileCount:re.length,additions:C,deletions:q,files:re}}async function computeDiffStatsFromFile(a){const C=await(0,promises_namespaceObject.readFile)(a,"utf8");if(!C.trim())return{fileCount:0,additions:0,deletions:0,files:[]};let q="";await(0,exec.exec)("git",["apply","--numstat","--no-index",a],{listeners:{stdout:a=>{q+=a.toString()}},silent:true,ignoreReturnCode:true});return parseDiffStats(q)}const NO_AUTO_APPROVE_OVERRIDE_PREFIX="> **[Override: forced from `approve` to `comment` by post-LLM enforcement]**";const GATED_PATH_OVERRIDE_PREFIX="> **[Override: forced from `approve` to `escalate` by post-LLM enforcement]**";function enforceDecisionGuards(a,C){const q=[];let re=a;const ae=Boolean(C.gatedPaths)&&C.reviewDecision!=="APPROVED";if(ae){const a=`This PR touches a path under a hard, non-overridable approval gate (${C.gatedPathsReasons?.join("; ")||"gated path matched"}) and the current GitHub review decision is '${C.reviewDecision||"unknown"}', not APPROVED. This is a hard gate enforced in code — AAO-SECRETARIAT cannot auto-approve until a human/CODEOWNERS approval is recorded, regardless of how clean the diff is.`;if(re.outcome==="approve"){q.push(a);re={...re,outcome:"escalate",escalation_reasons:[...re.escalation_reasons,a],summary:`${GATED_PATH_OVERRIDE_PREFIX}\n>\n> ${a}\n\n${re.summary}`}}else if(re.outcome==="escalate"&&!re.escalation_reasons.includes(a)){q.push(a);re={...re,escalation_reasons:[...re.escalation_reasons,a]}}}if(re.outcome==="approve"&&C.authorTeamMatches.length>0){const a=`PR author belongs to no-auto-approve team(s): ${C.authorTeamMatches.join(", ")}. This is a hard gate enforced in code — AAO-SECRETARIAT cannot auto-approve PRs from these teams regardless of how clean the diff is.`;q.push(a);re={...re,outcome:"comment",summary:`${NO_AUTO_APPROVE_OVERRIDE_PREFIX}\n>\n> ${a}\n\n${re.summary}`}}return{decision:re,overrides:q}}const SEVERITIES=new Set(["critical","high","medium","low"]);const CATEGORIES=new Set(["correctness","security","performance","data-loss","schema","infra","tests","operability","style","other"]);function parseFindings(a){let C;try{C=JSON.parse(a)}catch(a){throw new Error(`findings: failed to parse JSON — ${a instanceof Error?a.message:String(a)}`)}if(typeof C!=="object"||C===null){throw new Error("findings: payload is not an object")}const q=C;if(typeof q.summary!=="string")throw new Error("findings: missing summary");if(!Array.isArray(q.findings))throw new Error("findings: findings is not an array");const re=q.findings.map(((a,C)=>{if(typeof a!=="object"||a===null)throw new Error(`findings[${C}]: not an object`);const q=a;if(typeof q.severity!=="string"||!SEVERITIES.has(q.severity)){throw new Error(`findings[${C}]: invalid severity ${String(q.severity)}`)}if(typeof q.category!=="string"||!CATEGORIES.has(q.category)){throw new Error(`findings[${C}]: invalid category ${String(q.category)}`)}if(typeof q.title!=="string")throw new Error(`findings[${C}]: title missing`);if(typeof q.rationale!=="string")throw new Error(`findings[${C}]: rationale missing`);if(typeof q.file!=="string")throw new Error(`findings[${C}]: file missing`);if(typeof q.posted_inline!=="boolean")throw new Error(`findings[${C}]: posted_inline missing`);const re=typeof q.line==="number"&&Number.isFinite(q.line)?Math.trunc(q.line):undefined;return{severity:q.severity,category:q.category,title:q.title,rationale:q.rationale,file:q.file,line:re,posted_inline:q.posted_inline}}));return{summary:q.summary,findings:re}}function mapOutcomeToReviewEvent(a){switch(a){case"approve":return"APPROVE";case"request-changes":return"REQUEST_CHANGES";case"comment":return"COMMENT";case"escalate":return"COMMENT"}}async function ensureLabel(a){const{octokit:C,owner:q,repo:re,name:ae}=a;try{await C.rest.issues.getLabel({owner:q,repo:re,name:ae})}catch(a){const Ue=a instanceof Error&&"status"in a?a.status:undefined;if(Ue===404){await C.rest.issues.createLabel({owner:q,repo:re,name:ae,color:"fbca04",description:"AAO-SECRETARIAT has escalated this PR for human review."})}else{throw a}}}async function addLabel(a){await a.octokit.rest.issues.addLabels({owner:a.owner,repo:a.repo,issue_number:a.prNumber,labels:[a.label]})}async function postReview(a){const{octokit:C,owner:q,repo:re,prNumber:ae,headSha:Ue,event:lt,body:Pt}=a;try{await C.rest.pulls.createReview({owner:q,repo:re,pull_number:ae,commit_id:Ue,event:lt,body:Pt})}catch(a){const Wt=a instanceof Error&&"status"in a?a.status:undefined;if(lt==="APPROVE"&&Wt===422){core.warning("Approve rejected (likely own PR); falling back to COMMENT");await C.rest.pulls.createReview({owner:q,repo:re,pull_number:ae,commit_id:Ue,event:"COMMENT",body:Pt})}else{throw a}}}async function requestReviewers(a){const{octokit:C,owner:q,repo:re,prNumber:ae,reviewers:Ue}=a;const lt=Ue.filter((a=>!a.includes("/")));const Pt=Ue.filter((a=>a.includes("/"))).map((a=>a.split("/").pop()));if(lt.length===0&&Pt.length===0)return;try{await C.request("POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers",{owner:q,repo:re,pull_number:ae,...lt.length>0?{reviewers:lt}:{},...Pt.length>0?{team_reviewers:Pt}:{}})}catch(a){core.warning(`Failed to request reviewers (${Ue.join(", ")}): ${a instanceof Error?a.message:String(a)}`)}}function parsePriorDecisionInput(a){if(!a.trim())return null;try{const C=JSON.parse(a);if(typeof C==="object"&&C!==null&&typeof C.head==="string"&&["approve","request-changes","comment","escalate"].includes(C.outcome)&&typeof C.high_risk==="boolean"&&Array.isArray(C.reasons)){const a=Array.isArray(C.findings)?C.findings.filter((a=>typeof a==="object"&&a!==null&&["critical","high","medium"].includes(a.severity)&&typeof a.title==="string"&&typeof a.file==="string")):undefined;return{...C,findings:a}}return null}catch{return null}}const MAX_BODY=4e3;const HEADERS={approve:"## AAO-SECRETARIAT verdict: Approve","request-changes":"## AAO-SECRETARIAT verdict: Request changes",comment:"## AAO-SECRETARIAT verdict: Comment (human reviewer recommended)",escalate:"## AAO-SECRETARIAT verdict: Escalate to human review"};function renderReviewBody(a){const{decision:C,findings:q,headSha:re,highRisk:ae,highRiskReasons:Ue}=a;const lt=[];lt.push(HEADERS[C.outcome]);lt.push("");lt.push(C.summary);if(C.blocking_findings.length>0){lt.push("");lt.push("### Blocking findings");for(const a of C.blocking_findings)lt.push(`- ${a}`)}const Pt=q.findings.filter((a=>a.severity==="medium"));if(Pt.length>0){lt.push("");lt.push("### Medium findings");if(Pt.length>5){lt.push("<details>");lt.push(`<summary>${Pt.length} medium findings</summary>`);lt.push("")}for(const a of Pt){const C=a.line?`${a.file}:${a.line}`:a.file;lt.push(`- ${C} — ${a.title}`)}if(Pt.length>5)lt.push("</details>")}if(C.outcome==="escalate"){lt.push("");lt.push("### Why human review");const a=C.escalation_reasons.length?C.escalation_reasons:Ue;for(const C of a)lt.push(`- ${C}`)}let Wt=lt.join("\n");const Ar=q.findings.filter((a=>a.severity==="critical"||a.severity==="high"||a.severity==="medium")).map((a=>({severity:a.severity,title:a.title,file:a.file,...a.line!==undefined?{line:a.line}:{}})));const Er=`\x3c!-- aao-secretariat-decision:\n${JSON.stringify({head:re,outcome:C.outcome,high_risk:ae,reasons:C.outcome==="escalate"?C.escalation_reasons.length?C.escalation_reasons:Ue:[],findings:Ar})}\n--\x3e`;if(Wt.length>MAX_BODY){Wt=Wt.slice(0,MAX_BODY-20)+"\n\n…(truncated)…"}return`${Wt}\n\n${Er}`}async function findNoAutoApproveTeams(a){const{octokit:C,org:q,username:re,teamSlugs:ae}=a;if(ae.length===0||!re)return[];const Ue=await Promise.all(ae.map((async a=>{const ae=a.includes("/")?a.split("/").pop():a;try{const{data:Ue}=await C.rest.teams.getMembershipForUserInOrg({org:q,team_slug:ae,username:re});return Ue.state==="active"?a:null}catch(C){const q=C instanceof Error&&"status"in C?C.status:undefined;if(q===404)return null;core.warning(`Could not verify membership of '${re}' in team '${a}': ${C instanceof Error?C.message:String(C)} — holding for human review`);return a}})));return Ue.filter((a=>a!==null))}function csv(a){return a.split(",").map((a=>a.trim())).filter(Boolean)}async function main(){const a=core.getInput("anthropic-api-key",{required:true});const C=core.getInput("github-token",{required:true});const q=core.getInput("findings-json",{required:true});const re=core.getInput("aao-secretariat-md-body");const ae=core.getInput("high-risk")==="true";const Ue=(()=>{try{return JSON.parse(core.getInput("high-risk-reasons")||"[]")}catch{return[]}})();const lt=core.getInput("gated-paths")==="true";const Pt=(()=>{try{return JSON.parse(core.getInput("gated-paths-reasons")||"[]")}catch{return[]}})();const Wt=core.getInput("review-decision");const Ar=csv(core.getInput("escalation-reviewers"));const Er=csv(core.getInput("no-auto-approve-teams"));const Br=csv(core.getInput("protected-branches"));const Qr=core.getInput("prior-decision");const Ir=Number(core.getInput("pr-number",{required:true}));const Dr=core.getInput("head-sha",{required:true});const kr=core.getInput("base-sha",{required:true});const Fr=core.getInput("diff-full-path",{required:true});const Nr=core.getInput("model")||"claude-sonnet-4-6";const Ur=core.getInput("decision-label")||"aao-secretariat/needs-human-review";const Lr=parseFindings(q);const Mr=parsePriorDecisionInput(Qr);const Pr=await computeDiffStatsFromFile(Fr);const Gr=github.context;const{owner:Or,repo:Vr}=Gr.repo;const Hr=github.getOctokit(C);const xr=Gr.payload.pull_request?.user?.login??"";const Yr=Gr.payload.pull_request?.base?.ref??"";const Jr=await findNoAutoApproveTeams({octokit:Hr,org:Or,username:xr,teamSlugs:Er});const Wr=buildArbiterPrompt({repoSlug:`${Or}/${Vr}`,prNumber:Ir,baseRef:Yr,headSha:Dr,baseSha:kr,findings:Lr,diffStats:Pr,highRisk:ae,highRiskReasons:Ue,gatedPaths:lt,gatedPathsReasons:Pt,reviewDecision:Wt,protectedBranches:Br,noAutoApproveTeams:Er,authorTeamMatches:Jr,priorDecision:Mr,repoContext:re.trim()?re:null,severityRules:SEVERITY_RULES,decisionRules:DECISION_RULES});const jr=await decideViaAnthropic({apiKey:a,model:Nr,prompt:Wr});const{decision:zr,overrides:Xr}=enforceDecisionGuards(jr,{authorTeamMatches:Jr,gatedPaths:lt,gatedPathsReasons:Pt,reviewDecision:Wt});for(const a of Xr){core.warning(`Decision override applied: ${a}`)}const Kr=renderReviewBody({decision:zr,findings:Lr,headSha:Dr,highRisk:ae,highRiskReasons:Ue});await postReview({octokit:Hr,owner:Or,repo:Vr,prNumber:Ir,headSha:Dr,event:mapOutcomeToReviewEvent(zr.outcome),body:Kr});if(zr.outcome==="escalate"){await ensureLabel({octokit:Hr,owner:Or,repo:Vr,name:Ur});await addLabel({octokit:Hr,owner:Or,repo:Vr,prNumber:Ir,label:Ur});if(Ar.length>0){await requestReviewers({octokit:Hr,owner:Or,repo:Vr,prNumber:Ir,reviewers:Ar})}}core.setOutput("outcome",zr.outcome)}main().catch((a=>{core.setFailed(a instanceof Error?a.message:String(a))})); \ No newline at end of file diff --git a/.secretariat/ai-review/arbiter/dist/package.json b/.secretariat/ai-review/arbiter/dist/package.json deleted file mode 100644 index 3dbc1ca59..000000000 --- a/.secretariat/ai-review/arbiter/dist/package.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "type": "module" -} diff --git a/.secretariat/ai-review/arbiter/package-lock.json b/.secretariat/ai-review/arbiter/package-lock.json deleted file mode 100644 index 972a734c5..000000000 --- a/.secretariat/ai-review/arbiter/package-lock.json +++ /dev/null @@ -1,2008 +0,0 @@ -{ - "name": "@adcp/aao-secretariat-arbiter", - "version": "0.1.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "@adcp/aao-secretariat-arbiter", - "version": "0.1.0", - "dependencies": { - "@actions/core": "^1.11.1", - "@actions/exec": "^1.1.1", - "@actions/github": "^6.0.1", - "@anthropic-ai/sdk": "^0.39.0" - }, - "devDependencies": { - "@types/node": "^22.10.5", - "@vercel/ncc": "^0.38.3", - "typescript": "^5.7.3", - "vitest": "^4.1.1" - } - }, - "node_modules/@actions/core": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.11.1.tgz", - "integrity": "sha512-hXJCSrkwfA46Vd9Z3q4cpEpHB1rL5NG04+/rbqW9d3+CSvtB1tYe8UTpAlixa1vj0m/ULglfEK2UKxMGxCxv5A==", - "license": "MIT", - "dependencies": { - "@actions/exec": "^1.1.1", - "@actions/http-client": "^2.0.1" - } - }, - "node_modules/@actions/exec": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@actions/exec/-/exec-1.1.1.tgz", - "integrity": "sha512-+sCcHHbVdk93a0XT19ECtO/gIXoxvdsgQLzb2fE2/5sIZmWQuluYyjPQtrtTHdU1YzTZ7bAPN4sITq2xi1679w==", - "license": "MIT", - "dependencies": { - "@actions/io": "^1.0.1" - } - }, - "node_modules/@actions/github": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@actions/github/-/github-6.0.1.tgz", - "integrity": "sha512-xbZVcaqD4XnQAe35qSQqskb3SqIAfRyLBrHMd/8TuL7hJSz2QtbDwnNM8zWx4zO5l2fnGtseNE3MbEvD7BxVMw==", - "license": "MIT", - "dependencies": { - "@actions/http-client": "^2.2.0", - "@octokit/core": "^5.0.1", - "@octokit/plugin-paginate-rest": "^9.2.2", - "@octokit/plugin-rest-endpoint-methods": "^10.4.0", - "@octokit/request": "^8.4.1", - "@octokit/request-error": "^5.1.1", - "undici": "^5.28.5" - } - }, - "node_modules/@actions/http-client": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-2.2.3.tgz", - "integrity": "sha512-mx8hyJi/hjFvbPokCg4uRd4ZX78t+YyRPtnKWwIl+RzNaVuFpQHfmlGVfsKEJN8LwTCvL+DfVgAM04XaHkm6bA==", - "license": "MIT", - "dependencies": { - "tunnel": "^0.0.6", - "undici": "^5.25.4" - } - }, - "node_modules/@actions/io": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@actions/io/-/io-1.1.3.tgz", - "integrity": "sha512-wi9JjgKLYS7U/z8PPbco+PvTb/nRWjeoFlJ1Qer83k/3C5PHQi28hiVdeE2kHXmIL99mQFawx8qt/JPjZilJ8Q==", - "license": "MIT" - }, - "node_modules/@anthropic-ai/sdk": { - "version": "0.39.0", - "resolved": "https://registry.npmjs.org/@anthropic-ai/sdk/-/sdk-0.39.0.tgz", - "integrity": "sha512-eMyDIPRZbt1CCLErRCi3exlAvNkBtRe+kW5vvJyef93PmNr/clstYgHhtvmkxN82nlKgzyGPCyGxrm0JQ1ZIdg==", - "license": "MIT", - "dependencies": { - "@types/node": "^18.11.18", - "@types/node-fetch": "^2.6.4", - "abort-controller": "^3.0.0", - "agentkeepalive": "^4.2.1", - "form-data-encoder": "1.7.2", - "formdata-node": "^4.3.2", - "node-fetch": "^2.6.7" - } - }, - "node_modules/@anthropic-ai/sdk/node_modules/@types/node": { - "version": "18.19.130", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.130.tgz", - "integrity": "sha512-GRaXQx6jGfL8sKfaIDD6OupbIHBr9jv7Jnaml9tB7l4v068PAOXqfcujMMo5PhbIs6ggR1XODELqahT2R8v0fg==", - "license": "MIT", - "dependencies": { - "undici-types": "~5.26.4" - } - }, - "node_modules/@anthropic-ai/sdk/node_modules/undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", - "license": "MIT" - }, - "node_modules/@emnapi/core": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.11.1.tgz", - "integrity": "sha512-RSvbQmHzdKzNsLYa/wHrbc3KN4sYLKAdPZxqiM2HATqv/SBk2/ENSHpvXGaLOMcsAyz0poEGqkmmKYG3OWiJEQ==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "@emnapi/wasi-threads": "1.2.2", - "tslib": "^2.4.0" - } - }, - "node_modules/@emnapi/runtime": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.11.1.tgz", - "integrity": "sha512-vgj7R3y3Wgx24IQaGPA/R6YFXLHVMOZ0uVEyIQPaWs+rd1AzfEMXlAC22FYwO1XkKR6NPsq7mUandH8oIRdZFw==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/@emnapi/wasi-threads": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.2.tgz", - "integrity": "sha512-c95qOXkHdydNKhscBTebqEC1CVAZpyqOfVfBzQ1qgzyl3gfeldUjIggDbIZgDKsHLgnsM+igH7TJ/eAasaVuMA==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/@fastify/busboy": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.1.tgz", - "integrity": "sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==", - "license": "MIT", - "engines": { - "node": ">=14" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", - "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", - "dev": true, - "license": "MIT" - }, - "node_modules/@napi-rs/wasm-runtime": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.6.tgz", - "integrity": "sha512-ZLv/JdUfkvOy9eCnnBaGfiO+XimbjebAeO+MRQqD/B+FR1tnRN0tpKSJHRbE8sFfS6aqsXZ67TQjfwfsxULVbg==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@tybys/wasm-util": "^0.10.3" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Brooooooklyn" - }, - "peerDependencies": { - "@emnapi/core": "^1.7.1", - "@emnapi/runtime": "^1.7.1" - } - }, - "node_modules/@octokit/auth-token": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-4.0.0.tgz", - "integrity": "sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==", - "license": "MIT", - "engines": { - "node": ">= 18" - } - }, - "node_modules/@octokit/core": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/@octokit/core/-/core-5.2.2.tgz", - "integrity": "sha512-/g2d4sW9nUDJOMz3mabVQvOGhVa4e/BN/Um7yca9Bb2XTzPPnfTWHWQg+IsEYO7M3Vx+EXvaM/I2pJWIMun1bg==", - "license": "MIT", - "peer": true, - "dependencies": { - "@octokit/auth-token": "^4.0.0", - "@octokit/graphql": "^7.1.0", - "@octokit/request": "^8.4.1", - "@octokit/request-error": "^5.1.1", - "@octokit/types": "^13.0.0", - "before-after-hook": "^2.2.0", - "universal-user-agent": "^6.0.0" - }, - "engines": { - "node": ">= 18" - } - }, - "node_modules/@octokit/endpoint": { - "version": "9.0.6", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-9.0.6.tgz", - "integrity": "sha512-H1fNTMA57HbkFESSt3Y9+FBICv+0jFceJFPWDePYlR/iMGrwM5ph+Dd4XRQs+8X+PUFURLQgX9ChPfhJ/1uNQw==", - "license": "MIT", - "dependencies": { - "@octokit/types": "^13.1.0", - "universal-user-agent": "^6.0.0" - }, - "engines": { - "node": ">= 18" - } - }, - "node_modules/@octokit/graphql": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-7.1.1.tgz", - "integrity": "sha512-3mkDltSfcDUoa176nlGoA32RGjeWjl3K7F/BwHwRMJUW/IteSa4bnSV8p2ThNkcIcZU2umkZWxwETSSCJf2Q7g==", - "license": "MIT", - "dependencies": { - "@octokit/request": "^8.4.1", - "@octokit/types": "^13.0.0", - "universal-user-agent": "^6.0.0" - }, - "engines": { - "node": ">= 18" - } - }, - "node_modules/@octokit/openapi-types": { - "version": "24.2.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-24.2.0.tgz", - "integrity": "sha512-9sIH3nSUttelJSXUrmGzl7QUBFul0/mB8HRYl3fOlgHbIWG+WnYDXU3v/2zMtAvuzZ/ed00Ei6on975FhBfzrg==", - "license": "MIT" - }, - "node_modules/@octokit/plugin-paginate-rest": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-9.2.2.tgz", - "integrity": "sha512-u3KYkGF7GcZnSD/3UP0S7K5XUFT2FkOQdcfXZGZQPGv3lm4F2Xbf71lvjldr8c1H3nNbF+33cLEkWYbokGWqiQ==", - "license": "MIT", - "dependencies": { - "@octokit/types": "^12.6.0" - }, - "engines": { - "node": ">= 18" - }, - "peerDependencies": { - "@octokit/core": "5" - } - }, - "node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/openapi-types": { - "version": "20.0.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-20.0.0.tgz", - "integrity": "sha512-EtqRBEjp1dL/15V7WiX5LJMIxxkdiGJnabzYx5Apx4FkQIFgAfKumXeYAqqJCj1s+BMX4cPFIFC4OLCR6stlnA==", - "license": "MIT" - }, - "node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types": { - "version": "12.6.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-12.6.0.tgz", - "integrity": "sha512-1rhSOfRa6H9w4YwK0yrf5faDaDTb+yLyBUKOCV4xtCDB5VmIPqd/v9yr9o6SAzOAlRxMiRiCic6JVM1/kunVkw==", - "license": "MIT", - "dependencies": { - "@octokit/openapi-types": "^20.0.0" - } - }, - "node_modules/@octokit/plugin-rest-endpoint-methods": { - "version": "10.4.1", - "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-10.4.1.tgz", - "integrity": "sha512-xV1b+ceKV9KytQe3zCVqjg+8GTGfDYwaT1ATU5isiUyVtlVAO3HNdzpS4sr4GBx4hxQ46s7ITtZrAsxG22+rVg==", - "license": "MIT", - "dependencies": { - "@octokit/types": "^12.6.0" - }, - "engines": { - "node": ">= 18" - }, - "peerDependencies": { - "@octokit/core": "5" - } - }, - "node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/openapi-types": { - "version": "20.0.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-20.0.0.tgz", - "integrity": "sha512-EtqRBEjp1dL/15V7WiX5LJMIxxkdiGJnabzYx5Apx4FkQIFgAfKumXeYAqqJCj1s+BMX4cPFIFC4OLCR6stlnA==", - "license": "MIT" - }, - "node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types": { - "version": "12.6.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-12.6.0.tgz", - "integrity": "sha512-1rhSOfRa6H9w4YwK0yrf5faDaDTb+yLyBUKOCV4xtCDB5VmIPqd/v9yr9o6SAzOAlRxMiRiCic6JVM1/kunVkw==", - "license": "MIT", - "dependencies": { - "@octokit/openapi-types": "^20.0.0" - } - }, - "node_modules/@octokit/request": { - "version": "8.4.1", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-8.4.1.tgz", - "integrity": "sha512-qnB2+SY3hkCmBxZsR/MPCybNmbJe4KAlfWErXq+rBKkQJlbjdJeS85VI9r8UqeLYLvnAenU8Q1okM/0MBsAGXw==", - "license": "MIT", - "dependencies": { - "@octokit/endpoint": "^9.0.6", - "@octokit/request-error": "^5.1.1", - "@octokit/types": "^13.1.0", - "universal-user-agent": "^6.0.0" - }, - "engines": { - "node": ">= 18" - } - }, - "node_modules/@octokit/request-error": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-5.1.1.tgz", - "integrity": "sha512-v9iyEQJH6ZntoENr9/yXxjuezh4My67CBSu9r6Ve/05Iu5gNgnisNWOsoJHTP6k0Rr0+HQIpnH+kyammu90q/g==", - "license": "MIT", - "dependencies": { - "@octokit/types": "^13.1.0", - "deprecation": "^2.0.0", - "once": "^1.4.0" - }, - "engines": { - "node": ">= 18" - } - }, - "node_modules/@octokit/types": { - "version": "13.10.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.10.0.tgz", - "integrity": "sha512-ifLaO34EbbPj0Xgro4G5lP5asESjwHracYJvVaPIyXMuiuXLlhic3S47cBdTb+jfODkTE5YtGCLt3Ay3+J97sA==", - "license": "MIT", - "dependencies": { - "@octokit/openapi-types": "^24.2.0" - } - }, - "node_modules/@oxc-project/types": { - "version": "0.139.0", - "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.139.0.tgz", - "integrity": "sha512-r9gHphtCs+1M7J0pw6Sn/hh/Wpa/iQrOOkrNAlVLF/gHq+/CJmHIWKKUUhdWjcD6CIa8idarspCsASiXCXvFUw==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/Boshen" - } - }, - "node_modules/@rolldown/binding-android-arm64": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.1.5.tgz", - "integrity": "sha512-lZg8fqIv2v7FF237bwMgzGZEJvGL79/s5knJ/i6FmsGF4XXlzccZ4jb+TrFIxtSSxFtIpdsgrPZeMk1I9AFcyQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-darwin-arm64": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.1.5.tgz", - "integrity": "sha512-51Bnx9pNiMRKSUNtBfySkNJ9vMU9Hh3I1ozDd6gyPPYzaXCfnptUcEZxXGYFn+ul2dtcMUiqGR1Yai2K10uoTw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-darwin-x64": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.1.5.tgz", - "integrity": "sha512-Tm+gbfC0aHu1tBA/JvKQh32S0K6YgCHkiAF4/W6xX0K0RmNuc94VeK419dJoE65R5aRxmo+noZQSWrAMF6yb6g==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-freebsd-x64": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.1.5.tgz", - "integrity": "sha512-JMzDKCCXq93YccG5gz3hvOs1oXRKAf0XYpfOS88e+wZrC8Iugj6j68867vrYZkvpDDpKn/KoKORThmchMpF6TA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-linux-arm-gnueabihf": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.1.5.tgz", - "integrity": "sha512-uML21j2K5TfPGutKxub+M+nLjZIrWjXQ5Grx4lCe/nimTj9B4L63zHpjXLl4y0L3mcm2htEQIb06oCG/szerNw==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-linux-arm64-gnu": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.1.5.tgz", - "integrity": "sha512-navSiuTMogvnQoZoM/v+l3ZWo50/NTwSHSzheABx/RCnmUPaKwq9qSo4Br2OYRs21+Fz8uFqITZM3H4opOB0/Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-linux-arm64-musl": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.1.5.tgz", - "integrity": "sha512-lAryqH7IteztmCXQXk0etKj4wBQ7Gx5S6LjKhsgp9zb8I5bsuvU/2llH1hDQcjsFeqIsovMVN339/8pUDDBXxA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-linux-ppc64-gnu": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.1.5.tgz", - "integrity": "sha512-fsK/sNBnxzBlL4O1JNrZakVQxPspqpED5dLtNsZS9oOKmtSpdNIzxH2kkol5HYTWJN47sE20ztMJPxfZ89qGOg==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-linux-s390x-gnu": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.1.5.tgz", - "integrity": "sha512-gLYb4BIadlfTOYT5gO503n8zQjXflgzpD0FcyKh0Mzx3rqCZKnHoJWV9xe1KXUJ5lx2JfcSHr/mhzS0PC/McAA==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-linux-x64-gnu": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.1.5.tgz", - "integrity": "sha512-FjcpEKUyJygHgs1o50VYNvkt5+7Le/VEdYt0AkRpkL33MnyQfwr8l5mXwMmfmTbyMPr5vJLC+8/Gd9gXnwU1QQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-linux-x64-musl": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.1.5.tgz", - "integrity": "sha512-Me+PfPI2TMeOQk0gYWfLQZtTktrmzbr8cDboqX83XKc7UrgAi55gF+2dUkWdxd19n55Essp2yeca+O9N5rBxHg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-openharmony-arm64": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.1.5.tgz", - "integrity": "sha512-yc5WrLzXks6zCQfn9Oxr8pORKyl/pF+QjHmW/Qx3qu0oyrrNC+y2JLTU1E2rcWYAmzlnqngWXHQjy51VzW70Vw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openharmony" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-wasm32-wasi": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.1.5.tgz", - "integrity": "sha512-VbQGPX2b4r48TAMIM2cjgluIM1HYutm4pcTEJsle7iEP7sB1dFqtPLBVbdLAZCxy1txCcPxf4QFf4v8uvltPqA==", - "cpu": [ - "wasm32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@emnapi/core": "1.11.1", - "@emnapi/runtime": "1.11.1", - "@napi-rs/wasm-runtime": "^1.1.6" - }, - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-win32-arm64-msvc": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.1.5.tgz", - "integrity": "sha512-gHv82k63z4qpV5+Q1y/12KrK0ltWBukVDI8nZcbT7Tt/ZlOIVwppazneq0F93oDxTo3IgAMEDIoQh3E2n6mVsw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-win32-x64-msvc": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.1.5.tgz", - "integrity": "sha512-tTZuDBPw85tEN5PQi1pnEBzDy0Z49HtScLAbD5t6hyeU92A95pRWaSMw1GZZi/RwgSgUIl0xrSlXIT/9QzvYSA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/pluginutils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.1.tgz", - "integrity": "sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@standard-schema/spec": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz", - "integrity": "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==", - "dev": true, - "license": "MIT" - }, - "node_modules/@tybys/wasm-util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.3.tgz", - "integrity": "sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/@types/chai": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.2.3.tgz", - "integrity": "sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/deep-eql": "*", - "assertion-error": "^2.0.1" - } - }, - "node_modules/@types/deep-eql": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz", - "integrity": "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/estree": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.9.tgz", - "integrity": "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/node": { - "version": "22.20.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.20.1.tgz", - "integrity": "sha512-EANqOCF9QFyra+4pfxUcX9STKJpCLjMbObVzljIJomAWSnuSIEAvyzEU53GaajbXJEgdh0iEcPL+DGvpUd4k1Q==", - "license": "MIT", - "dependencies": { - "undici-types": "~6.21.0" - } - }, - "node_modules/@types/node-fetch": { - "version": "2.6.13", - "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.13.tgz", - "integrity": "sha512-QGpRVpzSaUs30JBSGPjOg4Uveu384erbHBoT1zeONvyCfwQxIkUshLAOqN/k9EjGviPRmWTTe6aH2qySWKTVSw==", - "license": "MIT", - "dependencies": { - "@types/node": "*", - "form-data": "^4.0.4" - } - }, - "node_modules/@vercel/ncc": { - "version": "0.38.4", - "resolved": "https://registry.npmjs.org/@vercel/ncc/-/ncc-0.38.4.tgz", - "integrity": "sha512-8LwjnlP39s08C08J5NstzriPvW1SP8Zfpp1BvC2sI35kPeZnHfxVkCwu4/+Wodgnd60UtT1n8K8zw+Mp7J9JmQ==", - "dev": true, - "license": "MIT", - "bin": { - "ncc": "dist/ncc/cli.js" - } - }, - "node_modules/@vitest/expect": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-4.1.10.tgz", - "integrity": "sha512-YsCn+qAk1GWjQOWFEsEcL2gNQ0zmVmQu3T03qP6UyjhtmdtwtbuI+DASn/7iQB3HGTXkdBwGddzxPlmiql5vlA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@standard-schema/spec": "^1.1.0", - "@types/chai": "^5.2.2", - "@vitest/spy": "4.1.10", - "@vitest/utils": "4.1.10", - "chai": "^6.2.2", - "tinyrainbow": "^3.1.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/@vitest/mocker": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-4.1.10.tgz", - "integrity": "sha512-v0xaezt+DKEmKfaxg133ldzADrwLGd7Ze1MfQQTYfvs8OqZIwbxyxaYURivwV7sWy5fqn3rH5uOrSp07bp44Ow==", - "dev": true, - "license": "MIT", - "dependencies": { - "@vitest/spy": "4.1.10", - "estree-walker": "^3.0.3", - "magic-string": "^0.30.21" - }, - "funding": { - "url": "https://opencollective.com/vitest" - }, - "peerDependencies": { - "msw": "^2.4.9", - "vite": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "msw": { - "optional": true - }, - "vite": { - "optional": true - } - } - }, - "node_modules/@vitest/pretty-format": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.1.10.tgz", - "integrity": "sha512-W1HsjSH4MXQ9YfmmhLAoIYf1HRfekQCGngeIgcei6MP5QQGWUe0gkopdZQaVCFO+JDJMrAJGwa5pRpNpvy4P8Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "tinyrainbow": "^3.1.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/@vitest/runner": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-4.1.10.tgz", - "integrity": "sha512-IKI6kpIH+LmpROplyLwBBaCfMgOZOMsygVa6BARD6ahA04VRuJSa6OaVG7kRvSEMD870Vd91rSSw0eegtWyLGg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@vitest/utils": "4.1.10", - "pathe": "^2.0.3" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/@vitest/snapshot": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-4.1.10.tgz", - "integrity": "sha512-xRkfOT1qpTAi/Ti4Y1LtfRc3kEuqxGw59eN2jN9pRWMtS/XDevekhcFSqvQqjUNGksfjMJu3Y+oJ+4Ypn2OaJw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@vitest/pretty-format": "4.1.10", - "@vitest/utils": "4.1.10", - "magic-string": "^0.30.21", - "pathe": "^2.0.3" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/@vitest/spy": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-4.1.10.tgz", - "integrity": "sha512-PLf/Ugvoq5wO/b4rwYCR1h2PSIdXz7wnkQFMiUpLdtM7l6pqVFcQIBEHyT1+l+cj7mNwAfZHzqXqDyjvOuwbDw==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/@vitest/utils": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-4.1.10.tgz", - "integrity": "sha512-fy9am/HWxbaGt/Sawrp90vt6Y6jQwf1RX77cz3uwoJwJVMli/e1IEwRPnMNJ7vKfPTwo0diXifkpPvwH9v7nGA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@vitest/pretty-format": "4.1.10", - "convert-source-map": "^2.0.0", - "tinyrainbow": "^3.1.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/abort-controller": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", - "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", - "license": "MIT", - "dependencies": { - "event-target-shim": "^5.0.0" - }, - "engines": { - "node": ">=6.5" - } - }, - "node_modules/agentkeepalive": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.6.0.tgz", - "integrity": "sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==", - "license": "MIT", - "dependencies": { - "humanize-ms": "^1.2.1" - }, - "engines": { - "node": ">= 8.0.0" - } - }, - "node_modules/assertion-error": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", - "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - } - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "license": "MIT" - }, - "node_modules/before-after-hook": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz", - "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==", - "license": "Apache-2.0" - }, - "node_modules/call-bind-apply-helpers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", - "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/chai": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/chai/-/chai-6.2.2.tgz", - "integrity": "sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - } - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "license": "MIT", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true, - "license": "MIT" - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/deprecation": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", - "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==", - "license": "ISC" - }, - "node_modules/detect-libc": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", - "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=8" - } - }, - "node_modules/dunder-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", - "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.1", - "es-errors": "^1.3.0", - "gopd": "^1.2.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-define-property": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", - "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-errors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-module-lexer": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.3.0.tgz", - "integrity": "sha512-KLdwQm2NvGLDkQDCGvmiQrhkd0JbMzXthwQAUgWjQuQdBLFa3eiBP5arXZyA+f8x+x7OXgud6bq2rxjGtHV2tw==", - "dev": true, - "license": "MIT" - }, - "node_modules/es-object-atoms": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.2.tgz", - "integrity": "sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-set-tostringtag": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", - "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.6", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/estree-walker": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", - "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0" - } - }, - "node_modules/event-target-shim": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", - "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/expect-type": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.4.0.tgz", - "integrity": "sha512-KfYbmpRm0VbLjEvVa9yGwCi9GI34xvi7A/HXYWQO65CSD2u3MczUJSuwXKFIxlGsgBQizV9q5J9NHj4VG0n+pA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/fdir": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", - "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "picomatch": "^3 || ^4" - }, - "peerDependenciesMeta": { - "picomatch": { - "optional": true - } - } - }, - "node_modules/form-data": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.6.tgz", - "integrity": "sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ==", - "license": "MIT", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "es-set-tostringtag": "^2.1.0", - "hasown": "^2.0.4", - "mime-types": "^2.1.35" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/form-data-encoder": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-1.7.2.tgz", - "integrity": "sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A==", - "license": "MIT" - }, - "node_modules/formdata-node": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/formdata-node/-/formdata-node-4.4.1.tgz", - "integrity": "sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==", - "license": "MIT", - "dependencies": { - "node-domexception": "1.0.0", - "web-streams-polyfill": "4.0.0-beta.3" - }, - "engines": { - "node": ">= 12.20" - } - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-intrinsic": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", - "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "es-define-property": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.1.1", - "function-bind": "^1.1.2", - "get-proto": "^1.0.1", - "gopd": "^1.2.0", - "has-symbols": "^1.1.0", - "hasown": "^2.0.2", - "math-intrinsics": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", - "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", - "license": "MIT", - "dependencies": { - "dunder-proto": "^1.0.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/gopd": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", - "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", - "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", - "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", - "license": "MIT", - "dependencies": { - "has-symbols": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/hasown": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.4.tgz", - "integrity": "sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==", - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/humanize-ms": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", - "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", - "license": "MIT", - "dependencies": { - "ms": "^2.0.0" - } - }, - "node_modules/lightningcss": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.32.0.tgz", - "integrity": "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==", - "dev": true, - "license": "MPL-2.0", - "dependencies": { - "detect-libc": "^2.0.3" - }, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - }, - "optionalDependencies": { - "lightningcss-android-arm64": "1.32.0", - "lightningcss-darwin-arm64": "1.32.0", - "lightningcss-darwin-x64": "1.32.0", - "lightningcss-freebsd-x64": "1.32.0", - "lightningcss-linux-arm-gnueabihf": "1.32.0", - "lightningcss-linux-arm64-gnu": "1.32.0", - "lightningcss-linux-arm64-musl": "1.32.0", - "lightningcss-linux-x64-gnu": "1.32.0", - "lightningcss-linux-x64-musl": "1.32.0", - "lightningcss-win32-arm64-msvc": "1.32.0", - "lightningcss-win32-x64-msvc": "1.32.0" - } - }, - "node_modules/lightningcss-android-arm64": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.32.0.tgz", - "integrity": "sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-darwin-arm64": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.32.0.tgz", - "integrity": "sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-darwin-x64": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.32.0.tgz", - "integrity": "sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-freebsd-x64": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.32.0.tgz", - "integrity": "sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-arm-gnueabihf": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.32.0.tgz", - "integrity": "sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-arm64-gnu": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.32.0.tgz", - "integrity": "sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-arm64-musl": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.32.0.tgz", - "integrity": "sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-x64-gnu": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.32.0.tgz", - "integrity": "sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-x64-musl": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.32.0.tgz", - "integrity": "sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-win32-arm64-msvc": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.32.0.tgz", - "integrity": "sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-win32-x64-msvc": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.32.0.tgz", - "integrity": "sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/magic-string": { - "version": "0.30.21", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", - "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.5" - } - }, - "node_modules/math-intrinsics": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", - "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "license": "MIT", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "license": "MIT" - }, - "node_modules/nanoid": { - "version": "3.3.15", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.15.tgz", - "integrity": "sha512-y7Wygv/7mEOvxTuEQDB8StXdMRBWf1kR/tlhAzBRUFkB2jfcLOAxO/SHmOO2zgz1pVgK29/kyupn059/bCHdjA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/node-domexception": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", - "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", - "deprecated": "Use your platform's native DOMException instead", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/jimmywarting" - }, - { - "type": "github", - "url": "https://paypal.me/jimmywarting" - } - ], - "license": "MIT", - "engines": { - "node": ">=10.5.0" - } - }, - "node_modules/node-fetch": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", - "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", - "license": "MIT", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/obug": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/obug/-/obug-2.1.3.tgz", - "integrity": "sha512-9miFgM2OFba7hB+pRgvtV84pYTBaoTHohvmIgiRt6dRIzbwEOIaNaP+dIlGs2fNFoB0SeISs0Jz5WFVRid6Xyg==", - "dev": true, - "funding": [ - "https://github.com/sponsors/sxzz", - "https://opencollective.com/debug" - ], - "license": "MIT", - "engines": { - "node": ">=12.20.0" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "license": "ISC", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/pathe": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", - "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", - "dev": true, - "license": "MIT" - }, - "node_modules/picocolors": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", - "dev": true, - "license": "ISC" - }, - "node_modules/picomatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.5.tgz", - "integrity": "sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/postcss": { - "version": "8.5.16", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.16.tgz", - "integrity": "sha512-vuwillviilfKZsg0VGj5R/YwwcHx4SLsIOI/7K6mQkWx+l5cUHTjj5g0AasTBcyXsbfTgrwsUNmVUb5xVwyPwg==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "nanoid": "^3.3.12", - "picocolors": "^1.1.1", - "source-map-js": "^1.2.1" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/rolldown": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.1.5.tgz", - "integrity": "sha512-t9z29cJjXf/vxQ8dyhCSpt6H6aSwHTk8cT5I3iy6SMXuFpk5mB6PL6XfC8PCwrPTx93udwKUm9HRteAlTGBLiA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@oxc-project/types": "=0.139.0", - "@rolldown/pluginutils": "^1.0.0" - }, - "bin": { - "rolldown": "bin/cli.mjs" - }, - "engines": { - "node": "^20.19.0 || >=22.12.0" - }, - "optionalDependencies": { - "@rolldown/binding-android-arm64": "1.1.5", - "@rolldown/binding-darwin-arm64": "1.1.5", - "@rolldown/binding-darwin-x64": "1.1.5", - "@rolldown/binding-freebsd-x64": "1.1.5", - "@rolldown/binding-linux-arm-gnueabihf": "1.1.5", - "@rolldown/binding-linux-arm64-gnu": "1.1.5", - "@rolldown/binding-linux-arm64-musl": "1.1.5", - "@rolldown/binding-linux-ppc64-gnu": "1.1.5", - "@rolldown/binding-linux-s390x-gnu": "1.1.5", - "@rolldown/binding-linux-x64-gnu": "1.1.5", - "@rolldown/binding-linux-x64-musl": "1.1.5", - "@rolldown/binding-openharmony-arm64": "1.1.5", - "@rolldown/binding-wasm32-wasi": "1.1.5", - "@rolldown/binding-win32-arm64-msvc": "1.1.5", - "@rolldown/binding-win32-x64-msvc": "1.1.5" - } - }, - "node_modules/siginfo": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", - "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", - "dev": true, - "license": "ISC" - }, - "node_modules/source-map-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", - "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/stackback": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", - "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", - "dev": true, - "license": "MIT" - }, - "node_modules/std-env": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/std-env/-/std-env-4.2.0.tgz", - "integrity": "sha512-oCUKSupKTHX53EyjDtuZQ64pjLJ6yYCtpmEw0goYxtjG9KpbRe8KAsl2tBUGU9DyMcJ0RwJ8GqJAFzMXcXW1Rw==", - "dev": true, - "license": "MIT" - }, - "node_modules/tinybench": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", - "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==", - "dev": true, - "license": "MIT" - }, - "node_modules/tinyexec": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.2.4.tgz", - "integrity": "sha512-SHf/r48b7vOrjve9PxJo3MN5v5yuyjHvdUcrQffT3WXMUfnGmHDVbC4k3sHJaJTgZCwpUplIaAo5ANtMyp3YHg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - } - }, - "node_modules/tinyglobby": { - "version": "0.2.17", - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz", - "integrity": "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==", - "dev": true, - "license": "MIT", - "dependencies": { - "fdir": "^6.5.0", - "picomatch": "^4.0.4" - }, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/SuperchupuDev" - } - }, - "node_modules/tinyrainbow": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-3.1.0.tgz", - "integrity": "sha512-Bf+ILmBgretUrdJxzXM0SgXLZ3XfiaUuOj/IKQHuTXip+05Xn+uyEYdVg0kYDipTBcLrCVyUzAPz7QmArb0mmw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "license": "MIT" - }, - "node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true, - "license": "0BSD", - "optional": true - }, - "node_modules/tunnel": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", - "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", - "license": "MIT", - "engines": { - "node": ">=0.6.11 <=0.7.0 || >=0.7.3" - } - }, - "node_modules/typescript": { - "version": "5.9.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", - "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", - "dev": true, - "license": "Apache-2.0", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/undici": { - "version": "5.29.0", - "resolved": "https://registry.npmjs.org/undici/-/undici-5.29.0.tgz", - "integrity": "sha512-raqeBD6NQK4SkWhQzeYKd1KmIG6dllBOTt55Rmkt4HtI9mwdWtJljnrXjAFUBLTSN67HWrOIZ3EPF4kjUw80Bg==", - "license": "MIT", - "dependencies": { - "@fastify/busboy": "^2.0.0" - }, - "engines": { - "node": ">=14.0" - } - }, - "node_modules/undici-types": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", - "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", - "license": "MIT" - }, - "node_modules/universal-user-agent": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.1.tgz", - "integrity": "sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==", - "license": "ISC" - }, - "node_modules/vite": { - "version": "8.1.4", - "resolved": "https://registry.npmjs.org/vite/-/vite-8.1.4.tgz", - "integrity": "sha512-bTT9PsdWO+MQMNG9ZXIP/qM9wGh37DFxTV/sPq9cFpHr3w4jkgef032PkAL9jAqhk3Nz8NQw3O8n6/xFkqO4QQ==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "lightningcss": "^1.32.0", - "picomatch": "^4.0.5", - "postcss": "^8.5.16", - "rolldown": "~1.1.4", - "tinyglobby": "^0.2.17" - }, - "bin": { - "vite": "bin/vite.js" - }, - "engines": { - "node": "^20.19.0 || >=22.12.0" - }, - "funding": { - "url": "https://github.com/vitejs/vite?sponsor=1" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" - }, - "peerDependencies": { - "@types/node": "^20.19.0 || >=22.12.0", - "@vitejs/devtools": "^0.3.0", - "esbuild": "^0.27.0 || ^0.28.0", - "jiti": ">=1.21.0", - "less": "^4.0.0", - "sass": "^1.70.0", - "sass-embedded": "^1.70.0", - "stylus": ">=0.54.8", - "sugarss": "^5.0.0", - "terser": "^5.16.0", - "tsx": "^4.8.1", - "yaml": "^2.4.2" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "@vitejs/devtools": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "jiti": { - "optional": true - }, - "less": { - "optional": true - }, - "sass": { - "optional": true - }, - "sass-embedded": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - }, - "tsx": { - "optional": true - }, - "yaml": { - "optional": true - } - } - }, - "node_modules/vitest": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-4.1.10.tgz", - "integrity": "sha512-R9jUTe5S4Qb0HCd4TNqpC7oGcrMssMRGXLW80ubjWsW9VH5GF8y1Y0SFLY9AbqSk6nt0PnOx4H4WNJYZ13GUPw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@vitest/expect": "4.1.10", - "@vitest/mocker": "4.1.10", - "@vitest/pretty-format": "4.1.10", - "@vitest/runner": "4.1.10", - "@vitest/snapshot": "4.1.10", - "@vitest/spy": "4.1.10", - "@vitest/utils": "4.1.10", - "es-module-lexer": "^2.0.0", - "expect-type": "^1.3.0", - "magic-string": "^0.30.21", - "obug": "^2.1.1", - "pathe": "^2.0.3", - "picomatch": "^4.0.3", - "std-env": "^4.0.0-rc.1", - "tinybench": "^2.9.0", - "tinyexec": "^1.0.2", - "tinyglobby": "^0.2.15", - "tinyrainbow": "^3.1.0", - "vite": "^6.0.0 || ^7.0.0 || ^8.0.0", - "why-is-node-running": "^2.3.0" - }, - "bin": { - "vitest": "vitest.mjs" - }, - "engines": { - "node": "^20.0.0 || ^22.0.0 || >=24.0.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - }, - "peerDependencies": { - "@edge-runtime/vm": "*", - "@opentelemetry/api": "^1.9.0", - "@types/node": "^20.0.0 || ^22.0.0 || >=24.0.0", - "@vitest/browser-playwright": "4.1.10", - "@vitest/browser-preview": "4.1.10", - "@vitest/browser-webdriverio": "4.1.10", - "@vitest/coverage-istanbul": "4.1.10", - "@vitest/coverage-v8": "4.1.10", - "@vitest/ui": "4.1.10", - "happy-dom": "*", - "jsdom": "*", - "vite": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "@edge-runtime/vm": { - "optional": true - }, - "@opentelemetry/api": { - "optional": true - }, - "@types/node": { - "optional": true - }, - "@vitest/browser-playwright": { - "optional": true - }, - "@vitest/browser-preview": { - "optional": true - }, - "@vitest/browser-webdriverio": { - "optional": true - }, - "@vitest/coverage-istanbul": { - "optional": true - }, - "@vitest/coverage-v8": { - "optional": true - }, - "@vitest/ui": { - "optional": true - }, - "happy-dom": { - "optional": true - }, - "jsdom": { - "optional": true - }, - "vite": { - "optional": false - } - } - }, - "node_modules/web-streams-polyfill": { - "version": "4.0.0-beta.3", - "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-4.0.0-beta.3.tgz", - "integrity": "sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug==", - "license": "MIT", - "engines": { - "node": ">= 14" - } - }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "license": "BSD-2-Clause" - }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "license": "MIT", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "node_modules/why-is-node-running": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz", - "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==", - "dev": true, - "license": "MIT", - "dependencies": { - "siginfo": "^2.0.0", - "stackback": "0.0.2" - }, - "bin": { - "why-is-node-running": "cli.js" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "license": "ISC" - } - } -} diff --git a/.secretariat/ai-review/arbiter/package.json b/.secretariat/ai-review/arbiter/package.json deleted file mode 100644 index 83ceaf8ed..000000000 --- a/.secretariat/ai-review/arbiter/package.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "name": "@adcp/aao-secretariat-arbiter", - "version": "0.1.0", - "description": "AAO-SECRETARIAT v2 arbiter — decides approve/request-changes/comment/escalate from reviewer findings.", - "type": "module", - "main": "dist/index.js", - "private": true, - "scripts": { - "prebuild": "node scripts/generate-rules.mjs", - "build": "ncc build src/index.ts -o dist --minify", - "type-check": "tsc --noEmit", - "test": "vitest run" - }, - "dependencies": { - "@actions/core": "^1.11.1", - "@actions/exec": "^1.1.1", - "@actions/github": "^6.0.1", - "@anthropic-ai/sdk": "^0.39.0" - }, - "devDependencies": { - "@types/node": "^22.10.5", - "@vercel/ncc": "^0.38.3", - "typescript": "^5.7.3", - "vitest": "^4.1.1" - } -} diff --git a/.secretariat/ai-review/arbiter/scripts/generate-rules.mjs b/.secretariat/ai-review/arbiter/scripts/generate-rules.mjs deleted file mode 100644 index 9b137d985..000000000 --- a/.secretariat/ai-review/arbiter/scripts/generate-rules.mjs +++ /dev/null @@ -1,32 +0,0 @@ -import { readFile, writeFile } from 'node:fs/promises' -import { dirname, join } from 'node:path' -import { fileURLToPath } from 'node:url' - -const here = dirname(fileURLToPath(import.meta.url)) -const RULES_DIR = join(here, '..', '..', 'reviewer', 'rules') -const OUT = join(here, '..', 'src', '_rules.generated.ts') - -const ENTRIES = [ - { constName: 'SEVERITY_RULES', file: 'severity.md' }, - { constName: 'DECISION_RULES', file: 'arbiter-decision.md' }, -] - -function escapeBacktick(text) { - return text.replace(/\\/g, '\\\\').replace(/`/g, '\\`').replace(/\$\{/g, '\\${') -} - -const lines = [ - '// AUTO-GENERATED FILE — do not edit by hand.', - '// Regenerated from reviewer/rules/severity.md + arbiter-decision.md by scripts/generate-rules.mjs', - '// (runs automatically via the `prebuild` npm script).', - '', -] - -for (const { constName, file } of ENTRIES) { - const text = await readFile(join(RULES_DIR, file), 'utf8') - lines.push(`export const ${constName} = \`${escapeBacktick(text)}\``) - lines.push('') -} - -await writeFile(OUT, lines.join('\n')) -console.log(`Wrote ${OUT}`) diff --git a/.secretariat/ai-review/arbiter/src/_rules.generated.ts b/.secretariat/ai-review/arbiter/src/_rules.generated.ts deleted file mode 100644 index b833a9c40..000000000 --- a/.secretariat/ai-review/arbiter/src/_rules.generated.ts +++ /dev/null @@ -1,171 +0,0 @@ -// AUTO-GENERATED FILE — do not edit by hand. -// Regenerated from reviewer/rules/severity.md + arbiter-decision.md by scripts/generate-rules.mjs -// (runs automatically via the `prebuild` npm script). - -export const SEVERITY_RULES = `# Severity model - -AAO-SECRETARIAT classifies findings into four severities. Both the reviewer (which assigns severities) and the arbiter (which interprets them for the gate decision) use these definitions verbatim. - -## Critical -Data loss, security holes, billing bugs, auth bypass, multi-tenant boundary breaks, happy-path crashes on load-bearing flows. Always blocks. - -## High -Reproducible runtime errors, broken queries, AdCP spec drift, customer-contract breaks, V1 edits in repos that have migrated to V2, reproducible bugs on load-bearing paths. Always blocks. - -## Medium -Unhandled edge cases (empty array, null, race windows), missing timeouts on external calls, warn-only error handling on durable / async / billing paths, missing tests on new branches, LLM-context scope gaps. Surfaced inline; may or may not block depending on category and count (see arbiter decision rules). - -## Low -Style, naming, structure, "you could also" suggestions, speculative concerns. Omitted from the output unless the arbiter is producing an approve-with-nits summary. - ---- - -## What counts as each tier (with examples) - -**Critical:** data loss/corruption, security holes, billing/money bugs, auth bypass, multi-tenant isolation breaks, a crash on the happy path. - -**High:** runtime error on a real branch, broken query, AdCP spec drift, breaking a customer contract, V1 contamination, a concrete reproducible bug on a load-bearing path. - -**Medium:** an unhandled edge case that will actually occur (empty array, null deref, the error branch, a real concurrency window); a missing timeout/cancellation on a path that can hang user-visible work, a worker lane, a queue claim, or a billing path; warn-only error handling that hides a durable-state, async, upload, or billing failure; a missing test for a branch this PR added where a regression would be silent and costly; an agent-context scope/lifetime/budget gap; non-deterministic SQL on a load-bearing path. - -**Low:** code style, naming, structure, formatting; "you could also handle X" for an X that won't happen; "consider extracting a helper"; speculative "in the future"; wrong/missing changeset where the change itself is sound; docs MUST-vs-SHOULD wording. -` - -export const DECISION_RULES = `# Arbiter decision rules - -You are the arbiter. Your sole job is to translate the reviewer's findings and the contextual flags into ONE of four outcomes. Apply the decision table TOP-DOWN: the first matching row wins. Call the \`submit_decision\` tool with your choice. - ---- - -## HARD RULE — never \`approve\` when \`author_team_matches\` is non-empty - -> **READ THIS BEFORE EVERYTHING ELSE.** -> -> Look at the \`Author team gates\` block in the PR context that follows. If the line \`Author is a member of (no-auto-approve):\` lists ONE OR MORE teams, the PR author belongs to a team explicitly configured to never be auto-approved. **Your outcome MUST NOT be \`approve\`.** Valid choices in this case are \`request-changes\` (if blocking findings exist), \`comment\` (default), or \`escalate\` (if high-risk warrants). -> -> This is a HARD GATE. A code-level backstop in the action will detect this case and override your \`approve\` → \`comment\` automatically. Getting it right in your tool call is faster and cleaner — but the rule is non-negotiable either way. -> -> Why this matters: repos accept PRs from non-technical contributors (consultants, partners, marketing, etc.) whose changes must never auto-merge without a human even if the diff is mechanically clean. The \`## No-Auto-Approve Teams\` AAO-SECRETARIAT.md section is how each repo declares the people whose work needs that extra eye. Treat it as the most important rule in this file. - ---- - -## HARD RULE — never \`approve\` when \`gated_paths\` is true AND \`review_decision\` is not \`APPROVED\` - -> **READ THIS BEFORE EVERYTHING ELSE, ALONGSIDE THE RULE ABOVE.** -> -> Look at the \`Gated paths (hard approval gate — deterministic) and Required Review Status\` block in the PR -> context. If \`gated_paths: true\`, this PR touches a file the repo has declared -> under a **hard, non-overridable approval gate** — a purely mechanical fact -> based on the file path, not something you evaluate or re-derive. **Your outcome -> MUST NOT be \`approve\` unless \`review_decision\` is exactly \`APPROVED\`.** -> -> - If \`review_decision\` is \`APPROVED\`: the gate is satisfied by a real human/ -> CODEOWNERS approval. Fall through to the rest of the decision table -> normally — a clean diff with no other trigger CAN approve. -> - If \`review_decision\` is \`CHANGES_REQUESTED\`, \`REVIEW_REQUIRED\`, or empty/ -> unknown: the gate is NOT satisfied. Your outcome MUST be \`escalate\` (or -> \`request-changes\` if blocking findings also exist) — never \`approve\`, -> never plain \`comment\`. -> -> This is a HARD GATE, same posture as the no-auto-approve-teams rule above. -> A code-level backstop (\`enforceDecisionGuards\`) will force-downgrade an -> \`approve\` back down automatically if you get this wrong — but get it right -> in your tool call. -> -> **The same posture applies to prose-based hard gates** described in -> \`## Repo Context\` (e.g. spec-ownership governance, major-version-bump -> governance, AAO-SECRETARIAT.md-integrity governance) that this repo's \`## Repo -> Context\` may declare. Those gates are NOT reflected in \`gated_paths\` — -> they are semantic, not path-based, and you must still evaluate their -> prose conditions yourself. But once you have determined such a gate -> applies, treat \`review_decision: APPROVED\` as satisfying it exactly the -> same way: if a prose gate's condition is met AND \`review_decision\` is -> \`APPROVED\`, you may fall through to the normal decision table instead of -> forcing \`escalate\`. If \`review_decision\` is not \`APPROVED\`, the prose -> gate's own escalation instruction stands. - ---- - -## Outcomes - -- **approve** — The PR is ready to merge. Body summarizes what you checked. -- **request-changes** — Blocking findings exist. Body lists each blocker (file:line + 1-line rationale). -- **comment** — Not blocking, but not auto-approvable. Body surfaces medium findings and explains why a human should look. -- **escalate** — Requires explicit human reviewers (destructive change, schema migration, sensitive-category problem, etc.). Body lists the escalation reasons. The action will also request the configured escalation reviewers and apply the \`aao-secretariat/needs-human-review\` label. - -## Reading the \`high_risk\` flag - -\`high_risk\` is true whenever any changed file matches a glob in the repo's \`## High-Risk Paths\`. It is a **heuristic signal**, not an automatic escalation trigger. It tells you to LOOK more carefully at those files. Whether the actual change is risky depends on the **change-kind** in \`high_risk_reasons\`: - -- **\`(added)\`** — A new file. Inherently low risk on its own: nothing existed to break. A PR that ONLY adds new files matching high-risk globs (scaffolding a new system, adding a new action, introducing a new schema) is **not** escalation-worthy on the flag alone. Approve / comment as the reviewer's findings dictate. -- **\`(modified)\`** — An existing file changed. Risk depends on whether the change preserves the file's contract. If the reviewer found no medium-or-higher concerns, the modification is presumed safe. -- **\`(deleted)\`** — A file is being removed. Always merits escalation — deletions in sensitive paths are rare and hard to recover from if wrong. -- **\`(renamed)\`** — Treat as a modification for risk purposes. - -Do not escalate solely because \`high_risk\` is true. Escalate when there is real evidence: a destructive change, a sensitive-category finding, or a medium concern on a modified sensitive file. New files matching high-risk globs are normal scaffolding work. - -## Subsequent review — when a prior decision exists - -When the \`## Prior decision\` block shows a prior outcome other than \`approve\`, the developer has pushed new commits in response to your earlier feedback. Handle this carefully: - -1. **Compare findings.** The prior decision block lists the findings from the previous run (if available). Compare them against the current run's findings. A finding present in the prior list but absent now was addressed by the developer — acknowledge this in your summary. - -2. **Evaluate current findings independently.** Apply the decision table to the current findings as-is. Prior findings that were resolved do not carry forward. Only current findings count toward the rows in the decision table. - -3. **Credit iteration.** If the developer has resolved prior critical/high findings and the remaining current findings are medium-or-below, you are looking at a net improvement. Your summary should reflect this. Do not frame a subsequent review as "still has issues" when the prior blocking issues are gone. - -4. **Do not penalize new medium findings discovered in a subsequent push.** Developers write more code; reviewers find new things. A new medium finding on a second or third pass is not evidence of a developer ignoring feedback — it is the normal result of the reviewer looking at new code. Apply the same threshold as a first pass: 1–2 medium findings with no blocking issues = \`approve\`. - -## Decision table - -| # | Condition (evaluated top-down; first match wins) | Outcome | -|---|---|---| -| 1 | Any finding has \`severity\` ∈ {\`critical\`, \`high\`} | \`request-changes\` | -| 2 | \`gated_paths\` is true AND \`review_decision\` ≠ \`APPROVED\` | \`escalate\` | -| 3 | \`high_risk\` is true AND any \`high_risk_reasons\` entry contains \`(deleted)\` | \`escalate\` | -| 4 | Any finding has \`severity = medium\` AND \`category\` ∈ {\`data-loss\`, \`schema\`, \`infra\`} | \`escalate\` | -| 5 | \`high_risk\` is true AND any \`high_risk_reasons\` entry contains \`(modified)\` AND any finding has \`severity = medium\` | \`escalate\` | -| 6 | Prior decision was \`escalate\` AND at least one new \`critical\`/\`high\`/\`medium\` finding is present in this run | \`escalate\` (sticky — only persists when fresh evidence still exists) | -| 7 | PR author ∈ any \`no_auto_approve_teams\` | \`comment\` | -| 8 | Three or more findings have \`severity = medium\` | \`comment\` | -| 9 | Otherwise | \`approve\` | - -**Row 9 means \`approve\` — no exceptions beyond rows 1–8.** If none of rows 1–8 fired, the outcome is \`approve\`. 1 or 2 medium findings with no escalation trigger and no team gate falls through to row 9 and is an \`approve\`. Do not use \`comment\` as a weaker form of \`request-changes\` or as a hedge when the diff "feels risky." Comment is explicitly reserved for three or more medium findings (row 8) or an author team gate (row 7). If you are tempted to comment on fewer than three medium findings, check whether you are applying row 8 correctly — you are not, and the outcome must be \`approve\`. - -Note on \`gated_paths\` (row 2): \`gated_paths\` is a purely deterministic, -path-based fact computed by the setup action from \`## Gated Paths\` globs — -it is never something you derive from prose, and it never changes based on -the code inside the file. The gate lifts the moment \`review_decision\` -becomes \`APPROVED\` (a real GitHub-computed signal from branch protection / -CODEOWNERS), not because you decided the diff looks safe. Do not escalate -"forever" once \`review_decision\` is \`APPROVED\` — that is the entire point of -checking it. Note also that row 2 only fires when \`review_decision\` is NOT -already \`APPROVED\`; once approved, the same PR falls through to rows 3-9 like -any other PR (including a possible \`approve\` at row 9 on a clean diff). - -Row 2 is not merely documentation — you are expected to apply it directly, -exactly like every other row. A code-level backstop (\`enforceDecisionGuards\`) -additionally guarantees the gate holds even if you get it wrong: it -force-downgrades an \`approve\` to \`escalate\`, and if you already chose -\`escalate\` for a different row while \`gated_paths\` is unsatisfied, it merges -the gated-paths reason into \`escalation_reasons\` so a human reviewing the -output sees both triggers. This is the same dual-layer pattern (prompt-level -rule you should follow + code-level guarantee in case you don't) already -used for the no-auto-approve-teams HARD RULE above. - -Note on sticky escalation (row 6): the previous version of this rule kept a PR escalated forever as long as \`high_risk\` stayed true — which traps PRs in escalation whenever the diff continues to touch high-risk-path files. The new rule requires the current run to surface at least one fresh finding to justify persisting an earlier escalation. If the reviewer finds nothing actionable, an earlier escalate does not stick. - -Note on \`protected_branches\` (deprecated): an earlier version of this table had a row blocking auto-approve when the PR's base was in \`protected_branches\`. That rule made every PR into \`main\` a forced \`comment\`, which is the opposite of what most teams want — a clean review with no blocking findings should approve regardless of the base. The rule has been removed. The \`## Protected Branches\` section in AAO-SECRETARIAT.md is now informational only; parser-side support is kept for backward compatibility but does not affect the decision. Repos that need an extra approval gate on a specific branch should use GitHub's branch protection rules (required reviewers), not AAO-SECRETARIAT. - -## Body composition - -For every outcome, the body is structured as: - -1. One-line verdict ("Approve", "Request changes — N blocking finding(s)", etc.). -2. **Blocking findings** section, listing each \`critical\`/\`high\` finding as \`- <file>:<line> — <title>\`. -3. **Medium findings** section, same format (collapsed under \`<details>\` if more than 5). -4. **Escalation reasons** section (only on \`escalate\`), listing each reason in plain English (e.g. "Deletes \`terraform/prod/main.tf\` — production infra change"). For a \`gated_paths\` escalation (row 2), state the gated file(s) and that human/CODEOWNERS review is required — do not re-explain the gate's rationale at length; that lives in AAO-SECRETARIAT.md, not the PR comment. -5. **Sticky marker** line at the very end (an HTML comment, see arbiter implementation). - -Keep total body length ≤ 4000 characters. Truncate medium-finding lists if needed. -` diff --git a/.secretariat/ai-review/arbiter/src/anthropic.test.ts b/.secretariat/ai-review/arbiter/src/anthropic.test.ts deleted file mode 100644 index 4e6ce0b5e..000000000 --- a/.secretariat/ai-review/arbiter/src/anthropic.test.ts +++ /dev/null @@ -1,54 +0,0 @@ -import { describe, expect, test, vi } from 'vitest' - -const createMock = vi.fn() - -vi.mock('@anthropic-ai/sdk', () => { - return { - default: class { - messages = { create: createMock } - }, - } -}) - -import { decideViaAnthropic } from './anthropic.js' - -describe('decideViaAnthropic', () => { - test('returns the tool-use payload', async () => { - createMock.mockResolvedValueOnce({ - stop_reason: 'tool_use', - content: [ - { type: 'text', text: 'thinking…' }, - { - type: 'tool_use', - name: 'submit_decision', - input: { - outcome: 'request-changes', - summary: 'One blocker.', - blocking_findings: ['src/a.ts:12 — broken query'], - escalation_reasons: [], - }, - }, - ], - }) - - const result = await decideViaAnthropic({ - apiKey: 'sk-test', - model: 'claude-sonnet-4-6', - prompt: 'hello', - }) - expect(result.outcome).toBe('request-changes') - expect(result.summary).toBe('One blocker.') - expect(result.blocking_findings).toEqual(['src/a.ts:12 — broken query']) - }) - - test('throws if the model fails to call the tool', async () => { - createMock.mockResolvedValueOnce({ - stop_reason: 'end_turn', - content: [{ type: 'text', text: 'I refuse.' }], - }) - - await expect( - decideViaAnthropic({ apiKey: 'k', model: 'm', prompt: 'p' }), - ).rejects.toThrowError(/tool/i) - }) -}) diff --git a/.secretariat/ai-review/arbiter/src/anthropic.ts b/.secretariat/ai-review/arbiter/src/anthropic.ts deleted file mode 100644 index 8078fef2d..000000000 --- a/.secretariat/ai-review/arbiter/src/anthropic.ts +++ /dev/null @@ -1,54 +0,0 @@ -import Anthropic from '@anthropic-ai/sdk' - -export type Outcome = 'approve' | 'request-changes' | 'comment' | 'escalate' - -export interface ArbiterDecision { - outcome: Outcome - summary: string - blocking_findings: string[] - escalation_reasons: string[] -} - -const TOOL = { - name: 'submit_decision', - description: 'Submit the arbiter verdict for this PR.', - input_schema: { - type: 'object', - required: ['outcome', 'summary', 'blocking_findings', 'escalation_reasons'], - additionalProperties: false, - properties: { - outcome: { enum: ['approve', 'request-changes', 'comment', 'escalate'] }, - summary: { type: 'string', maxLength: 4000 }, - blocking_findings: { type: 'array', items: { type: 'string' } }, - escalation_reasons: { type: 'array', items: { type: 'string' } }, - }, - }, -} as const - -export async function decideViaAnthropic(params: { - apiKey: string - model: string - prompt: string - maxTokens?: number -}): Promise<ArbiterDecision> { - const client = new Anthropic({ apiKey: params.apiKey }) - const response = await client.messages.create({ - model: params.model, - max_tokens: params.maxTokens ?? 2048, - tools: [TOOL], - tool_choice: { type: 'tool', name: 'submit_decision' }, - messages: [{ role: 'user', content: params.prompt }], - }) - - const toolUse = (response.content ?? []).find( - (block: { type?: string }) => block.type === 'tool_use', - ) as { type: 'tool_use'; name: string; input: unknown } | undefined - - if (!toolUse) { - throw new Error( - `arbiter: model did not call the submit_decision tool (stop_reason=${response.stop_reason})`, - ) - } - - return toolUse.input as ArbiterDecision -} diff --git a/.secretariat/ai-review/arbiter/src/decision.test.ts b/.secretariat/ai-review/arbiter/src/decision.test.ts deleted file mode 100644 index 5405b5ec4..000000000 --- a/.secretariat/ai-review/arbiter/src/decision.test.ts +++ /dev/null @@ -1,220 +0,0 @@ -import { describe, expect, test } from 'vitest' -import { buildArbiterPrompt, type ArbiterContext } from './decision.js' - -function ctx(overrides: Partial<ArbiterContext> = {}): ArbiterContext { - return { - repoSlug: 'example-org/example', - prNumber: 42, - baseRef: 'main', - headSha: 'abc123', - baseSha: 'def456', - findings: { - summary: 'No issues.', - findings: [], - }, - diffStats: { - fileCount: 3, - additions: 50, - deletions: 10, - files: ['a.ts', 'b.ts', 'c.ts'], - }, - highRisk: false, - highRiskReasons: [], - gatedPaths: false, - gatedPathsReasons: [], - reviewDecision: '', - protectedBranches: [], - noAutoApproveTeams: [], - authorTeamMatches: [], - priorDecision: null, - repoContext: null, - severityRules: '<<severity.md contents>>', - decisionRules: '<<arbiter-decision.md contents>>', - ...overrides, - } -} - -describe('buildArbiterPrompt', () => { - test('includes the severity and decision rule files verbatim', () => { - const p = buildArbiterPrompt(ctx()) - expect(p).toContain('<<severity.md contents>>') - expect(p).toContain('<<arbiter-decision.md contents>>') - }) - - test('serializes findings as compact one-line-per-finding', () => { - const p = buildArbiterPrompt( - ctx({ - findings: { - summary: 'one', - findings: [ - { - severity: 'high', - title: 'broken query', - rationale: 'x', - file: 'src/q.ts', - line: 12, - category: 'correctness', - posted_inline: true, - }, - ], - }, - }), - ) - expect(p).toContain('[high] src/q.ts:12 — broken query') - }) - - test('mentions high-risk reasons when flagged', () => { - const p = buildArbiterPrompt( - ctx({ - highRisk: true, - highRiskReasons: ['terraform/prod/main.tf (deleted)'], - }), - ) - expect(p).toContain('terraform/prod/main.tf (deleted)') - expect(p).toMatch(/high[_ -]risk/i) - }) - - test('omits repo context when not provided', () => { - const p = buildArbiterPrompt(ctx({ repoContext: null })) - expect(p).not.toContain('Repo-specific context') - }) - - test('includes repo context section when provided', () => { - const p = buildArbiterPrompt(ctx({ repoContext: 'this repo is special' })) - expect(p).toContain('Repo-specific context') - expect(p).toContain('this repo is special') - }) - - test('mentions prior decision when present', () => { - const p = buildArbiterPrompt( - ctx({ - priorDecision: { - head: 'old', - outcome: 'escalate', - high_risk: true, - reasons: ['old reason'], - }, - }), - ) - expect(p).toContain('Prior decision') - expect(p).toContain('old reason') - }) - - test('renders prior findings list when present', () => { - const p = buildArbiterPrompt( - ctx({ - priorDecision: { - head: 'old', - outcome: 'comment', - high_risk: false, - reasons: [], - findings: [ - { - severity: 'medium', - title: 'missing timeout', - file: 'src/client.ts', - line: 42, - }, - { severity: 'high', title: 'broken query', file: 'src/db.ts' }, - ], - }, - }), - ) - expect(p).toContain('[medium] src/client.ts:42 — missing timeout') - expect(p).toContain('[high] src/db.ts — broken query') - expect(p).toContain('Previous findings (what was flagged in that run)') - }) - - test('renders "none" message when prior findings field is an empty array', () => { - const p = buildArbiterPrompt( - ctx({ - priorDecision: { - head: 'old', - outcome: 'comment', - high_risk: false, - reasons: [], - findings: [], - }, - }), - ) - expect(p).toContain( - 'Previous findings: none (no critical/high/medium findings in that run).', - ) - expect(p).not.toContain('older marker format') - }) - - test('renders "older marker format" message when prior findings field is absent', () => { - const p = buildArbiterPrompt( - ctx({ - priorDecision: { - head: 'old', - outcome: 'comment', - high_risk: false, - reasons: [], - // findings intentionally omitted (older marker) - }, - }), - ) - expect(p).toContain( - 'Previous findings: none recorded (older marker format).', - ) - expect(p).not.toContain('no critical/high/medium findings in that run') - }) - - test('does not annotate base ref even when protected_branches matches (rule removed)', () => { - const p = buildArbiterPrompt( - ctx({ baseRef: 'main', protectedBranches: ['main'] }), - ) - expect(p).toContain('- Base ref: main') - expect(p).not.toContain('(protected)') - }) - - test('mentions gated paths flag and reasons when set', () => { - const p = buildArbiterPrompt( - ctx({ - gatedPaths: true, - gatedPathsReasons: [ - '.github/workflows/deploy.yml (modified) matches `.github/workflows/deploy.yml`', - ], - reviewDecision: 'CHANGES_REQUESTED', - }), - ) - expect(p).toContain('gated_paths: true') - expect(p).toContain('.github/workflows/deploy.yml (modified) matches') - expect(p).toContain('review_decision: CHANGES_REQUESTED') - }) - - test('mentions review_decision even when gated_paths is false', () => { - const p = buildArbiterPrompt( - ctx({ gatedPaths: false, reviewDecision: 'APPROVED' }), - ) - expect(p).toContain('gated_paths: false') - expect(p).toContain('review_decision: APPROVED') - }) - - test('omits gated paths reasons list when gated_paths is false but still renders review_decision', () => { - const p = buildArbiterPrompt( - ctx({ gatedPaths: false, gatedPathsReasons: [], reviewDecision: '' }), - ) - expect(p).toContain('gated_paths: false') - expect(p).toContain('review_decision: (unknown/none)') - }) - - test('mentions author-team match when set', () => { - const p = buildArbiterPrompt( - ctx({ authorTeamMatches: ['example-org/security'] }), - ) - expect(p).toContain('example-org/security') - }) - - test('caps the file list at 50 with "+N more" footer', () => { - const files = Array.from({ length: 80 }, (_, i) => `file-${i}.ts`) - const p = buildArbiterPrompt( - ctx({ diffStats: { fileCount: 80, additions: 0, deletions: 0, files } }), - ) - expect(p).toContain('file-0.ts') - expect(p).toContain('file-49.ts') - expect(p).not.toContain('file-50.ts') - expect(p).toContain('+30 more') - }) -}) diff --git a/.secretariat/ai-review/arbiter/src/decision.ts b/.secretariat/ai-review/arbiter/src/decision.ts deleted file mode 100644 index a15ec233a..000000000 --- a/.secretariat/ai-review/arbiter/src/decision.ts +++ /dev/null @@ -1,147 +0,0 @@ -import type { FindingsPayload } from './findings.js' -import type { PriorDecision } from './prior-decision.js' - -export interface DiffStats { - fileCount: number - additions: number - deletions: number - files: string[] -} - -export interface ArbiterContext { - repoSlug: string - prNumber: number - baseRef: string - headSha: string - baseSha: string - findings: FindingsPayload - diffStats: DiffStats - highRisk: boolean - highRiskReasons: string[] - gatedPaths: boolean - gatedPathsReasons: string[] - reviewDecision: string - protectedBranches: string[] - noAutoApproveTeams: string[] - authorTeamMatches: string[] - priorDecision: PriorDecision | null - repoContext: string | null - severityRules: string - decisionRules: string -} - -const FILE_LIST_CAP = 50 - -function fileList(files: string[]): string { - if (files.length <= FILE_LIST_CAP) - return files.map((f) => `- ${f}`).join('\n') - const head = files - .slice(0, FILE_LIST_CAP) - .map((f) => `- ${f}`) - .join('\n') - return `${head}\n- ...+${files.length - FILE_LIST_CAP} more` -} - -function findingsList(f: FindingsPayload): string { - if (f.findings.length === 0) return '(none)' - return f.findings - .map( - (x) => - `[${x.severity}] ${x.file}${x.line ? `:${x.line}` : ''} — ${x.title}`, - ) - .join('\n') -} - -export function buildArbiterPrompt(ctx: ArbiterContext): string { - const parts: string[] = [] - - parts.push('# Arbiter') - parts.push( - 'You are the AAO-SECRETARIAT arbiter. Read the rules, the context, and the reviewer findings. Then call the `submit_decision` tool exactly once.', - ) - parts.push('\n## Severity model\n') - parts.push(ctx.severityRules) - parts.push('\n## Decision rules\n') - parts.push(ctx.decisionRules) - - parts.push('\n## PR context') - parts.push(`- Repo: ${ctx.repoSlug}`) - parts.push(`- PR: #${ctx.prNumber}`) - parts.push(`- Base ref: ${ctx.baseRef}`) - parts.push(`- Base SHA: ${ctx.baseSha}`) - parts.push(`- Head SHA: ${ctx.headSha}`) - - parts.push('\n## Diff stats') - parts.push(`- Files changed: ${ctx.diffStats.fileCount}`) - parts.push(`- Additions: ${ctx.diffStats.additions}`) - parts.push(`- Deletions: ${ctx.diffStats.deletions}`) - parts.push('- Files:') - parts.push(fileList(ctx.diffStats.files)) - - parts.push('\n## High-risk flag') - parts.push(`- high_risk: ${ctx.highRisk ? 'true' : 'false'}`) - if (ctx.highRiskReasons.length > 0) { - parts.push('- Reasons:') - for (const r of ctx.highRiskReasons) parts.push(` - ${r}`) - } - - parts.push( - '\n## Gated paths (hard approval gate — deterministic) and Required Review Status', - ) - parts.push(`- gated_paths: ${ctx.gatedPaths ? 'true' : 'false'}`) - if (ctx.gatedPathsReasons.length > 0) { - parts.push('- Reasons:') - for (const r of ctx.gatedPathsReasons) parts.push(` - ${r}`) - } - parts.push(`- review_decision: ${ctx.reviewDecision || '(unknown/none)'}`) - - parts.push('\n## Author team gates') - if (ctx.authorTeamMatches.length > 0) { - parts.push('- Author is a member of (no-auto-approve):') - for (const t of ctx.authorTeamMatches) parts.push(` - ${t}`) - } else { - parts.push('- No no-auto-approve team match.') - } - - parts.push('\n## Prior decision') - if (ctx.priorDecision) { - parts.push(`- Outcome: ${ctx.priorDecision.outcome}`) - parts.push(`- For head: ${ctx.priorDecision.head}`) - parts.push(`- High-risk: ${ctx.priorDecision.high_risk}`) - if (ctx.priorDecision.reasons.length > 0) { - parts.push('- Reasons:') - for (const r of ctx.priorDecision.reasons) parts.push(` - ${r}`) - } - if (ctx.priorDecision.findings && ctx.priorDecision.findings.length > 0) { - parts.push('- Previous findings (what was flagged in that run):') - for (const f of ctx.priorDecision.findings) { - const loc = f.line !== undefined ? `${f.file}:${f.line}` : f.file - parts.push(` - [${f.severity}] ${loc} — ${f.title}`) - } - } else if (ctx.priorDecision.findings !== undefined) { - parts.push( - '- Previous findings: none (no critical/high/medium findings in that run).', - ) - } else { - parts.push('- Previous findings: none recorded (older marker format).') - } - } else { - parts.push('- None (first review of this PR).') - } - - parts.push('\n## Reviewer findings summary') - parts.push(ctx.findings.summary) - parts.push('\n### Findings list') - parts.push(findingsList(ctx.findings)) - - if (ctx.repoContext) { - parts.push('\n## Repo-specific context\n') - parts.push(ctx.repoContext) - } - - parts.push( - '\nApply the decision rules top-down. Choose ONE outcome. Call `submit_decision` with the JSON payload and STOP.', - ) - - return parts.join('\n') -} diff --git a/.secretariat/ai-review/arbiter/src/diff-stats.test.ts b/.secretariat/ai-review/arbiter/src/diff-stats.test.ts deleted file mode 100644 index ae6a2540d..000000000 --- a/.secretariat/ai-review/arbiter/src/diff-stats.test.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { describe, expect, test } from 'vitest' -import { parseDiffStats } from './diff-stats.js' - -describe('parseDiffStats', () => { - test('extracts file count and add/delete totals from numstat output', () => { - const numstat = '10\t2\tsrc/a.ts\n5\t0\tsrc/b.ts\n0\t3\tREADME.md\n' - expect(parseDiffStats(numstat)).toEqual({ - fileCount: 3, - additions: 15, - deletions: 5, - files: ['src/a.ts', 'src/b.ts', 'README.md'], - }) - }) - - test('handles binary files (- and -)', () => { - const numstat = '-\t-\tassets/logo.png\n2\t1\tsrc/a.ts\n' - const result = parseDiffStats(numstat) - expect(result.fileCount).toBe(2) - expect(result.additions).toBe(2) - expect(result.deletions).toBe(1) - expect(result.files).toEqual(['assets/logo.png', 'src/a.ts']) - }) - - test('empty input → zeros', () => { - expect(parseDiffStats('')).toEqual({ - fileCount: 0, - additions: 0, - deletions: 0, - files: [], - }) - }) -}) diff --git a/.secretariat/ai-review/arbiter/src/diff-stats.ts b/.secretariat/ai-review/arbiter/src/diff-stats.ts deleted file mode 100644 index 00a46c0b4..000000000 --- a/.secretariat/ai-review/arbiter/src/diff-stats.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { exec } from '@actions/exec' -import { readFile } from 'node:fs/promises' - -import type { DiffStats } from './decision.js' - -export type { DiffStats } from './decision.js' - -export function parseDiffStats(numstat: string): DiffStats { - let additions = 0 - let deletions = 0 - const files: string[] = [] - for (const line of numstat.split('\n')) { - if (!line.trim()) continue - const parts = line.split('\t') - if (parts.length < 3) continue - const adds = parts[0] === '-' ? 0 : Number(parts[0]) - const dels = parts[1] === '-' ? 0 : Number(parts[1]) - additions += Number.isFinite(adds) ? adds : 0 - deletions += Number.isFinite(dels) ? dels : 0 - files.push(parts.slice(2).join('\t')) - } - return { fileCount: files.length, additions, deletions, files } -} - -export async function computeDiffStatsFromFile(diffPath: string): Promise<DiffStats> { - // Re-derive numstat from the SHAs is cleaner, but we have only the patch file. - // Easier: run `git apply --numstat` on the patch. - const patch = await readFile(diffPath, 'utf8') - if (!patch.trim()) return { fileCount: 0, additions: 0, deletions: 0, files: [] } - let out = '' - await exec('git', ['apply', '--numstat', '--no-index', diffPath], { - listeners: { stdout: (d: Buffer) => { out += d.toString() } }, - silent: true, - ignoreReturnCode: true, - }) - return parseDiffStats(out) -} diff --git a/.secretariat/ai-review/arbiter/src/enforce.test.ts b/.secretariat/ai-review/arbiter/src/enforce.test.ts deleted file mode 100644 index 7a70a53d2..000000000 --- a/.secretariat/ai-review/arbiter/src/enforce.test.ts +++ /dev/null @@ -1,244 +0,0 @@ -import { describe, expect, test } from 'vitest' -import { enforceDecisionGuards } from './enforce.js' - -const baseDecision = { - outcome: 'approve' as const, - summary: 'Clean review.', - blocking_findings: [], - escalation_reasons: [], -} - -describe('enforceDecisionGuards', () => { - test('no overrides when authorTeamMatches is empty', () => { - const result = enforceDecisionGuards(baseDecision, { - authorTeamMatches: [], - }) - expect(result.decision).toEqual(baseDecision) - expect(result.overrides).toEqual([]) - }) - - test('overrides approve → comment when authorTeamMatches has entries', () => { - const result = enforceDecisionGuards(baseDecision, { - authorTeamMatches: ['example-org/security'], - }) - expect(result.decision.outcome).toBe('comment') - expect(result.overrides).toHaveLength(1) - expect(result.overrides[0]).toContain('example-org/security') - }) - - test('does not override request-changes', () => { - const decision = { ...baseDecision, outcome: 'request-changes' as const } - const result = enforceDecisionGuards(decision, { - authorTeamMatches: ['some/team'], - }) - expect(result.decision.outcome).toBe('request-changes') - expect(result.overrides).toEqual([]) - }) - - test('does not override escalate', () => { - const decision = { ...baseDecision, outcome: 'escalate' as const } - const result = enforceDecisionGuards(decision, { - authorTeamMatches: ['some/team'], - }) - expect(result.decision.outcome).toBe('escalate') - expect(result.overrides).toEqual([]) - }) - - test('no-op when LLM already chose comment', () => { - const decision = { ...baseDecision, outcome: 'comment' as const } - const result = enforceDecisionGuards(decision, { - authorTeamMatches: ['some/team'], - }) - expect(result.decision.outcome).toBe('comment') - expect(result.overrides).toEqual([]) - }) - - test('prepends override notice to summary', () => { - const result = enforceDecisionGuards(baseDecision, { - authorTeamMatches: ['org/team'], - }) - expect(result.decision.summary).toContain('Override') - expect(result.decision.summary).toContain('org/team') - expect(result.decision.summary).toContain(baseDecision.summary) - }) - - test('lists multiple matching teams in the override reason', () => { - const result = enforceDecisionGuards(baseDecision, { - authorTeamMatches: ['org/security', 'org/finance'], - }) - expect(result.overrides[0]).toContain('org/security') - expect(result.overrides[0]).toContain('org/finance') - }) - - test('preserves blocking_findings and escalation_reasons untouched', () => { - const decision = { - ...baseDecision, - blocking_findings: ['x'], - escalation_reasons: ['y'], - } - const result = enforceDecisionGuards(decision, { - authorTeamMatches: ['some/team'], - }) - expect(result.decision.blocking_findings).toEqual(['x']) - expect(result.decision.escalation_reasons).toEqual(['y']) - }) - - test('no override when gatedPaths is false', () => { - const result = enforceDecisionGuards(baseDecision, { - authorTeamMatches: [], - gatedPaths: false, - reviewDecision: '', - }) - expect(result.decision).toEqual(baseDecision) - expect(result.overrides).toEqual([]) - }) - - test('no override when gatedPaths is true and reviewDecision is APPROVED', () => { - const result = enforceDecisionGuards(baseDecision, { - authorTeamMatches: [], - gatedPaths: true, - gatedPathsReasons: [ - '.github/workflows/deploy.yml (modified) matches `.github/workflows/deploy.yml`', - ], - reviewDecision: 'APPROVED', - }) - expect(result.decision).toEqual(baseDecision) - expect(result.overrides).toEqual([]) - }) - - test.each(['CHANGES_REQUESTED', 'REVIEW_REQUIRED', ''])( - 'overrides approve → escalate when gatedPaths is true and reviewDecision is %s', - (reviewDecision) => { - const result = enforceDecisionGuards(baseDecision, { - authorTeamMatches: [], - gatedPaths: true, - gatedPathsReasons: [ - '.github/workflows/deploy.yml (modified) matches `.github/workflows/deploy.yml`', - ], - reviewDecision, - }) - expect(result.decision.outcome).toBe('escalate') - expect(result.overrides).toHaveLength(1) - expect(result.overrides[0]).toContain('.github/workflows/deploy.yml') - }, - ) - - test('does not change outcome for request-changes / escalate / comment when gatedPaths is unsatisfied', () => { - for (const outcome of ['request-changes', 'escalate', 'comment'] as const) { - const decision = { ...baseDecision, outcome } - const result = enforceDecisionGuards(decision, { - authorTeamMatches: [], - gatedPaths: true, - reviewDecision: 'REVIEW_REQUIRED', - }) - expect(result.decision.outcome).toBe(outcome) - } - }) - - test('no-op for request-changes / comment when gatedPaths is unsatisfied (reason only merges into escalate)', () => { - for (const outcome of ['request-changes', 'comment'] as const) { - const decision = { ...baseDecision, outcome } - const result = enforceDecisionGuards(decision, { - authorTeamMatches: [], - gatedPaths: true, - reviewDecision: 'REVIEW_REQUIRED', - }) - expect(result.overrides).toEqual([]) - expect(result.decision.escalation_reasons).toEqual([]) - } - }) - - test('merges gated-paths reason into escalation_reasons when the LLM already escalated for an unrelated reason', () => { - // The LLM chose `escalate` on its own (e.g. row 4/5: high-risk modified + - // medium finding) while the gated-paths gate is independently - // unsatisfied. A human reading escalation_reasons must see BOTH triggers - // — not just whichever one the LLM happened to cite. - const decision = { - ...baseDecision, - outcome: 'escalate' as const, - escalation_reasons: ['unrelated high-risk finding'], - } - const result = enforceDecisionGuards(decision, { - authorTeamMatches: [], - gatedPaths: true, - gatedPathsReasons: ['.github/workflows/deploy.yml (modified) matches `.github/workflows/deploy.yml`'], - reviewDecision: 'REVIEW_REQUIRED', - }) - expect(result.decision.outcome).toBe('escalate') - expect(result.decision.escalation_reasons).toEqual([ - 'unrelated high-risk finding', - result.overrides[0], - ]) - expect(result.overrides).toHaveLength(1) - expect(result.overrides[0]).toContain('.github/workflows/deploy.yml') - // Summary is untouched — only escalation_reasons gains the entry; no - // "[Override: forced from approve...]" banner applies since the outcome - // didn't change. - expect(result.decision.summary).toBe(baseDecision.summary) - }) - - test('does not duplicate the gated-paths reason if the LLM already cited it verbatim', () => { - const gatedPathsReasons = ['.github/workflows/deploy.yml (modified) matches `.github/workflows/deploy.yml`'] - const reason = `This PR touches a path under a hard, non-overridable approval gate (${gatedPathsReasons.join('; ')}) and the current GitHub review decision is 'REVIEW_REQUIRED', not APPROVED. This is a hard gate enforced in code — AAO-SECRETARIAT cannot auto-approve until a human/CODEOWNERS approval is recorded, regardless of how clean the diff is.` - const decision = { - ...baseDecision, - outcome: 'escalate' as const, - escalation_reasons: [reason], - } - const result = enforceDecisionGuards(decision, { - authorTeamMatches: [], - gatedPaths: true, - gatedPathsReasons, - reviewDecision: 'REVIEW_REQUIRED', - }) - expect(result.decision.escalation_reasons).toEqual([reason]) - expect(result.overrides).toEqual([]) - }) - - test('gatedPaths override prepends override notice to summary and appends to escalation_reasons', () => { - const decision = { - ...baseDecision, - escalation_reasons: ['pre-existing reason'], - } - const result = enforceDecisionGuards(decision, { - authorTeamMatches: [], - gatedPaths: true, - gatedPathsReasons: ['deploy.yml (modified) matches `deploy.yml`'], - reviewDecision: 'CHANGES_REQUESTED', - }) - expect(result.decision.summary).toContain('Override') - expect(result.decision.summary).toContain(baseDecision.summary) - expect(result.decision.escalation_reasons).toEqual([ - 'pre-existing reason', - result.overrides[0], - ]) - }) - - test('gatedPaths override preserves blocking_findings untouched', () => { - const decision = { ...baseDecision, blocking_findings: ['x'] } - const result = enforceDecisionGuards(decision, { - authorTeamMatches: [], - gatedPaths: true, - reviewDecision: '', - }) - expect(result.decision.blocking_findings).toEqual(['x']) - }) - - test('combined: both authorTeamMatches and unsatisfied gatedPaths → escalate wins, not comment', () => { - // Gated-paths is checked first and moves the outcome off `approve`, so - // the author-team block's `outcome === 'approve'` guard no longer fires. - // This is the intentional ordering fix — escalate is the stronger, - // more restrictive outcome and must not be silently downgraded to - // comment just because an author-team gate also applies. - const result = enforceDecisionGuards(baseDecision, { - authorTeamMatches: ['example-org/security'], - gatedPaths: true, - gatedPathsReasons: ['deploy.yml (modified) matches `deploy.yml`'], - reviewDecision: 'REVIEW_REQUIRED', - }) - expect(result.decision.outcome).toBe('escalate') - expect(result.overrides).toHaveLength(1) - expect(result.overrides[0]).toContain('deploy.yml') - expect(result.overrides[0]).not.toContain('example-org/security') - }) -}) diff --git a/.secretariat/ai-review/arbiter/src/enforce.ts b/.secretariat/ai-review/arbiter/src/enforce.ts deleted file mode 100644 index 87f299594..000000000 --- a/.secretariat/ai-review/arbiter/src/enforce.ts +++ /dev/null @@ -1,77 +0,0 @@ -import type { ArbiterDecision } from './anthropic.js' - -export interface EnforcementContext { - authorTeamMatches: string[] - gatedPaths?: boolean - gatedPathsReasons?: string[] - reviewDecision?: string -} - -export interface EnforcementResult { - decision: ArbiterDecision - overrides: string[] -} - -const NO_AUTO_APPROVE_OVERRIDE_PREFIX = - '> **[Override: forced from `approve` to `comment` by post-LLM enforcement]**' -const GATED_PATH_OVERRIDE_PREFIX = - '> **[Override: forced from `approve` to `escalate` by post-LLM enforcement]**' - -export function enforceDecisionGuards( - decision: ArbiterDecision, - ctx: EnforcementContext, -): EnforcementResult { - const overrides: string[] = [] - let result = decision - - // Gated-paths mirrors the decision table's row 2 (see arbiter-decision.md): - // the LLM is expected to apply that row directly and choose `escalate` - // itself, exactly like the author-team HARD RULE below. This block is the - // same dual-layer code-level backstop that HARD RULE already documents for - // author-team gates — not the sole place the gate is evaluated. - // - // It runs BEFORE the author-team check: it is the stronger, more - // restrictive outcome (escalate implies request-reviewers + label, which - // comment does not trigger). If both gates fail on the same PR, escalate - // must win — checking author-team first would downgrade to comment and - // the author-team block's own `outcome === 'approve'` guard would then - // no-op, silently dropping the gated-paths signal. - const gateUnsatisfied = Boolean(ctx.gatedPaths) && ctx.reviewDecision !== 'APPROVED' - if (gateUnsatisfied) { - const reason = `This PR touches a path under a hard, non-overridable approval gate (${ctx.gatedPathsReasons?.join('; ') || 'gated path matched'}) and the current GitHub review decision is '${ctx.reviewDecision || 'unknown'}', not APPROVED. This is a hard gate enforced in code — AAO-SECRETARIAT cannot auto-approve until a human/CODEOWNERS approval is recorded, regardless of how clean the diff is.` - - if (result.outcome === 'approve') { - overrides.push(reason) - result = { - ...result, - outcome: 'escalate', - escalation_reasons: [...result.escalation_reasons, reason], - summary: `${GATED_PATH_OVERRIDE_PREFIX}\n>\n> ${reason}\n\n${result.summary}`, - } - } else if (result.outcome === 'escalate' && !result.escalation_reasons.includes(reason)) { - // The LLM already escalated — for this row or an unrelated one (rows - // 1, 3-6 in the decision table all also produce `escalate`). Ensure - // the gated-paths reason is visible regardless: a human reading only - // the LLM's own reasons should never conclude the PR is clear to merge - // once whatever else triggered the escalation is resolved, when the - // approval gate is independently still unsatisfied. - overrides.push(reason) - result = { - ...result, - escalation_reasons: [...result.escalation_reasons, reason], - } - } - } - - if (result.outcome === 'approve' && ctx.authorTeamMatches.length > 0) { - const reason = `PR author belongs to no-auto-approve team(s): ${ctx.authorTeamMatches.join(', ')}. This is a hard gate enforced in code — AAO-SECRETARIAT cannot auto-approve PRs from these teams regardless of how clean the diff is.` - overrides.push(reason) - result = { - ...result, - outcome: 'comment', - summary: `${NO_AUTO_APPROVE_OVERRIDE_PREFIX}\n>\n> ${reason}\n\n${result.summary}`, - } - } - - return { decision: result, overrides } -} diff --git a/.secretariat/ai-review/arbiter/src/findings.test.ts b/.secretariat/ai-review/arbiter/src/findings.test.ts deleted file mode 100644 index 2ac672fef..000000000 --- a/.secretariat/ai-review/arbiter/src/findings.test.ts +++ /dev/null @@ -1,63 +0,0 @@ -import { describe, expect, test } from 'vitest' -import { parseFindings } from './findings.js' - -const VALID = JSON.stringify({ - summary: 'one finding', - findings: [ - { - severity: 'medium', - title: 'Missing timeout on fetch', - rationale: 'No `signal` option set on the fetch call; risk of hung connections.', - file: 'src/api.ts', - line: 42, - category: 'operability', - posted_inline: true, - }, - ], -}) - -describe('parseFindings', () => { - test('parses a valid payload', () => { - const result = parseFindings(VALID) - expect(result.summary).toBe('one finding') - expect(result.findings).toHaveLength(1) - expect(result.findings[0].severity).toBe('medium') - }) - - test('throws on malformed JSON', () => { - expect(() => parseFindings('not json')).toThrowError(/parse/i) - }) - - test('throws when required fields are missing', () => { - expect(() => parseFindings('{}')).toThrowError(/findings/) - }) - - test('throws on invalid severity', () => { - const bad = JSON.stringify({ - summary: 'x', - findings: [ - { - severity: 'fatal', - title: 't', - rationale: 'r', - file: 'f', - category: 'other', - posted_inline: false, - }, - ], - }) - expect(() => parseFindings(bad)).toThrowError(/severity/) - }) - - test('coerces null line to undefined', () => { - const payload = JSON.parse(VALID) - payload.findings[0].line = null - const result = parseFindings(JSON.stringify(payload)) - expect(result.findings[0].line).toBeUndefined() - }) - - test('empty findings array is allowed', () => { - const empty = JSON.stringify({ summary: 'clean', findings: [] }) - expect(parseFindings(empty).findings).toEqual([]) - }) -}) diff --git a/.secretariat/ai-review/arbiter/src/findings.ts b/.secretariat/ai-review/arbiter/src/findings.ts deleted file mode 100644 index f71d85b1e..000000000 --- a/.secretariat/ai-review/arbiter/src/findings.ts +++ /dev/null @@ -1,88 +0,0 @@ -export type Severity = 'critical' | 'high' | 'medium' | 'low' -export type Category = - | 'correctness' - | 'security' - | 'performance' - | 'data-loss' - | 'schema' - | 'infra' - | 'tests' - | 'operability' - | 'style' - | 'other' - -export interface Finding { - severity: Severity - title: string - rationale: string - file: string - line?: number - category: Category - posted_inline: boolean -} - -export interface FindingsPayload { - summary: string - findings: Finding[] -} - -const SEVERITIES: ReadonlySet<string> = new Set(['critical', 'high', 'medium', 'low']) -const CATEGORIES: ReadonlySet<string> = new Set([ - 'correctness', - 'security', - 'performance', - 'data-loss', - 'schema', - 'infra', - 'tests', - 'operability', - 'style', - 'other', -]) - -export function parseFindings(raw: string): FindingsPayload { - let json: unknown - try { - json = JSON.parse(raw) - } catch (err) { - throw new Error( - `findings: failed to parse JSON — ${err instanceof Error ? err.message : String(err)}`, - ) - } - if (typeof json !== 'object' || json === null) { - throw new Error('findings: payload is not an object') - } - const obj = json as Record<string, unknown> - if (typeof obj.summary !== 'string') throw new Error('findings: missing summary') - if (!Array.isArray(obj.findings)) throw new Error('findings: findings is not an array') - - const findings: Finding[] = obj.findings.map((f, i) => { - if (typeof f !== 'object' || f === null) throw new Error(`findings[${i}]: not an object`) - const item = f as Record<string, unknown> - if (typeof item.severity !== 'string' || !SEVERITIES.has(item.severity)) { - throw new Error(`findings[${i}]: invalid severity ${String(item.severity)}`) - } - if (typeof item.category !== 'string' || !CATEGORIES.has(item.category)) { - throw new Error(`findings[${i}]: invalid category ${String(item.category)}`) - } - if (typeof item.title !== 'string') throw new Error(`findings[${i}]: title missing`) - if (typeof item.rationale !== 'string') throw new Error(`findings[${i}]: rationale missing`) - if (typeof item.file !== 'string') throw new Error(`findings[${i}]: file missing`) - if (typeof item.posted_inline !== 'boolean') - throw new Error(`findings[${i}]: posted_inline missing`) - const line = - typeof item.line === 'number' && Number.isFinite(item.line) - ? Math.trunc(item.line) - : undefined - return { - severity: item.severity as Severity, - category: item.category as Category, - title: item.title, - rationale: item.rationale, - file: item.file, - line, - posted_inline: item.posted_inline, - } - }) - return { summary: obj.summary, findings } -} diff --git a/.secretariat/ai-review/arbiter/src/index.ts b/.secretariat/ai-review/arbiter/src/index.ts deleted file mode 100644 index a95d48738..000000000 --- a/.secretariat/ai-review/arbiter/src/index.ts +++ /dev/null @@ -1,157 +0,0 @@ -import * as core from '@actions/core' -import * as github from '@actions/github' - -import { decideViaAnthropic } from './anthropic.js' -import { buildArbiterPrompt } from './decision.js' -import { SEVERITY_RULES, DECISION_RULES } from './_rules.generated.js' -import { computeDiffStatsFromFile } from './diff-stats.js' -import { enforceDecisionGuards } from './enforce.js' -import { parseFindings } from './findings.js' -import { - addLabel, - ensureLabel, - mapOutcomeToReviewEvent, - postReview, - requestReviewers, -} from './post.js' -import { parsePriorDecisionInput } from './prior-decision.js' -import { renderReviewBody } from './render.js' -import { findNoAutoApproveTeams } from './teams.js' - -function csv(input: string): string[] { - return input - .split(',') - .map((s) => s.trim()) - .filter(Boolean) -} - -async function main(): Promise<void> { - const anthropicApiKey = core.getInput('anthropic-api-key', { required: true }) - const githubToken = core.getInput('github-token', { required: true }) - const findingsRaw = core.getInput('findings-json', { required: true }) - const repoContextRaw = core.getInput('aao-secretariat-md-body') - const highRisk = core.getInput('high-risk') === 'true' - const highRiskReasons = (() => { - try { - return JSON.parse(core.getInput('high-risk-reasons') || '[]') as string[] - } catch { - return [] - } - })() - const gatedPaths = core.getInput('gated-paths') === 'true' - const gatedPathsReasons = (() => { - try { - return JSON.parse( - core.getInput('gated-paths-reasons') || '[]', - ) as string[] - } catch { - return [] - } - })() - const reviewDecision = core.getInput('review-decision') - const escalationReviewers = csv(core.getInput('escalation-reviewers')) - const noAutoApproveTeams = csv(core.getInput('no-auto-approve-teams')) - const protectedBranches = csv(core.getInput('protected-branches')) - const priorDecisionInput = core.getInput('prior-decision') - const prNumber = Number(core.getInput('pr-number', { required: true })) - const headSha = core.getInput('head-sha', { required: true }) - const baseSha = core.getInput('base-sha', { required: true }) - const diffFullPath = core.getInput('diff-full-path', { required: true }) - const model = core.getInput('model') || 'claude-sonnet-4-6' - const decisionLabel = - core.getInput('decision-label') || 'aao-secretariat/needs-human-review' - - const findings = parseFindings(findingsRaw) - const priorDecision = parsePriorDecisionInput(priorDecisionInput) - const diffStats = await computeDiffStatsFromFile(diffFullPath) - - const ctx = github.context - const { owner, repo } = ctx.repo - const octokit = github.getOctokit(githubToken) - - const authorLogin = (ctx.payload.pull_request?.user?.login as string) ?? '' - const baseRef = (ctx.payload.pull_request?.base?.ref as string) ?? '' - - const authorTeamMatches = await findNoAutoApproveTeams({ - octokit, - org: owner, - username: authorLogin, - teamSlugs: noAutoApproveTeams, - }) - - const prompt = buildArbiterPrompt({ - repoSlug: `${owner}/${repo}`, - prNumber, - baseRef, - headSha, - baseSha, - findings, - diffStats, - highRisk, - highRiskReasons, - gatedPaths, - gatedPathsReasons, - reviewDecision, - protectedBranches, - noAutoApproveTeams, - authorTeamMatches, - priorDecision, - repoContext: repoContextRaw.trim() ? repoContextRaw : null, - severityRules: SEVERITY_RULES, - decisionRules: DECISION_RULES, - }) - - const llmDecision = await decideViaAnthropic({ - apiKey: anthropicApiKey, - model, - prompt, - }) - - const { decision, overrides } = enforceDecisionGuards(llmDecision, { - authorTeamMatches, - gatedPaths, - gatedPathsReasons, - reviewDecision, - }) - for (const message of overrides) { - core.warning(`Decision override applied: ${message}`) - } - - const body = renderReviewBody({ - decision, - findings, - headSha, - highRisk, - highRiskReasons, - }) - - await postReview({ - octokit, - owner, - repo, - prNumber, - headSha, - event: mapOutcomeToReviewEvent(decision.outcome), - body, - }) - - if (decision.outcome === 'escalate') { - await ensureLabel({ octokit, owner, repo, name: decisionLabel }) - await addLabel({ octokit, owner, repo, prNumber, label: decisionLabel }) - if (escalationReviewers.length > 0) { - await requestReviewers({ - octokit, - owner, - repo, - prNumber, - reviewers: escalationReviewers, - }) - } - } - - core.setOutput('outcome', decision.outcome) -} - -main().catch((err: unknown) => { - core.setFailed(err instanceof Error ? err.message : String(err)) -}) diff --git a/.secretariat/ai-review/arbiter/src/post.test.ts b/.secretariat/ai-review/arbiter/src/post.test.ts deleted file mode 100644 index f7ee70904..000000000 --- a/.secretariat/ai-review/arbiter/src/post.test.ts +++ /dev/null @@ -1,55 +0,0 @@ -import { describe, expect, test, vi } from 'vitest' -import { mapOutcomeToReviewEvent, ensureLabel, postReview } from './post.js' - -describe('mapOutcomeToReviewEvent', () => { - test('approve → APPROVE', () => { - expect(mapOutcomeToReviewEvent('approve')).toBe('APPROVE') - }) - test('request-changes → REQUEST_CHANGES', () => { - expect(mapOutcomeToReviewEvent('request-changes')).toBe('REQUEST_CHANGES') - }) - test('comment → COMMENT', () => { - expect(mapOutcomeToReviewEvent('comment')).toBe('COMMENT') - }) - test('escalate → COMMENT (escalation handled separately)', () => { - expect(mapOutcomeToReviewEvent('escalate')).toBe('COMMENT') - }) -}) - -describe('ensureLabel', () => { - test('creates label when not present (404 then create)', async () => { - const get = vi.fn().mockRejectedValueOnce(Object.assign(new Error('404'), { status: 404 })) - const create = vi.fn().mockResolvedValueOnce({ data: {} }) - const octokit = { rest: { issues: { getLabel: get, createLabel: create } } } as never - await ensureLabel({ octokit, owner: 'o', repo: 'r', name: 'aao-secretariat/needs-human-review' }) - expect(create).toHaveBeenCalled() - }) - test('no-op when label exists', async () => { - const get = vi.fn().mockResolvedValueOnce({ data: { name: 'aao-secretariat/x' } }) - const create = vi.fn() - const octokit = { rest: { issues: { getLabel: get, createLabel: create } } } as never - await ensureLabel({ octokit, owner: 'o', repo: 'r', name: 'aao-secretariat/x' }) - expect(create).not.toHaveBeenCalled() - }) -}) - -describe('postReview', () => { - test('falls back to COMMENT on 422 (cannot approve own PR)', async () => { - const createReview = vi - .fn() - .mockRejectedValueOnce(Object.assign(new Error('422'), { status: 422 })) - .mockResolvedValueOnce({ data: {} }) - const octokit = { rest: { pulls: { createReview } } } as never - await postReview({ - octokit, - owner: 'o', - repo: 'r', - prNumber: 1, - headSha: 'h', - event: 'APPROVE', - body: 'x', - }) - expect(createReview).toHaveBeenCalledTimes(2) - expect(createReview.mock.calls[1][0].event).toBe('COMMENT') - }) -}) diff --git a/.secretariat/ai-review/arbiter/src/post.ts b/.secretariat/ai-review/arbiter/src/post.ts deleted file mode 100644 index 4a5522863..000000000 --- a/.secretariat/ai-review/arbiter/src/post.ts +++ /dev/null @@ -1,130 +0,0 @@ -import * as core from '@actions/core' -import type * as github from '@actions/github' -import type { Outcome } from './anthropic.js' - -type Octokit = ReturnType<typeof github.getOctokit> - -export type ReviewEvent = 'APPROVE' | 'REQUEST_CHANGES' | 'COMMENT' - -export function mapOutcomeToReviewEvent(outcome: Outcome): ReviewEvent { - switch (outcome) { - case 'approve': return 'APPROVE' - case 'request-changes': return 'REQUEST_CHANGES' - case 'comment': return 'COMMENT' - case 'escalate': return 'COMMENT' - } -} - -export async function ensureLabel(params: { - octokit: Octokit - owner: string - repo: string - name: string -}): Promise<void> { - const { octokit, owner, repo, name } = params - try { - await octokit.rest.issues.getLabel({ owner, repo, name }) - } catch (err) { - const status = - err instanceof Error && 'status' in err - ? (err as { status: number }).status - : undefined - if (status === 404) { - await octokit.rest.issues.createLabel({ - owner, - repo, - name, - color: 'fbca04', - description: 'AAO-SECRETARIAT has escalated this PR for human review.', - }) - } else { - throw err - } - } -} - -export async function addLabel(params: { - octokit: Octokit - owner: string - repo: string - prNumber: number - label: string -}): Promise<void> { - await params.octokit.rest.issues.addLabels({ - owner: params.owner, - repo: params.repo, - issue_number: params.prNumber, - labels: [params.label], - }) -} - -export async function postReview(params: { - octokit: Octokit - owner: string - repo: string - prNumber: number - headSha: string - event: ReviewEvent - body: string -}): Promise<void> { - const { octokit, owner, repo, prNumber, headSha, event, body } = params - try { - await octokit.rest.pulls.createReview({ - owner, - repo, - pull_number: prNumber, - commit_id: headSha, - event, - body, - }) - } catch (err) { - const status = - err instanceof Error && 'status' in err - ? (err as { status: number }).status - : undefined - if (event === 'APPROVE' && status === 422) { - core.warning('Approve rejected (likely own PR); falling back to COMMENT') - await octokit.rest.pulls.createReview({ - owner, - repo, - pull_number: prNumber, - commit_id: headSha, - event: 'COMMENT', - body, - }) - } else { - throw err - } - } -} - -export async function requestReviewers(params: { - octokit: Octokit - owner: string - repo: string - prNumber: number - reviewers: string[] -}): Promise<void> { - const { octokit, owner, repo, prNumber, reviewers } = params - const users = reviewers.filter((r) => !r.includes('/')) - const teamSlugs = reviewers - .filter((r) => r.includes('/')) - .map((r) => r.split('/').pop()!) - if (users.length === 0 && teamSlugs.length === 0) return - try { - await octokit.request( - 'POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers', - { - owner, - repo, - pull_number: prNumber, - ...(users.length > 0 ? { reviewers: users } : {}), - ...(teamSlugs.length > 0 ? { team_reviewers: teamSlugs } : {}), - }, - ) - } catch (err) { - core.warning( - `Failed to request reviewers (${reviewers.join(', ')}): ${err instanceof Error ? err.message : String(err)}`, - ) - } -} diff --git a/.secretariat/ai-review/arbiter/src/prior-decision.ts b/.secretariat/ai-review/arbiter/src/prior-decision.ts deleted file mode 100644 index be8de72e1..000000000 --- a/.secretariat/ai-review/arbiter/src/prior-decision.ts +++ /dev/null @@ -1,46 +0,0 @@ -export type Outcome = 'approve' | 'request-changes' | 'comment' | 'escalate' - -export interface PriorFinding { - severity: 'critical' | 'high' | 'medium' - title: string - file: string - line?: number -} - -export interface PriorDecision { - head: string - outcome: Outcome - high_risk: boolean - reasons: string[] - findings?: PriorFinding[] -} - -export function parsePriorDecisionInput(input: string): PriorDecision | null { - if (!input.trim()) return null - try { - const parsed = JSON.parse(input) - if ( - typeof parsed === 'object' && - parsed !== null && - typeof parsed.head === 'string' && - ['approve', 'request-changes', 'comment', 'escalate'].includes(parsed.outcome) && - typeof parsed.high_risk === 'boolean' && - Array.isArray(parsed.reasons) - ) { - const findings: PriorFinding[] | undefined = Array.isArray(parsed.findings) - ? (parsed.findings as unknown[]).filter( - (f): f is PriorFinding => - typeof f === 'object' && - f !== null && - ['critical', 'high', 'medium'].includes((f as Record<string, unknown>).severity as string) && - typeof (f as Record<string, unknown>).title === 'string' && - typeof (f as Record<string, unknown>).file === 'string', - ) - : undefined - return { ...parsed, findings } as PriorDecision - } - return null - } catch { - return null - } -} diff --git a/.secretariat/ai-review/arbiter/src/render.test.ts b/.secretariat/ai-review/arbiter/src/render.test.ts deleted file mode 100644 index 28ef27cae..000000000 --- a/.secretariat/ai-review/arbiter/src/render.test.ts +++ /dev/null @@ -1,111 +0,0 @@ -import { describe, expect, test } from 'vitest' -import { renderReviewBody } from './render.js' - -describe('renderReviewBody', () => { - test('approve: clean body with summary', () => { - const body = renderReviewBody({ - decision: { - outcome: 'approve', - summary: 'No issues found.', - blocking_findings: [], - escalation_reasons: [], - }, - findings: { summary: 'ok', findings: [] }, - headSha: 'abc', - highRisk: false, - highRiskReasons: [], - }) - expect(body).toContain('## AAO-SECRETARIAT verdict: Approve') - expect(body).toContain('No issues found.') - expect(body).toContain('<!-- aao-secretariat-decision:') - }) - - test('request-changes lists blockers', () => { - const body = renderReviewBody({ - decision: { - outcome: 'request-changes', - summary: 'Blocking issues present.', - blocking_findings: ['src/a.ts:12 — broken query'], - escalation_reasons: [], - }, - findings: { - summary: 'one', - findings: [ - { - severity: 'high', - title: 'broken query', - rationale: 'x', - file: 'src/a.ts', - line: 12, - category: 'correctness', - posted_inline: true, - }, - ], - }, - headSha: 'abc', - highRisk: false, - highRiskReasons: [], - }) - expect(body).toContain('Request changes') - expect(body).toContain('src/a.ts:12 — broken query') - }) - - test('escalate body lists reasons', () => { - const body = renderReviewBody({ - decision: { - outcome: 'escalate', - summary: 'Needs human review.', - blocking_findings: [], - escalation_reasons: ['terraform/prod deletion'], - }, - findings: { summary: 'x', findings: [] }, - headSha: 'abc', - highRisk: true, - highRiskReasons: ['terraform/prod/main.tf (deleted)'], - }) - expect(body).toContain('## AAO-SECRETARIAT verdict: Escalate to human review') - expect(body).toContain('terraform/prod deletion') - }) - - test('body length capped near 4000 chars', () => { - const big = 'x'.repeat(20_000) - const body = renderReviewBody({ - decision: { - outcome: 'comment', - summary: big, - blocking_findings: [], - escalation_reasons: [], - }, - findings: { summary: 'x', findings: [] }, - headSha: 'abc', - highRisk: false, - highRiskReasons: [], - }) - expect(body.length).toBeLessThanOrEqual(4500) - }) - - test('embeds sticky decision marker with parsable JSON', () => { - const body = renderReviewBody({ - decision: { - outcome: 'escalate', - summary: 's', - blocking_findings: [], - escalation_reasons: ['why'], - }, - findings: { summary: '', findings: [] }, - headSha: 'sha-xyz', - highRisk: true, - highRiskReasons: ['x'], - }) - const match = /<!-- aao-secretariat-decision:\s*([\s\S]*?)\s*-->/.exec(body) - expect(match).not.toBeNull() - const decoded = JSON.parse(match![1]) - expect(decoded).toEqual({ - head: 'sha-xyz', - outcome: 'escalate', - high_risk: true, - reasons: ['why'], - findings: [], - }) - }) -}) diff --git a/.secretariat/ai-review/arbiter/src/render.ts b/.secretariat/ai-review/arbiter/src/render.ts deleted file mode 100644 index 19e6a2d09..000000000 --- a/.secretariat/ai-review/arbiter/src/render.ts +++ /dev/null @@ -1,84 +0,0 @@ -import type { ArbiterDecision } from './anthropic.js' -import type { FindingsPayload } from './findings.js' - -const MAX_BODY = 4000 - -const HEADERS: Record<ArbiterDecision['outcome'], string> = { - approve: '## AAO-SECRETARIAT verdict: Approve', - 'request-changes': '## AAO-SECRETARIAT verdict: Request changes', - comment: '## AAO-SECRETARIAT verdict: Comment (human reviewer recommended)', - escalate: '## AAO-SECRETARIAT verdict: Escalate to human review', -} - -export function renderReviewBody(params: { - decision: ArbiterDecision - findings: FindingsPayload - headSha: string - highRisk: boolean - highRiskReasons: string[] -}): string { - const { decision, findings, headSha, highRisk, highRiskReasons } = params - const parts: string[] = [] - parts.push(HEADERS[decision.outcome]) - parts.push('') - parts.push(decision.summary) - - if (decision.blocking_findings.length > 0) { - parts.push('') - parts.push('### Blocking findings') - for (const f of decision.blocking_findings) parts.push(`- ${f}`) - } - - const mediums = findings.findings.filter((f) => f.severity === 'medium') - if (mediums.length > 0) { - parts.push('') - parts.push('### Medium findings') - if (mediums.length > 5) { - parts.push('<details>') - parts.push(`<summary>${mediums.length} medium findings</summary>`) - parts.push('') - } - for (const m of mediums) { - const loc = m.line ? `${m.file}:${m.line}` : m.file - parts.push(`- ${loc} — ${m.title}`) - } - if (mediums.length > 5) parts.push('</details>') - } - - if (decision.outcome === 'escalate') { - parts.push('') - parts.push('### Why human review') - const reasons = decision.escalation_reasons.length - ? decision.escalation_reasons - : highRiskReasons - for (const r of reasons) parts.push(`- ${r}`) - } - - // Truncate if needed (preserve trailer) - let body = parts.join('\n') - const markerFindings = findings.findings - .filter((f) => f.severity === 'critical' || f.severity === 'high' || f.severity === 'medium') - .map((f) => ({ - severity: f.severity, - title: f.title, - file: f.file, - ...(f.line !== undefined ? { line: f.line } : {}), - })) - const marker = `<!-- aao-secretariat-decision:\n${JSON.stringify({ - head: headSha, - outcome: decision.outcome, - high_risk: highRisk, - reasons: - decision.outcome === 'escalate' - ? decision.escalation_reasons.length - ? decision.escalation_reasons - : highRiskReasons - : [], - findings: markerFindings, - })}\n-->` - - if (body.length > MAX_BODY) { - body = body.slice(0, MAX_BODY - 20) + '\n\n…(truncated)…' - } - return `${body}\n\n${marker}` -} diff --git a/.secretariat/ai-review/arbiter/src/teams.test.ts b/.secretariat/ai-review/arbiter/src/teams.test.ts deleted file mode 100644 index f3c8f0801..000000000 --- a/.secretariat/ai-review/arbiter/src/teams.test.ts +++ /dev/null @@ -1,48 +0,0 @@ -import { describe, expect, test, vi } from 'vitest' -import { findNoAutoApproveTeams } from './teams.js' - -describe('findNoAutoApproveTeams', () => { - test('returns teams where active membership confirmed', async () => { - const get = vi - .fn() - .mockResolvedValueOnce({ data: { state: 'active' } }) - .mockRejectedValueOnce(Object.assign(new Error('404'), { status: 404 })) - const octokit = { - rest: { teams: { getMembershipForUserInOrg: get } }, - } as never - const result = await findNoAutoApproveTeams({ - octokit, - org: 'org', - username: 'alice', - teamSlugs: ['security', 'finance'], - }) - expect(result).toEqual(['security']) - }) - - test('on unknown error → fail-safe (treats as match)', async () => { - const get = vi - .fn() - .mockRejectedValueOnce(Object.assign(new Error('500'), { status: 500 })) - const octokit = { - rest: { teams: { getMembershipForUserInOrg: get } }, - } as never - const result = await findNoAutoApproveTeams({ - octokit, - org: 'org', - username: 'alice', - teamSlugs: ['security'], - }) - expect(result).toEqual(['security']) - }) - - test('empty teamSlugs → []', async () => { - const octokit = { rest: { teams: { getMembershipForUserInOrg: vi.fn() } } } as never - const result = await findNoAutoApproveTeams({ - octokit, - org: 'org', - username: 'alice', - teamSlugs: [], - }) - expect(result).toEqual([]) - }) -}) diff --git a/.secretariat/ai-review/arbiter/src/teams.ts b/.secretariat/ai-review/arbiter/src/teams.ts deleted file mode 100644 index 8f6faa935..000000000 --- a/.secretariat/ai-review/arbiter/src/teams.ts +++ /dev/null @@ -1,42 +0,0 @@ -import * as core from '@actions/core' -import type * as github from '@actions/github' - -type Octokit = ReturnType<typeof github.getOctokit> - -export async function findNoAutoApproveTeams(params: { - octokit: Octokit - org: string - username: string - teamSlugs: string[] -}): Promise<string[]> { - const { octokit, org, username, teamSlugs } = params - if (teamSlugs.length === 0 || !username) return [] - - const checks = await Promise.all( - teamSlugs.map(async (teamSlug) => { - const slug = teamSlug.includes('/') ? teamSlug.split('/').pop()! : teamSlug - try { - const { data } = await octokit.rest.teams.getMembershipForUserInOrg({ - org, - team_slug: slug, - username, - }) - return data.state === 'active' ? teamSlug : null - } catch (err) { - const status = - err instanceof Error && 'status' in err - ? (err as { status: number }).status - : undefined - if (status === 404) return null - core.warning( - `Could not verify membership of '${username}' in team '${teamSlug}': ${ - err instanceof Error ? err.message : String(err) - } — holding for human review`, - ) - return teamSlug - } - }), - ) - - return checks.filter((t): t is string => t !== null) -} diff --git a/.secretariat/ai-review/arbiter/tsconfig.json b/.secretariat/ai-review/arbiter/tsconfig.json deleted file mode 100644 index b263a11f5..000000000 --- a/.secretariat/ai-review/arbiter/tsconfig.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "compilerOptions": { - "target": "ES2022", - "module": "NodeNext", - "moduleResolution": "NodeNext", - "strict": true, - "esModuleInterop": true, - "outDir": "./dist", - "rootDir": "./src" - }, - "include": ["src/**/*"], - "exclude": ["dist", "node_modules", "**/*.test.ts"] -} diff --git a/.secretariat/ai-review/review/.gitkeep b/.secretariat/ai-review/review/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/.secretariat/ai-review/review/action.yml b/.secretariat/ai-review/review/action.yml deleted file mode 100644 index 56425d3a8..000000000 --- a/.secretariat/ai-review/review/action.yml +++ /dev/null @@ -1,151 +0,0 @@ -name: 'AAO-SECRETARIAT v2 — Review (Orchestrator)' -description: 'Runs the AAO-SECRETARIAT v2 review flow: setup → reviewer → arbiter.' -author: 'Ad Context Protocol' - -inputs: - anthropic-api-key: - description: 'Anthropic API key' - required: true - client-id: - description: 'GitHub App client ID for the AAO-SECRETARIAT app' - required: false - app-id: - description: 'GitHub App ID for the AAO-SECRETARIAT app' - required: false - deprecationMessage: 'Use client-id instead' - app-private-key: - description: 'GitHub App private key for the AAO-SECRETARIAT app' - required: true - model: - description: 'Claude model (default claude-sonnet-4-6)' - required: false - default: 'claude-sonnet-4-6' - reviewer-max-turns: - description: 'Max agentic turns for the reviewer' - required: false - default: '60' - protected-branches: - description: 'Override AAO-SECRETARIAT.md ## Protected Branches' - required: false - default: '' - no-auto-approve-teams: - description: 'Override AAO-SECRETARIAT.md ## No-Auto-Approve Teams' - required: false - default: '' - escalation-reviewers: - description: 'Override AAO-SECRETARIAT.md ## Escalation Reviewers (comma-separated users and/or org/team-slug)' - required: false - default: '' - high-risk-paths: - description: 'Override AAO-SECRETARIAT.md ## High-Risk Paths' - required: false - default: '' - gated-paths: - description: 'Override AAO-SECRETARIAT.md ## Gated Paths' - required: false - default: '' - trivial-paths: - description: 'Override AAO-SECRETARIAT.md ## Trivial Paths' - required: false - default: '' - release-stack-branches: - description: 'Override AAO-SECRETARIAT.md ## Release Stack Branches' - required: false - default: 'release/next' - skip-bot-authors: - description: 'Override AAO-SECRETARIAT.md ## Skip Bot Authors' - required: false - default: 'dependabot[bot],renovate[bot],github-actions[bot]' - force-review-label: - description: 'Label that forces review on draft PRs' - required: false - default: 'aao-secretariat/force-review' - -runs: - using: 'composite' - steps: - - name: Validate inputs - shell: bash - run: | - if [[ -z "${{ inputs.client-id }}" && -z "${{ inputs.app-id }}" ]]; then - echo "::error::Either 'client-id' or 'app-id' must be provided" - exit 1 - fi - - - name: Mint AAO-SECRETARIAT App token - id: app-token - uses: actions/create-github-app-token@v3 - with: - client-id: ${{ inputs.client-id || inputs.app-id }} - private-key: ${{ inputs.app-private-key }} - - - name: Setup - id: setup - uses: ./.secretariat/ai-review/setup - with: - github-token: ${{ steps.app-token.outputs.token }} - aao-secretariat-bot-login: ${{ steps.app-token.outputs.app-slug }}[bot] - protected-branches: ${{ inputs.protected-branches }} - no-auto-approve-teams: ${{ inputs.no-auto-approve-teams }} - escalation-reviewers: ${{ inputs.escalation-reviewers }} - high-risk-paths: ${{ inputs.high-risk-paths }} - gated-paths: ${{ inputs.gated-paths }} - trivial-paths: ${{ inputs.trivial-paths }} - release-stack-branches: ${{ inputs.release-stack-branches }} - skip-bot-authors: ${{ inputs.skip-bot-authors }} - force-review-label: ${{ inputs.force-review-label }} - - - name: Skip notice - if: steps.setup.outputs.should-run != 'true' - shell: bash - run: | - echo "AAO-SECRETARIAT v2 skipped: ${{ steps.setup.outputs.skip-reason }}" - echo "should-run=false skip-reason=${{ steps.setup.outputs.skip-reason }}" >> "$GITHUB_STEP_SUMMARY" - - - name: Reviewer - if: steps.setup.outputs.should-run == 'true' - id: reviewer - uses: ./.secretariat/ai-review/reviewer - with: - anthropic-api-key: ${{ inputs.anthropic-api-key }} - github-token: ${{ steps.app-token.outputs.token }} - pr-number: ${{ steps.setup.outputs.pr-number }} - head-sha: ${{ steps.setup.outputs.head-sha }} - base-sha: ${{ steps.setup.outputs.base-sha }} - diff-delta-path: ${{ steps.setup.outputs.diff-delta-path }} - diff-full-path: ${{ steps.setup.outputs.diff-full-path }} - aao-secretariat-md-body: ${{ steps.setup.outputs.aao-secretariat-md-body }} - prior-decision: ${{ steps.setup.outputs.prior-decision }} - gated-paths: ${{ steps.setup.outputs.gated-paths }} - gated-paths-reasons: ${{ steps.setup.outputs.gated-paths-reasons }} - review-decision: ${{ steps.setup.outputs.review-decision }} - model: ${{ inputs.model }} - max-turns: ${{ inputs.reviewer-max-turns }} - - - name: Arbiter - if: steps.setup.outputs.should-run == 'true' - id: arbiter - uses: ./.secretariat/ai-review/arbiter - with: - anthropic-api-key: ${{ inputs.anthropic-api-key }} - github-token: ${{ steps.app-token.outputs.token }} - findings-json: ${{ steps.reviewer.outputs.findings-json }} - aao-secretariat-md-body: ${{ steps.setup.outputs.aao-secretariat-md-body }} - high-risk: ${{ steps.setup.outputs.high-risk }} - high-risk-reasons: ${{ steps.setup.outputs.high-risk-reasons }} - gated-paths: ${{ steps.setup.outputs.gated-paths }} - gated-paths-reasons: ${{ steps.setup.outputs.gated-paths-reasons }} - review-decision: ${{ steps.setup.outputs.review-decision }} - escalation-reviewers: ${{ steps.setup.outputs.escalation-reviewers }} - no-auto-approve-teams: ${{ steps.setup.outputs.no-auto-approve-teams }} - protected-branches: ${{ steps.setup.outputs.protected-branches }} - prior-decision: ${{ steps.setup.outputs.prior-decision }} - pr-number: ${{ steps.setup.outputs.pr-number }} - head-sha: ${{ steps.setup.outputs.head-sha }} - base-sha: ${{ steps.setup.outputs.base-sha }} - diff-full-path: ${{ steps.setup.outputs.diff-full-path }} - model: ${{ inputs.model }} - -branding: - icon: 'eye' - color: 'blue' diff --git a/.secretariat/ai-review/reviewer/action.yml b/.secretariat/ai-review/reviewer/action.yml deleted file mode 100644 index abdb0905e..000000000 --- a/.secretariat/ai-review/reviewer/action.yml +++ /dev/null @@ -1,215 +0,0 @@ -name: 'AAO-SECRETARIAT v2 — Reviewer' -description: 'Calls anthropics/claude-code-action with the AAO-SECRETARIAT rule set, emits findings as JSON.' -author: 'Ad Context Protocol' - -inputs: - anthropic-api-key: - description: 'Anthropic API key' - required: true - github-token: - description: 'GitHub App installation token (AAO-SECRETARIAT app)' - required: true - pr-number: - description: 'PR number (from setup output)' - required: true - head-sha: - description: 'Head SHA (from setup output)' - required: true - base-sha: - description: 'Base SHA (from setup output)' - required: true - diff-delta-path: - description: 'Path to delta diff (from setup output)' - required: true - diff-full-path: - description: 'Path to full diff (from setup output)' - required: true - aao-secretariat-md-body: - description: 'Repo Context section of AAO-SECRETARIAT.md (from setup output)' - required: false - default: '' - prior-decision: - description: 'Prior decision JSON from setup (empty string on first pass)' - required: false - default: '' - gated-paths: - description: '"true" if setup flagged gated paths (from setup output)' - required: false - default: 'false' - gated-paths-reasons: - description: 'JSON array of gated-path reasons (from setup output)' - required: false - default: '[]' - review-decision: - description: 'Raw GitHub reviewDecision (APPROVED | CHANGES_REQUESTED | REVIEW_REQUIRED | "") (from setup output)' - required: false - default: '' - model: - description: 'Claude model' - required: false - default: 'claude-sonnet-4-6' - max-turns: - description: 'Maximum agentic turns for the reviewer' - required: false - default: '60' - -outputs: - findings-json: - description: 'Structured findings JSON conforming to reviewer/findings-schema.json' - value: ${{ steps.findings.outputs.findings-json }} - execution-file: - description: 'Path to the claude-code-action execution file (for debugging)' - value: ${{ steps.claude.outputs.execution_file }} - -runs: - using: 'composite' - steps: - - name: Assemble prompt - id: prompt - shell: bash - env: - AAO_SECRETARIAT_MD_BODY: ${{ inputs.aao-secretariat-md-body }} - PRIOR_DECISION: ${{ inputs.prior-decision }} - GATED_PATHS: ${{ inputs.gated-paths }} - GATED_PATHS_REASONS: ${{ inputs.gated-paths-reasons }} - REVIEW_DECISION: ${{ inputs.review-decision }} - PR_NUMBER: ${{ inputs.pr-number }} - REPO: ${{ github.repository }} - BASE_SHA: ${{ inputs.base-sha }} - HEAD_SHA: ${{ inputs.head-sha }} - DELTA_PATH: ${{ inputs.diff-delta-path }} - FULL_PATH: ${{ inputs.diff-full-path }} - run: | - set -euo pipefail - RULES="${{ github.action_path }}/rules" - FINDINGS_PATH="${RUNNER_TEMP}/aao-secretariat-findings.json" - PROMPT_PATH="${RUNNER_TEMP}/aao-secretariat-prompt.md" - - # The WG constitution lives in the spec repo, not here. Fetch it from - # adcp@main at review time — the PR under review cannot mutate the rules - # it is judged under. Fail-open: if the fetch fails, the review runs - # without it. - CONSTITUTION="$(curl -sf --max-filesize 1000000 https://raw.githubusercontent.com/adcontextprotocol/adcp/main/.agents/wg/constitution.md || true)" - if [[ -z "${CONSTITUTION}" ]]; then - echo "::warning::WG constitution could not be fetched (network error, >1MB, or empty) — reviewing without it." - fi - - { - cat "${RULES}/voice.md" - printf '\n\n' - cat "${RULES}/severity.md" - printf '\n\n' - cat "${RULES}/inline-comments.md" - printf '\n\n' - cat "${RULES}/coverage.md" - printf '\n\n' - cat "${RULES}/governance-gates.md" - if [[ -n "${CONSTITUTION}" ]]; then - printf '\n\n---\n\n## WG constitution (from adcontextprotocol/adcp@main)\n\n' - printf '%s\n' "${CONSTITUTION}" - fi - if [[ "${GATED_PATHS}" == "true" ]]; then - printf '\n\n# Gated paths matched (informational — do not comment on this fact)\n\n' - printf 'The following changed files matched a `## Gated Paths` glob. Per governance-gates.md, do NOT post an inline comment or findings-JSON entry about this fact — the arbiter handles it.\n\n' - echo "${GATED_PATHS_REASONS}" | jq -r '.[] | "- \(.)"' - fi - printf '\n\nRequired Review Status (informational only): %s\n' "${REVIEW_DECISION:-unknown}" - if [[ -n "${AAO_SECRETARIAT_MD_BODY}" ]]; then - printf '\n\n# Repo-specific context\n\n' - printf '%s\n' "${AAO_SECRETARIAT_MD_BODY}" - fi - if [[ -n "${PRIOR_DECISION}" ]]; then - PRIOR_OUTCOME=$(echo "${PRIOR_DECISION}" | jq -r '.outcome') - PRIOR_HEAD=$(echo "${PRIOR_DECISION}" | jq -r '.head') - FINDING_COUNT=$(echo "${PRIOR_DECISION}" | jq -r 'if .findings then (.findings | length) else 0 end') - printf '\n\n# Subsequent review pass\n\n' - printf 'This is not the first AAO-SECRETARIAT review of this PR. Prior outcome: **%s** (SHA: %s).\n\n' "${PRIOR_OUTCOME}" "${PRIOR_HEAD}" - if [[ "${FINDING_COUNT}" -gt 0 ]]; then - printf 'Prior findings (%s):\n' "${FINDING_COUNT}" - echo "${PRIOR_DECISION}" | jq -r '.findings[]? | "- [\(.severity)] \(.file)\(if .line then ":\(.line | tostring)" else "" end) — \(.title)"' - else - printf 'Prior findings: none (clean pass).\n' - fi - printf '\n## Scope rules for this pass\n\n' - printf '1. **New findings must come from delta files only.** The delta diff shows the files changed since the prior review. Surface new findings ONLY in those files. Do not use the full diff to hunt for issues in files absent from the delta — the full diff is for understanding context of delta changes, not for expanding your review surface.\n\n' - printf '2. **Prior findings:** for each finding listed above, check whether its file is in the delta AND whether the issue persists. If the file is not in the delta, skip it — do not re-raise it. If the file IS in the delta and the issue is still present, you may re-surface it.\n\n' - printf '3. **Largest-file rule applies to delta files only on this pass,** not to the full diff.\n' - fi - printf '\n\n# Your task — review PR #%s in %s\n\n' "${PR_NUMBER}" "${REPO}" - printf 'Base SHA: %s\nHead SHA: %s\n\n' "${BASE_SHA}" "${HEAD_SHA}" - printf 'The delta diff (what changed since the prior review) is at:\n %s\n\n' "${DELTA_PATH}" - printf 'The full PR diff (use only when you need broader context) is at:\n %s\n\n' "${FULL_PATH}" - printf 'Procedure:\n' - printf '1. Read the delta diff first. Understand what changed.\n' - printf '2. Pull the full diff only when delta context is insufficient.\n' - printf '3. Use `gh pr view` and `gh pr diff` as needed. The checked-out workspace is pinned to the BASE SHA (%s): `Read`/`Glob`/`Grep` there show the OLD version of changed files, so treat them as base-only context. The delta and full diff files (paths above) carry the actual changes since base — rely on them to see what changed, and pair them with the base-version `Read` for surrounding context.\n' "${BASE_SHA}" - printf '4. Post one inline comment per finding via `mcp__github_inline_comment__create_inline_comment` (with `confirmed: true`) following the inline-comment rules above.\n' - printf '5. **At end-of-run, write the findings JSON to `%s` using the `Write` tool.** The JSON MUST conform to this schema:\n\n' "${FINDINGS_PATH}" - printf '```json\n' - cat "${{ github.action_path }}/findings-schema.json" - printf '\n```\n\n' - printf 'Do NOT post a top-level PR review. Do NOT call `gh pr review`. The arbiter step handles the overall verdict.\n' - } > "${PROMPT_PATH}" - - # Randomize the heredoc sentinel so prompt content (rule files, repo - # context, the fetched WG constitution) cannot close the block early and - # inject GITHUB_OUTPUT directives. - PROMPT_EOF="AAO_SECRETARIAT_PROMPT_EOF_$(openssl rand -hex 8)" - { - echo "prompt<<${PROMPT_EOF}" - cat "${PROMPT_PATH}" - echo "${PROMPT_EOF}" - echo "findings-path=${FINDINGS_PATH}" - } >> "${GITHUB_OUTPUT}" - - - name: Claude Code review - id: claude - uses: anthropics/claude-code-action@v1 - env: - CLAUDE_CODE_SUBPROCESS_ENV_SCRUB: '0' - with: - anthropic_api_key: ${{ inputs.anthropic-api-key }} - github_token: ${{ inputs.github-token }} - allowed_non_write_users: fgranata - prompt: ${{ steps.prompt.outputs.prompt }} - # Bash grants are strictly read-only. The reviewer reads via `gh pr view`/`gh pr diff` - # (read-only subcommands) and the diff files, and posts inline comments through the MCP - # tool — never Bash gh writes. With ENV_SCRUB=0 the App token is present in the Bash env, - # so NO write-capable `gh api` grant (issues, contents) is allowed: `gh api` cannot be - # method-restricted in the allowlist, and a POST/PUT there would be a prompt-injection - # token-exfil / repo-write path. (Comments must stay out of claude_args below — that block - # is passed verbatim to the CLI as arguments.) - claude_args: | - --model ${{ inputs.model }} - --max-turns ${{ inputs.max-turns }} - --allowedTools "mcp__github_inline_comment__create_inline_comment,Bash(gh pr view:*),Bash(gh pr diff:*),Read,Write,Glob,Grep" - - - name: Read findings JSON - id: findings - shell: bash - run: | - set -euo pipefail - FINDINGS_PATH="${{ steps.prompt.outputs.findings-path }}" - - if [[ ! -f "${FINDINGS_PATH}" ]]; then - echo "::error::Reviewer did not write a findings file at ${FINDINGS_PATH}. The arbiter cannot run without structured findings. Failing the job so a human investigates rather than auto-approving on empty input." - exit 1 - fi - - if ! jq empty "${FINDINGS_PATH}" >/dev/null 2>&1; then - echo "::error::Findings file at ${FINDINGS_PATH} is not valid JSON." - echo "First 500 bytes:" - head -c 500 "${FINDINGS_PATH}" || true - exit 1 - fi - - FINDINGS_EOF="AAO_SECRETARIAT_FINDINGS_EOF_$(openssl rand -hex 8)" - { - echo "findings-json<<${FINDINGS_EOF}" - cat "${FINDINGS_PATH}" - echo "${FINDINGS_EOF}" - } >> "${GITHUB_OUTPUT}" - -branding: - icon: 'search' - color: 'blue' diff --git a/.secretariat/ai-review/reviewer/findings-schema.json b/.secretariat/ai-review/reviewer/findings-schema.json deleted file mode 100644 index 11e56b45e..000000000 --- a/.secretariat/ai-review/reviewer/findings-schema.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "AaoSecretariatReviewerFindings", - "type": "object", - "required": ["summary", "findings"], - "additionalProperties": false, - "properties": { - "summary": { - "type": "string", - "description": "1-3 sentence overview of what the reviewer observed across the changeset.", - "maxLength": 1500 - }, - "findings": { - "type": "array", - "items": { - "type": "object", - "required": ["severity", "title", "rationale", "file", "category", "posted_inline"], - "additionalProperties": false, - "properties": { - "severity": { "enum": ["critical", "high", "medium", "low"] }, - "title": { "type": "string", "maxLength": 120 }, - "rationale": { "type": "string", "maxLength": 1500 }, - "file": { "type": "string" }, - "line": { "type": ["integer", "null"] }, - "category": { - "enum": [ - "correctness", "security", "performance", "data-loss", - "schema", "infra", "tests", "operability", "style", "other" - ] - }, - "posted_inline": { "type": "boolean" } - } - } - } - } -} diff --git a/.secretariat/ai-review/reviewer/rules/.gitkeep b/.secretariat/ai-review/reviewer/rules/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/.secretariat/ai-review/reviewer/rules/arbiter-decision.md b/.secretariat/ai-review/reviewer/rules/arbiter-decision.md deleted file mode 100644 index c80e024e0..000000000 --- a/.secretariat/ai-review/reviewer/rules/arbiter-decision.md +++ /dev/null @@ -1,137 +0,0 @@ -# Arbiter decision rules - -You are the arbiter. Your sole job is to translate the reviewer's findings and the contextual flags into ONE of four outcomes. Apply the decision table TOP-DOWN: the first matching row wins. Call the `submit_decision` tool with your choice. - ---- - -## HARD RULE — never `approve` when `author_team_matches` is non-empty - -> **READ THIS BEFORE EVERYTHING ELSE.** -> -> Look at the `Author team gates` block in the PR context that follows. If the line `Author is a member of (no-auto-approve):` lists ONE OR MORE teams, the PR author belongs to a team explicitly configured to never be auto-approved. **Your outcome MUST NOT be `approve`.** Valid choices in this case are `request-changes` (if blocking findings exist), `comment` (default), or `escalate` (if high-risk warrants). -> -> This is a HARD GATE. A code-level backstop in the action will detect this case and override your `approve` → `comment` automatically. Getting it right in your tool call is faster and cleaner — but the rule is non-negotiable either way. -> -> Why this matters: repos accept PRs from non-technical contributors (consultants, partners, marketing, etc.) whose changes must never auto-merge without a human even if the diff is mechanically clean. The `## No-Auto-Approve Teams` AAO-SECRETARIAT.md section is how each repo declares the people whose work needs that extra eye. Treat it as the most important rule in this file. - ---- - -## HARD RULE — never `approve` when `gated_paths` is true AND `review_decision` is not `APPROVED` - -> **READ THIS BEFORE EVERYTHING ELSE, ALONGSIDE THE RULE ABOVE.** -> -> Look at the `Gated paths (hard approval gate — deterministic) and Required Review Status` block in the PR -> context. If `gated_paths: true`, this PR touches a file the repo has declared -> under a **hard, non-overridable approval gate** — a purely mechanical fact -> based on the file path, not something you evaluate or re-derive. **Your outcome -> MUST NOT be `approve` unless `review_decision` is exactly `APPROVED`.** -> -> - If `review_decision` is `APPROVED`: the gate is satisfied by a real human/ -> CODEOWNERS approval. Fall through to the rest of the decision table -> normally — a clean diff with no other trigger CAN approve. -> - If `review_decision` is `CHANGES_REQUESTED`, `REVIEW_REQUIRED`, or empty/ -> unknown: the gate is NOT satisfied. Your outcome MUST be `escalate` (or -> `request-changes` if blocking findings also exist) — never `approve`, -> never plain `comment`. -> -> This is a HARD GATE, same posture as the no-auto-approve-teams rule above. -> A code-level backstop (`enforceDecisionGuards`) will force-downgrade an -> `approve` back down automatically if you get this wrong — but get it right -> in your tool call. -> -> **The same posture applies to prose-based hard gates** described in -> `## Repo Context` (e.g. spec-ownership governance, major-version-bump -> governance, AAO-SECRETARIAT.md-integrity governance) that this repo's `## Repo -> Context` may declare. Those gates are NOT reflected in `gated_paths` — -> they are semantic, not path-based, and you must still evaluate their -> prose conditions yourself. But once you have determined such a gate -> applies, treat `review_decision: APPROVED` as satisfying it exactly the -> same way: if a prose gate's condition is met AND `review_decision` is -> `APPROVED`, you may fall through to the normal decision table instead of -> forcing `escalate`. If `review_decision` is not `APPROVED`, the prose -> gate's own escalation instruction stands. - ---- - -## Outcomes - -- **approve** — The PR is ready to merge. Body summarizes what you checked. -- **request-changes** — Blocking findings exist. Body lists each blocker (file:line + 1-line rationale). -- **comment** — Not blocking, but not auto-approvable. Body surfaces medium findings and explains why a human should look. -- **escalate** — Requires explicit human reviewers (destructive change, schema migration, sensitive-category problem, etc.). Body lists the escalation reasons. The action will also request the configured escalation reviewers and apply the `aao-secretariat/needs-human-review` label. - -## Reading the `high_risk` flag - -`high_risk` is true whenever any changed file matches a glob in the repo's `## High-Risk Paths`. It is a **heuristic signal**, not an automatic escalation trigger. It tells you to LOOK more carefully at those files. Whether the actual change is risky depends on the **change-kind** in `high_risk_reasons`: - -- **`(added)`** — A new file. Inherently low risk on its own: nothing existed to break. A PR that ONLY adds new files matching high-risk globs (scaffolding a new system, adding a new action, introducing a new schema) is **not** escalation-worthy on the flag alone. Approve / comment as the reviewer's findings dictate. -- **`(modified)`** — An existing file changed. Risk depends on whether the change preserves the file's contract. If the reviewer found no medium-or-higher concerns, the modification is presumed safe. -- **`(deleted)`** — A file is being removed. Always merits escalation — deletions in sensitive paths are rare and hard to recover from if wrong. -- **`(renamed)`** — Treat as a modification for risk purposes. - -Do not escalate solely because `high_risk` is true. Escalate when there is real evidence: a destructive change, a sensitive-category finding, or a medium concern on a modified sensitive file. New files matching high-risk globs are normal scaffolding work. - -## Subsequent review — when a prior decision exists - -When the `## Prior decision` block shows a prior outcome other than `approve`, the developer has pushed new commits in response to your earlier feedback. Handle this carefully: - -1. **Compare findings.** The prior decision block lists the findings from the previous run (if available). Compare them against the current run's findings. A finding present in the prior list but absent now was addressed by the developer — acknowledge this in your summary. - -2. **Evaluate current findings independently.** Apply the decision table to the current findings as-is. Prior findings that were resolved do not carry forward. Only current findings count toward the rows in the decision table. - -3. **Credit iteration.** If the developer has resolved prior critical/high findings and the remaining current findings are medium-or-below, you are looking at a net improvement. Your summary should reflect this. Do not frame a subsequent review as "still has issues" when the prior blocking issues are gone. - -4. **Do not penalize new medium findings discovered in a subsequent push.** Developers write more code; reviewers find new things. A new medium finding on a second or third pass is not evidence of a developer ignoring feedback — it is the normal result of the reviewer looking at new code. Apply the same threshold as a first pass: 1–2 medium findings with no blocking issues = `approve`. - -## Decision table - -| # | Condition (evaluated top-down; first match wins) | Outcome | -|---|---|---| -| 1 | Any finding has `severity` ∈ {`critical`, `high`} | `request-changes` | -| 2 | `gated_paths` is true AND `review_decision` ≠ `APPROVED` | `escalate` | -| 3 | `high_risk` is true AND any `high_risk_reasons` entry contains `(deleted)` | `escalate` | -| 4 | Any finding has `severity = medium` AND `category` ∈ {`data-loss`, `schema`, `infra`} | `escalate` | -| 5 | `high_risk` is true AND any `high_risk_reasons` entry contains `(modified)` AND any finding has `severity = medium` | `escalate` | -| 6 | Prior decision was `escalate` AND at least one new `critical`/`high`/`medium` finding is present in this run | `escalate` (sticky — only persists when fresh evidence still exists) | -| 7 | PR author ∈ any `no_auto_approve_teams` | `comment` | -| 8 | Three or more findings have `severity = medium` | `comment` | -| 9 | Otherwise | `approve` | - -**Row 9 means `approve` — no exceptions beyond rows 1–8.** If none of rows 1–8 fired, the outcome is `approve`. 1 or 2 medium findings with no escalation trigger and no team gate falls through to row 9 and is an `approve`. Do not use `comment` as a weaker form of `request-changes` or as a hedge when the diff "feels risky." Comment is explicitly reserved for three or more medium findings (row 8) or an author team gate (row 7). If you are tempted to comment on fewer than three medium findings, check whether you are applying row 8 correctly — you are not, and the outcome must be `approve`. - -Note on `gated_paths` (row 2): `gated_paths` is a purely deterministic, -path-based fact computed by the setup action from `## Gated Paths` globs — -it is never something you derive from prose, and it never changes based on -the code inside the file. The gate lifts the moment `review_decision` -becomes `APPROVED` (a real GitHub-computed signal from branch protection / -CODEOWNERS), not because you decided the diff looks safe. Do not escalate -"forever" once `review_decision` is `APPROVED` — that is the entire point of -checking it. Note also that row 2 only fires when `review_decision` is NOT -already `APPROVED`; once approved, the same PR falls through to rows 3-9 like -any other PR (including a possible `approve` at row 9 on a clean diff). - -Row 2 is not merely documentation — you are expected to apply it directly, -exactly like every other row. A code-level backstop (`enforceDecisionGuards`) -additionally guarantees the gate holds even if you get it wrong: it -force-downgrades an `approve` to `escalate`, and if you already chose -`escalate` for a different row while `gated_paths` is unsatisfied, it merges -the gated-paths reason into `escalation_reasons` so a human reviewing the -output sees both triggers. This is the same dual-layer pattern (prompt-level -rule you should follow + code-level guarantee in case you don't) already -used for the no-auto-approve-teams HARD RULE above. - -Note on sticky escalation (row 6): the previous version of this rule kept a PR escalated forever as long as `high_risk` stayed true — which traps PRs in escalation whenever the diff continues to touch high-risk-path files. The new rule requires the current run to surface at least one fresh finding to justify persisting an earlier escalation. If the reviewer finds nothing actionable, an earlier escalate does not stick. - -Note on `protected_branches` (deprecated): an earlier version of this table had a row blocking auto-approve when the PR's base was in `protected_branches`. That rule made every PR into `main` a forced `comment`, which is the opposite of what most teams want — a clean review with no blocking findings should approve regardless of the base. The rule has been removed. The `## Protected Branches` section in AAO-SECRETARIAT.md is now informational only; parser-side support is kept for backward compatibility but does not affect the decision. Repos that need an extra approval gate on a specific branch should use GitHub's branch protection rules (required reviewers), not AAO-SECRETARIAT. - -## Body composition - -For every outcome, the body is structured as: - -1. One-line verdict ("Approve", "Request changes — N blocking finding(s)", etc.). -2. **Blocking findings** section, listing each `critical`/`high` finding as `- <file>:<line> — <title>`. -3. **Medium findings** section, same format (collapsed under `<details>` if more than 5). -4. **Escalation reasons** section (only on `escalate`), listing each reason in plain English (e.g. "Deletes `terraform/prod/main.tf` — production infra change"). For a `gated_paths` escalation (row 2), state the gated file(s) and that human/CODEOWNERS review is required — do not re-explain the gate's rationale at length; that lives in AAO-SECRETARIAT.md, not the PR comment. -5. **Sticky marker** line at the very end (an HTML comment, see arbiter implementation). - -Keep total body length ≤ 4000 characters. Truncate medium-finding lists if needed. diff --git a/.secretariat/ai-review/reviewer/rules/coverage.md b/.secretariat/ai-review/reviewer/rules/coverage.md deleted file mode 100644 index 0d268b110..000000000 --- a/.secretariat/ai-review/reviewer/rules/coverage.md +++ /dev/null @@ -1,46 +0,0 @@ -# Mandatory coverage — do not skip these - -These exist because AAO-SECRETARIAT has missed bugs by reviewing the architectural story without opening the file that actually changed. The rules below force the work. - -Repos can extend this list with their own mandatory-coverage rules via their `AAO-SECRETARIAT.md`'s `## Repo Context` section. The rules below are the cross-language baseline. - -## Largest-file rule - -For every **non-generated** file in the diff with **>200 net lines changed**, you MUST: -- Study its actual changes in the delta/full diff files (provided in the task). The workspace is pinned to the **base** SHA, so `Read`/`Glob`/`Grep` there show the *pre-change* version — use them for surrounding context, never as the source of the changes. -- Cite at least one specific `file:line` finding from it in your review — even if the finding is "the new control flow at L254-L272 is safe because X." -- **Cite head line numbers from the diff's added (`+`) side** — that is the line number in the changed file. Quote the 1-3 relevant lines of code verbatim alongside the number so the reference is self-verifying. You may `Read`/`Grep` the base version to anchor context on a *modified* file, but do not cite a base line number for added code (the base and head numbers differ). - -Skip only: generated files (`*.gen.ts`, `*__generated__/*`, vendored OpenAPI snapshots, lockfiles, `package-lock.json`, `pnpm-lock.yaml`) and anything the repo's `AAO-SECRETARIAT.md` declares as trivial. The PR description is not a substitute for reading the file. A 5-review streak that never cites a single line from the largest changed file is the failure mode this rule prevents. - -## Test-plan honesty - -Read the PR description's test plan. If a checkbox describing **manual verification of behavior the PR is changing** is unchecked, you MUST: -- Quote the unchecked item in your review. -- State explicitly that the change ships unvalidated against the path it claims to fix. -- Treat it as a Follow-up only if the unchecked path is non-critical; if the unchecked path is the *primary* user-facing change in the PR, downgrade your sign-off to `LGTM after manual smoke` or `--comment` with the question. - -"Blocked on test credentials" is the author's problem, not your reason to skip the check. - -## Operational-readiness audit - -Whenever the diff touches background workers, queues, cron jobs, storage, HTTP clients, SDK calls, retries, or async processing, you MUST check: -- **Timeouts/cancellation:** every external I/O path has an explicit timeout, abort signal, SDK timeout, or bounded wrapper. Compare it to any worker stuck-threshold, retry lease, request timeout, or queue visibility timeout. -- **Retry and claim semantics:** a hung call cannot hold a queue claim or worker slot longer than the designed reclaim interval without a visible signal. -- **Observability:** caught errors that affect durable state, async processing, uploads, billing, or user-visible status are captured to an alerting path (Sentry, equivalent), not only a warn log. -- **Partial failure state:** if one item in a batch fails, the PR deliberately chooses fail-fast, per-item retry, or degraded completion. Name which one. - -Output rule: if the PR touches these areas, include at least one `Things I checked` bullet that says what you verified. If you find a problem that is not MUST FIX, put it in `Follow-ups` with the exact production symptom (e.g. "X has no timeout; a hung call holds Y until Z reclaims it"). - -## Medium findings — surface every real one - -Medium findings are **expected when they exist.** Unlike blocking issues they do not gate the merge, but they are not optional to surface: if the change introduces or leaves a real Medium-severity problem, you **post it inline** prefixed `**Medium:**`. A PR with a TON of Medium issues should receive a TON of Medium inline comments — surfacing them is the job, not a failure of terseness. The thing you must NOT do is swallow a real Medium to keep the review short or to reach a clean approve. - -Post a `**Medium:**` inline comment when a finding clears **all** of this bar: -1. It names a **concrete, likely-to-bite problem** the change introduces or leaves on a load-bearing path — an unhandled edge case that will actually occur (empty array, null, the error branch, a real concurrency window), a missing timeout/cancellation, warn-only handling that hides a durable-state failure, a missing test for a branch this PR added where a regression would be silent and costly, a genuine correctness/observability gap. -2. It is **specific and actionable**, tied to a `file:line`, and quotes the relevant code. -3. It is worth the author **stopping to read it.** If the author would reasonably reply "yeah, fine, but who cares" — it is a Low nit, not a Medium. Do not post Low nits. - -**Never post as Medium (these are Low — drop them):** style, naming, formatting, structure preferences; "you could also handle X" for an X that won't happen; "consider extracting a helper" / "consider refactoring"; restating what the code does; speculative "in the future you might"; anything you'd post mainly to look thorough. - -If after a genuine pass the code is genuinely clean and nothing is Medium-or-worse, post nothing and omit the `## Recommendations` section — a clean PR earns a clean approve. **Do NOT invent or pad Medium findings to demonstrate effort, and do NOT downgrade a real Medium to silence to keep the review short.** Both directions are failures; calibrate to what is actually in the diff. diff --git a/.secretariat/ai-review/reviewer/rules/governance-gates.md b/.secretariat/ai-review/reviewer/rules/governance-gates.md deleted file mode 100644 index c775847bb..000000000 --- a/.secretariat/ai-review/reviewer/rules/governance-gates.md +++ /dev/null @@ -1,46 +0,0 @@ -# Governance gates are not reviewer findings - -Some repos declare **hard governance/approval gates** in AAO-SECRETARIAT.md — a fact like -"this file/directory/changeset type always requires human or CODEOWNERS -sign-off" or "this AAO-SECRETARIAT.md section can't be edited without Escalation -Reviewer approval." These come in two forms: - -1. **Structured (`## Gated Paths`).** The setup action deterministically - matches changed files against these globs via `picomatch` — the same - mechanism as `## High-Risk Paths`. You will see the result as - `gated_paths` (true/false) and `gated_paths_reasons` in your context below. -2. **Prose-based (inside `## Repo Context`).** Some gates are semantic and - can't be reduced to a path glob — e.g. "a changeset with `type: major` - needs Escalation Reviewer sign-off," or "a spec file's `owner:` frontmatter - must match the PR author." These are still described in free-form prose - under `## Repo Context`. - -**You do not judge either kind. This is now entirely the arbiter's job.** - -- Do **NOT** post an inline comment about a governance/approval gate — - structured or prose-based — regardless of whether the gate currently - looks satisfied or unsatisfied, and regardless of `review_decision`. -- Do **NOT** add a governance-gate fact to the findings JSON as a `finding` - entry. It is not a code-correctness finding: no bug, no contract break, no - security/data-loss issue at a `file:line` — it is a process/policy fact, - and `inline-comments.md`'s own bar for what belongs inline excludes it. -- **Why this rule exists:** before this rule, the reviewer re-derived "this - file is under a hard approval gate" from AAO-SECRETARIAT.md prose on every single - pass and posted a fresh `**MUST FIX:**` inline comment every time — even - after a human had already satisfied the gate with a real approval. That - wasted reviewer turns/tokens repeating a static, deterministic fact that - never changes about the PR's file list, and it kept nagging forever because - the reviewer has no way to know a human already signed off. The arbiter (and, - for `## Gated Paths`, a deterministic code-level check) is the single place - this fact is now evaluated, exactly once per pass, with awareness of - `review_decision`. -- You MAY still review the *code inside* a gated file normally — if - `deploy.yml` has an actual bug (a missing guard, a broken conditional), that - is a real finding and belongs inline / in the findings JSON as usual, with - its real severity. The governance-gate FACT ("this file needs a human - sign-off") is what you drop; the code-correctness review of its contents - is unaffected. -- Ignore `review_decision` entirely for your own purposes — it is injected - into your context only so you recognize "a governance gate may apply to - this file, and I should not comment on the gate itself," not so you act as - a second judge of whether the gate is satisfied. diff --git a/.secretariat/ai-review/reviewer/rules/inline-comments.md b/.secretariat/ai-review/reviewer/rules/inline-comments.md deleted file mode 100644 index afc917c78..000000000 --- a/.secretariat/ai-review/reviewer/rules/inline-comments.md +++ /dev/null @@ -1,32 +0,0 @@ -# Inline comments — pin findings to the exact line - -**Inline comments put findings on the code they are about.** Two tiers of finding belong inline, each on its specific line: - -1. **MUST FIX (Critical / High) — blocking.** Prefix `**MUST FIX:**`. A reproducible bug, contract break, security/billing/data-loss issue with a named `file:line`. Never dropped, always inline. -2. **Medium — non-blocking but surfaced.** Prefix `**Medium:**`. Unhandled edge cases, missing timeouts, warn-only error handling on load-bearing paths. - -**Inline is still not a nit dump.** Low-severity items — style, naming, formatting, "you could also," speculative "in the future you might," restating what the code does — do NOT go inline. The signal of an inline comment is "stop and look at this line." Low-value comments dilute that signal and train the author to ignore AAO-SECRETARIAT. Post Critical / High / Medium findings; drop the Low ones or fold a genuinely load-bearing one into the summary. - -**Rules:** -- Only comment on lines that appear in the PR diff (lines with `+` prefix in the unified diff output). GitHub rejects comments on lines outside the diff hunk. -- The `line` number is the line number in the NEW version of the file (the right-side number shown in `gh pr diff` output). -- Each inline comment must be self-contained — a reader should understand the concern without reading the summary body. -- Use the AAO-SECRETARIAT voice. Keep comments concise: 1–3 sentences max. -- Prefix blocking comments with `**MUST FIX:**` and Medium comments with `**Medium:**`. Use `**(non-blocking)**` only for the rare load-bearing Low nit. -- **No hard cap on Critical / High / Medium findings — surface every real one.** A PR that genuinely has a TON of Medium and High issues should get a TON of inline comments; do not ration them down to look terse. The only thing you ration is Low-severity nits — keep at most a few of those, and only if load-bearing. Never pad to a count, and never drop a real Medium to stay under one. -- If a `gh api` comment call fails (e.g. the line is not in the diff), skip it and note the finding in the summary body instead. - -**What stays in the summary body (keep it short):** -- The verdict and sign-off -- "Things I checked" bullets -- Cross-cutting concerns that genuinely span multiple files and cannot be pinned to one line -- Findings on lines not in the diff (reference as `file:line` in prose) -- Follow-ups about missing functionality (not tied to a specific line) - -A blocking or Medium issue on a line belongs inline. A passing thought about how the code could be marginally nicer belongs nowhere. - ---- - -## How to post - -Use the `mcp__github_inline_comment__create_inline_comment` tool with `confirmed: true`. For each inline comment, also include a corresponding entry in the findings JSON emitted at end-of-run (with `posted_inline: true`). For findings that don't merit an inline (architecture-level, cross-file concerns), include them in the JSON with `posted_inline: false`. diff --git a/.secretariat/ai-review/reviewer/rules/severity.md b/.secretariat/ai-review/reviewer/rules/severity.md deleted file mode 100644 index 32fb18715..000000000 --- a/.secretariat/ai-review/reviewer/rules/severity.md +++ /dev/null @@ -1,27 +0,0 @@ -# Severity model - -AAO-SECRETARIAT classifies findings into four severities. Both the reviewer (which assigns severities) and the arbiter (which interprets them for the gate decision) use these definitions verbatim. - -## Critical -Data loss, security holes, billing bugs, auth bypass, multi-tenant boundary breaks, happy-path crashes on load-bearing flows. Always blocks. - -## High -Reproducible runtime errors, broken queries, AdCP spec drift, customer-contract breaks, V1 edits in repos that have migrated to V2, reproducible bugs on load-bearing paths. Always blocks. - -## Medium -Unhandled edge cases (empty array, null, race windows), missing timeouts on external calls, warn-only error handling on durable / async / billing paths, missing tests on new branches, LLM-context scope gaps. Surfaced inline; may or may not block depending on category and count (see arbiter decision rules). - -## Low -Style, naming, structure, "you could also" suggestions, speculative concerns. Omitted from the output unless the arbiter is producing an approve-with-nits summary. - ---- - -## What counts as each tier (with examples) - -**Critical:** data loss/corruption, security holes, billing/money bugs, auth bypass, multi-tenant isolation breaks, a crash on the happy path. - -**High:** runtime error on a real branch, broken query, AdCP spec drift, breaking a customer contract, V1 contamination, a concrete reproducible bug on a load-bearing path. - -**Medium:** an unhandled edge case that will actually occur (empty array, null deref, the error branch, a real concurrency window); a missing timeout/cancellation on a path that can hang user-visible work, a worker lane, a queue claim, or a billing path; warn-only error handling that hides a durable-state, async, upload, or billing failure; a missing test for a branch this PR added where a regression would be silent and costly; an agent-context scope/lifetime/budget gap; non-deterministic SQL on a load-bearing path. - -**Low:** code style, naming, structure, formatting; "you could also handle X" for an X that won't happen; "consider extracting a helper"; speculative "in the future"; wrong/missing changeset where the change itself is sound; docs MUST-vs-SHOULD wording. diff --git a/.secretariat/ai-review/reviewer/rules/voice.md b/.secretariat/ai-review/reviewer/rules/voice.md deleted file mode 100644 index 9b55f98f0..000000000 --- a/.secretariat/ai-review/reviewer/rules/voice.md +++ /dev/null @@ -1,33 +0,0 @@ -# AAO-SECRETARIAT — Expert PR Reviewer - -You are **AAO-SECRETARIAT**, the review desk of the AAO Secretariat, serving the AdCP Working Group as the expert PR reviewer for `adcontextprotocol/adcp-client` (the official TypeScript SDK + CLI for AdCP, published as `@adcp/sdk`). Apply the WG constitution appended to this prompt. When a question is settled precedent, cite the decision record (`DR-NNNN` in the spec repo's `governance/decisions/`). - -This is a real review on a real PR. Post inline comments via `mcp__github_inline_comment__create_inline_comment` and emit the structured findings JSON at the end of the run. Do not post a top-level PR review — that is the arbiter's job. - -**CRITICAL — identity:** You are AAO-SECRETARIAT, the Secretariat's review desk. Never attribute the review to a person — never sign it with a name or write "from <person>". The author is always AAO-SECRETARIAT. - ---- - -## Voice - -### Tone -- Declarative, technical, no hedging. Short sentences. -- No marketing words, no emojis, no apologies, no "I think we should..." softening. -- Compliments are specific ("Real bug." "Clean fix." "Right shape.") — never generic ("Looks good!"). -- Quantify everything: "14 call sites," "126 schema files modified," `pg code 57014`, `5473/5473 pass`. -- Cite lineage: the upstream PR, the issue, the prior reviewer's flag. Every change has a parent. -- **One dry observation per review, max.** Aim at smells (a misleading commit message, the third drift-cleanup commit in a row), never at the author. Understatement does more work than overstatement: "notable" / "interesting choice" / "worth a follow-up" beats "this is wild." No exclamation points, no `lol`, no emoji. If the PR has a real problem (security, billing, data loss), drop the aside entirely. - -### Useful idioms (use sparingly — pastiche reads worse than plain prose) -- **"load-bearing"** — prose/fields/checks doing real work -- **"the right shape" / "wrong shape"** — API design judgment -- **"fail-closed beats fail-open"** -- **"on the wire"** — protocol surface -- **"happy path is unchanged" / "behavior change:"** — exact side-effect callouts -- **"non-blocking"** in parens — explicit nit marker - -### Anti-patterns -- Don't write "This PR adds…" — drop the article: "Adds…" -- Don't write generic "LGTM" without a follow-on. Either `LGTM after X` or a verdict + rationale. -- Don't blanket-praise. Praise specific sites: "Good catch on the four hard-coded `=== 'buying'` sites." -- Don't auto-block. Use Request Changes only for security holes, data loss, billing bugs, or breaking customer contracts. diff --git a/.secretariat/ai-review/scripts/check-dist.sh b/.secretariat/ai-review/scripts/check-dist.sh deleted file mode 100755 index dbd49848e..000000000 --- a/.secretariat/ai-review/scripts/check-dist.sh +++ /dev/null @@ -1,33 +0,0 @@ -#!/usr/bin/env bash -# -# CI guard: fail if a node action's committed dist/ is out of sync with its -# source. Rebuilds each action from a clean install and checks for drift. -# -# This is the real enforcer behind the pre-commit dist-rebuild hook: local hooks -# can be bypassed (--no-verify), only exist if `prepare` ran, and are skipped on -# partial commits. This check runs in CI and cannot be skipped. -# -# Self-contained here so it travels with the .secretariat/ai-review tree. - -set -euo pipefail - -REPO_ROOT=$(git rev-parse --show-toplevel) -cd "$REPO_ROOT" - -status=0 -for action in setup arbiter; do - dir=".secretariat/ai-review/${action}" - echo "::group::rebuild ${dir}" - (cd "$dir" && npm ci && npm run build) - echo "::endgroup::" - if ! git diff --quiet -- "${dir}/dist"; then - echo "::error file=${dir}/dist::Committed ${dir}/dist is stale — run 'npm run build' in ${dir} and commit the result." - git --no-pager diff --stat -- "${dir}/dist" - status=1 - fi -done - -if [ "$status" -eq 0 ]; then - echo "✅ All .secretariat/ai-review action dist/ bundles are in sync with source." -fi -exit "$status" diff --git a/.secretariat/ai-review/scripts/precommit.sh b/.secretariat/ai-review/scripts/precommit.sh deleted file mode 100755 index 3c3eea50f..000000000 --- a/.secretariat/ai-review/scripts/precommit.sh +++ /dev/null @@ -1,49 +0,0 @@ -#!/usr/bin/env bash -# -# Pre-commit: keep each node action's committed dist/ in sync with its source. -# -# The setup and arbiter actions ship a bundled dist/index.js that GitHub Actions -# runs directly. If source changes land without a matching rebuild, the committed -# bundle goes stale and the action runs old code. When a staged change touches a -# node action's src/ or build config, this rebuilds that action and re-stages its -# dist/ so the bundle never lands stale. -# -# Self-contained here so the logic travels with the .secretariat/ai-review tree -# (Phase-2 extraction). Wired into .git/hooks/pre-commit by scripts/install-hooks.js, -# which only delegates to this file. -# -# Fast-exits when no action source is staged, so ordinary commits are unaffected. - -set -euo pipefail - -REPO_ROOT=$(git rev-parse --show-toplevel 2>/dev/null) || exit 0 -cd "$REPO_ROOT" || exit 0 - -TREE=".secretariat/ai-review" -STAGED="$(git diff --cached --name-only)" - -rebuilt=0 -for action in setup arbiter; do - # Only the node actions have a committed dist/. Rebuild when their source or - # build inputs are staged. - if printf '%s\n' "$STAGED" | grep -qE "^${TREE}/${action}/(src/|scripts/|package\.json|package-lock\.json|tsconfig\.json)"; then - dir="${TREE}/${action}" - if [ ! -d "${dir}/node_modules" ]; then - echo "⚠️ ${dir}: node_modules missing — run 'npm ci' in that directory." >&2 - echo " Skipping dist rebuild; the committed dist/ may be stale (CI will catch it)." >&2 - continue - fi - echo "🔧 [aao-secretariat] rebuilding ${dir}/dist ..." >&2 - if ! ( cd "$dir" && npm run build >/dev/null 2>&1 ); then - echo "❌ ${dir} build failed — fix before committing." >&2 - exit 1 - fi - git add "${dir}/dist" - rebuilt=$((rebuilt + 1)) - fi -done - -if [ "$rebuilt" -gt 0 ]; then - echo "✅ [aao-secretariat] re-staged dist/ for ${rebuilt} action(s)." >&2 -fi -exit 0 diff --git a/.secretariat/ai-review/setup/.gitignore b/.secretariat/ai-review/setup/.gitignore deleted file mode 100644 index 2191e3cd0..000000000 --- a/.secretariat/ai-review/setup/.gitignore +++ /dev/null @@ -1,5 +0,0 @@ -# The repo root .gitignore ignores dist/ globally (build output convention -# for the main package). This action's dist/index.js is a committed ncc -# bundle (it's the actual GitHub Action runtime), so un-ignore it here. -!dist/ -!dist/** diff --git a/.secretariat/ai-review/setup/action.yml b/.secretariat/ai-review/setup/action.yml deleted file mode 100644 index b1cd37fe5..000000000 --- a/.secretariat/ai-review/setup/action.yml +++ /dev/null @@ -1,92 +0,0 @@ -name: 'AAO-SECRETARIAT v2 — Setup' -description: 'Parses AAO-SECRETARIAT.md, computes diff/delta, evaluates short-circuit conditions for the AAO-SECRETARIAT v2 review flow.' -author: 'Ad Context Protocol' - -inputs: - github-token: - description: 'GitHub App installation token' - required: true - aao-secretariat-bot-login: - description: 'GitHub login of the AAO-SECRETARIAT bot user (e.g. "aao-secretariat[bot]"). The orchestrator/self-review workflow constructs this from actions/create-github-app-token@v3''s app-slug output.' - required: false - default: 'aao-secretariat[bot]' - protected-branches: - description: 'Comma-separated base branches that force comment-only outcome (overrides AAO-SECRETARIAT.md ## Protected Branches)' - required: false - default: '' - no-auto-approve-teams: - description: 'Comma-separated team slugs whose members hold for human review (overrides AAO-SECRETARIAT.md)' - required: false - default: '' - escalation-reviewers: - description: 'Comma-separated GitHub logins (user) or org/slug (team) to request when arbiter escalates (overrides AAO-SECRETARIAT.md)' - required: false - default: '' - high-risk-paths: - description: 'Comma-separated globs treated as high-risk (overrides AAO-SECRETARIAT.md)' - required: false - default: '' - gated-paths: - description: 'Comma-separated globs requiring mandatory human/CODEOWNERS sign-off before approval (overrides AAO-SECRETARIAT.md ## Gated Paths)' - required: false - default: '' - trivial-paths: - description: 'Comma-separated globs filtered from incremental delta (overrides AAO-SECRETARIAT.md)' - required: false - default: '' - release-stack-branches: - description: 'Comma-separated branches that, as PR head, skip review entirely (overrides AAO-SECRETARIAT.md)' - required: false - default: 'release/next' - skip-bot-authors: - description: 'Comma-separated bot logins to skip (overrides AAO-SECRETARIAT.md)' - required: false - default: 'dependabot[bot],renovate[bot],github-actions[bot]' - force-review-label: - description: 'Label that forces review even on draft PRs' - required: false - default: 'aao-secretariat/force-review' - -outputs: - should-run: - description: 'true if downstream reviewer + arbiter should run' - skip-reason: - description: 'When should-run=false, one of: pr-closed, pr-draft, bot-author, merge-conflicts, release-stack-branch, self-triggered, pure-rebase, empty-delta' - aao-secretariat-md-body: - description: 'Repo Context section of AAO-SECRETARIAT.md (for prompt injection)' - high-risk: - description: 'true if any changed file matched a high-risk glob' - high-risk-reasons: - description: 'JSON array of human-readable reasons (filename + change kind + matching glob)' - gated-paths: - description: 'true if any changed file matched a glob in ## Gated Paths' - gated-paths-reasons: - description: 'JSON array of human-readable reasons (filename + change kind + matching glob) for gated-paths matches' - review-decision: - description: 'Raw GitHub reviewDecision for this PR: APPROVED | CHANGES_REQUESTED | REVIEW_REQUIRED | "" (null/unknown/fetch-failed)' - escalation-reviewers: - description: 'Resolved escalation reviewers (comma-separated; users and/or org/team-slug)' - no-auto-approve-teams: - description: 'Resolved no-auto-approve team slugs (comma-separated)' - protected-branches: - description: 'Resolved protected branches (comma-separated)' - prior-decision: - description: 'JSON-serialized prior decision marker (or empty string if none)' - diff-full-path: - description: 'Path to the full PR diff file in $RUNNER_TEMP' - diff-delta-path: - description: 'Path to the delta diff file in $RUNNER_TEMP (equals diff-full-path when not a synchronize event)' - pr-number: - description: 'PR number' - head-sha: - description: 'Head SHA' - base-sha: - description: 'Base SHA' - -runs: - using: 'node24' - main: 'dist/index.js' - -branding: - icon: 'check-circle' - color: 'blue' diff --git a/.secretariat/ai-review/setup/dist/index.js b/.secretariat/ai-review/setup/dist/index.js deleted file mode 100644 index 7740c9f63..000000000 --- a/.secretariat/ai-review/setup/dist/index.js +++ /dev/null @@ -1,3 +0,0 @@ -import{createRequire as e}from"module";var A={4914:function(e,A,t){var r=this&&this.__createBinding||(Object.create?function(e,A,t,r){if(r===undefined)r=t;var s=Object.getOwnPropertyDescriptor(A,t);if(!s||("get"in s?!A.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return A[t]}}}Object.defineProperty(e,r,s)}:function(e,A,t,r){if(r===undefined)r=t;e[r]=A[t]});var s=this&&this.__setModuleDefault||(Object.create?function(e,A){Object.defineProperty(e,"default",{enumerable:true,value:A})}:function(e,A){e["default"]=A});var o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var A={};if(e!=null)for(var t in e)if(t!=="default"&&Object.prototype.hasOwnProperty.call(e,t))r(A,e,t);s(A,e);return A};Object.defineProperty(A,"__esModule",{value:true});A.issue=A.issueCommand=void 0;const n=o(t(857));const i=t(302);function issueCommand(e,A,t){const r=new Command(e,A,t);process.stdout.write(r.toString()+n.EOL)}A.issueCommand=issueCommand;function issue(e,A=""){issueCommand(e,{},A)}A.issue=issue;const a="::";class Command{constructor(e,A,t){if(!e){e="missing.command"}this.command=e;this.properties=A;this.message=t}toString(){let e=a+this.command;if(this.properties&&Object.keys(this.properties).length>0){e+=" ";let A=true;for(const t in this.properties){if(this.properties.hasOwnProperty(t)){const r=this.properties[t];if(r){if(A){A=false}else{e+=","}e+=`${t}=${escapeProperty(r)}`}}}}e+=`${a}${escapeData(this.message)}`;return e}}function escapeData(e){return(0,i.toCommandValue)(e).replace(/%/g,"%25").replace(/\r/g,"%0D").replace(/\n/g,"%0A")}function escapeProperty(e){return(0,i.toCommandValue)(e).replace(/%/g,"%25").replace(/\r/g,"%0D").replace(/\n/g,"%0A").replace(/:/g,"%3A").replace(/,/g,"%2C")}},7484:function(e,A,t){var r=this&&this.__createBinding||(Object.create?function(e,A,t,r){if(r===undefined)r=t;var s=Object.getOwnPropertyDescriptor(A,t);if(!s||("get"in s?!A.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return A[t]}}}Object.defineProperty(e,r,s)}:function(e,A,t,r){if(r===undefined)r=t;e[r]=A[t]});var s=this&&this.__setModuleDefault||(Object.create?function(e,A){Object.defineProperty(e,"default",{enumerable:true,value:A})}:function(e,A){e["default"]=A});var o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var A={};if(e!=null)for(var t in e)if(t!=="default"&&Object.prototype.hasOwnProperty.call(e,t))r(A,e,t);s(A,e);return A};var n=this&&this.__awaiter||function(e,A,t,r){function adopt(e){return e instanceof t?e:new t((function(A){A(e)}))}return new(t||(t=Promise))((function(t,s){function fulfilled(e){try{step(r.next(e))}catch(e){s(e)}}function rejected(e){try{step(r["throw"](e))}catch(e){s(e)}}function step(e){e.done?t(e.value):adopt(e.value).then(fulfilled,rejected)}step((r=r.apply(e,A||[])).next())}))};Object.defineProperty(A,"__esModule",{value:true});A.platform=A.toPlatformPath=A.toWin32Path=A.toPosixPath=A.markdownSummary=A.summary=A.getIDToken=A.getState=A.saveState=A.group=A.endGroup=A.startGroup=A.info=A.notice=A.warning=A.error=A.debug=A.isDebug=A.setFailed=A.setCommandEcho=A.setOutput=A.getBooleanInput=A.getMultilineInput=A.getInput=A.addPath=A.setSecret=A.exportVariable=A.ExitCode=void 0;const i=t(4914);const a=t(4753);const c=t(302);const g=o(t(857));const E=o(t(6928));const l=t(5306);var u;(function(e){e[e["Success"]=0]="Success";e[e["Failure"]=1]="Failure"})(u||(A.ExitCode=u={}));function exportVariable(e,A){const t=(0,c.toCommandValue)(A);process.env[e]=t;const r=process.env["GITHUB_ENV"]||"";if(r){return(0,a.issueFileCommand)("ENV",(0,a.prepareKeyValueMessage)(e,A))}(0,i.issueCommand)("set-env",{name:e},t)}A.exportVariable=exportVariable;function setSecret(e){(0,i.issueCommand)("add-mask",{},e)}A.setSecret=setSecret;function addPath(e){const A=process.env["GITHUB_PATH"]||"";if(A){(0,a.issueFileCommand)("PATH",e)}else{(0,i.issueCommand)("add-path",{},e)}process.env["PATH"]=`${e}${E.delimiter}${process.env["PATH"]}`}A.addPath=addPath;function getInput(e,A){const t=process.env[`INPUT_${e.replace(/ /g,"_").toUpperCase()}`]||"";if(A&&A.required&&!t){throw new Error(`Input required and not supplied: ${e}`)}if(A&&A.trimWhitespace===false){return t}return t.trim()}A.getInput=getInput;function getMultilineInput(e,A){const t=getInput(e,A).split("\n").filter((e=>e!==""));if(A&&A.trimWhitespace===false){return t}return t.map((e=>e.trim()))}A.getMultilineInput=getMultilineInput;function getBooleanInput(e,A){const t=["true","True","TRUE"];const r=["false","False","FALSE"];const s=getInput(e,A);if(t.includes(s))return true;if(r.includes(s))return false;throw new TypeError(`Input does not meet YAML 1.2 "Core Schema" specification: ${e}\n`+`Support boolean input list: \`true | True | TRUE | false | False | FALSE\``)}A.getBooleanInput=getBooleanInput;function setOutput(e,A){const t=process.env["GITHUB_OUTPUT"]||"";if(t){return(0,a.issueFileCommand)("OUTPUT",(0,a.prepareKeyValueMessage)(e,A))}process.stdout.write(g.EOL);(0,i.issueCommand)("set-output",{name:e},(0,c.toCommandValue)(A))}A.setOutput=setOutput;function setCommandEcho(e){(0,i.issue)("echo",e?"on":"off")}A.setCommandEcho=setCommandEcho;function setFailed(e){process.exitCode=u.Failure;error(e)}A.setFailed=setFailed;function isDebug(){return process.env["RUNNER_DEBUG"]==="1"}A.isDebug=isDebug;function debug(e){(0,i.issueCommand)("debug",{},e)}A.debug=debug;function error(e,A={}){(0,i.issueCommand)("error",(0,c.toCommandProperties)(A),e instanceof Error?e.toString():e)}A.error=error;function warning(e,A={}){(0,i.issueCommand)("warning",(0,c.toCommandProperties)(A),e instanceof Error?e.toString():e)}A.warning=warning;function notice(e,A={}){(0,i.issueCommand)("notice",(0,c.toCommandProperties)(A),e instanceof Error?e.toString():e)}A.notice=notice;function info(e){process.stdout.write(e+g.EOL)}A.info=info;function startGroup(e){(0,i.issue)("group",e)}A.startGroup=startGroup;function endGroup(){(0,i.issue)("endgroup")}A.endGroup=endGroup;function group(e,A){return n(this,void 0,void 0,(function*(){startGroup(e);let t;try{t=yield A()}finally{endGroup()}return t}))}A.group=group;function saveState(e,A){const t=process.env["GITHUB_STATE"]||"";if(t){return(0,a.issueFileCommand)("STATE",(0,a.prepareKeyValueMessage)(e,A))}(0,i.issueCommand)("save-state",{name:e},(0,c.toCommandValue)(A))}A.saveState=saveState;function getState(e){return process.env[`STATE_${e}`]||""}A.getState=getState;function getIDToken(e){return n(this,void 0,void 0,(function*(){return yield l.OidcClient.getIDToken(e)}))}A.getIDToken=getIDToken;var h=t(1847);Object.defineProperty(A,"summary",{enumerable:true,get:function(){return h.summary}});var Q=t(1847);Object.defineProperty(A,"markdownSummary",{enumerable:true,get:function(){return Q.markdownSummary}});var C=t(1976);Object.defineProperty(A,"toPosixPath",{enumerable:true,get:function(){return C.toPosixPath}});Object.defineProperty(A,"toWin32Path",{enumerable:true,get:function(){return C.toWin32Path}});Object.defineProperty(A,"toPlatformPath",{enumerable:true,get:function(){return C.toPlatformPath}});A.platform=o(t(8968))},4753:function(e,A,t){var r=this&&this.__createBinding||(Object.create?function(e,A,t,r){if(r===undefined)r=t;var s=Object.getOwnPropertyDescriptor(A,t);if(!s||("get"in s?!A.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return A[t]}}}Object.defineProperty(e,r,s)}:function(e,A,t,r){if(r===undefined)r=t;e[r]=A[t]});var s=this&&this.__setModuleDefault||(Object.create?function(e,A){Object.defineProperty(e,"default",{enumerable:true,value:A})}:function(e,A){e["default"]=A});var o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var A={};if(e!=null)for(var t in e)if(t!=="default"&&Object.prototype.hasOwnProperty.call(e,t))r(A,e,t);s(A,e);return A};Object.defineProperty(A,"__esModule",{value:true});A.prepareKeyValueMessage=A.issueFileCommand=void 0;const n=o(t(6982));const i=o(t(9896));const a=o(t(857));const c=t(302);function issueFileCommand(e,A){const t=process.env[`GITHUB_${e}`];if(!t){throw new Error(`Unable to find environment variable for file command ${e}`)}if(!i.existsSync(t)){throw new Error(`Missing file at path: ${t}`)}i.appendFileSync(t,`${(0,c.toCommandValue)(A)}${a.EOL}`,{encoding:"utf8"})}A.issueFileCommand=issueFileCommand;function prepareKeyValueMessage(e,A){const t=`ghadelimiter_${n.randomUUID()}`;const r=(0,c.toCommandValue)(A);if(e.includes(t)){throw new Error(`Unexpected input: name should not contain the delimiter "${t}"`)}if(r.includes(t)){throw new Error(`Unexpected input: value should not contain the delimiter "${t}"`)}return`${e}<<${t}${a.EOL}${r}${a.EOL}${t}`}A.prepareKeyValueMessage=prepareKeyValueMessage},5306:function(e,A,t){var r=this&&this.__awaiter||function(e,A,t,r){function adopt(e){return e instanceof t?e:new t((function(A){A(e)}))}return new(t||(t=Promise))((function(t,s){function fulfilled(e){try{step(r.next(e))}catch(e){s(e)}}function rejected(e){try{step(r["throw"](e))}catch(e){s(e)}}function step(e){e.done?t(e.value):adopt(e.value).then(fulfilled,rejected)}step((r=r.apply(e,A||[])).next())}))};Object.defineProperty(A,"__esModule",{value:true});A.OidcClient=void 0;const s=t(4844);const o=t(4552);const n=t(7484);class OidcClient{static createHttpClient(e=true,A=10){const t={allowRetries:e,maxRetries:A};return new s.HttpClient("actions/oidc-client",[new o.BearerCredentialHandler(OidcClient.getRequestToken())],t)}static getRequestToken(){const e=process.env["ACTIONS_ID_TOKEN_REQUEST_TOKEN"];if(!e){throw new Error("Unable to get ACTIONS_ID_TOKEN_REQUEST_TOKEN env variable")}return e}static getIDTokenUrl(){const e=process.env["ACTIONS_ID_TOKEN_REQUEST_URL"];if(!e){throw new Error("Unable to get ACTIONS_ID_TOKEN_REQUEST_URL env variable")}return e}static getCall(e){var A;return r(this,void 0,void 0,(function*(){const t=OidcClient.createHttpClient();const r=yield t.getJson(e).catch((e=>{throw new Error(`Failed to get ID Token. \n \n Error Code : ${e.statusCode}\n \n Error Message: ${e.message}`)}));const s=(A=r.result)===null||A===void 0?void 0:A.value;if(!s){throw new Error("Response json body do not have ID Token field")}return s}))}static getIDToken(e){return r(this,void 0,void 0,(function*(){try{let A=OidcClient.getIDTokenUrl();if(e){const t=encodeURIComponent(e);A=`${A}&audience=${t}`}(0,n.debug)(`ID token url is ${A}`);const t=yield OidcClient.getCall(A);(0,n.setSecret)(t);return t}catch(e){throw new Error(`Error message: ${e.message}`)}}))}}A.OidcClient=OidcClient},1976:function(e,A,t){var r=this&&this.__createBinding||(Object.create?function(e,A,t,r){if(r===undefined)r=t;var s=Object.getOwnPropertyDescriptor(A,t);if(!s||("get"in s?!A.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return A[t]}}}Object.defineProperty(e,r,s)}:function(e,A,t,r){if(r===undefined)r=t;e[r]=A[t]});var s=this&&this.__setModuleDefault||(Object.create?function(e,A){Object.defineProperty(e,"default",{enumerable:true,value:A})}:function(e,A){e["default"]=A});var o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var A={};if(e!=null)for(var t in e)if(t!=="default"&&Object.prototype.hasOwnProperty.call(e,t))r(A,e,t);s(A,e);return A};Object.defineProperty(A,"__esModule",{value:true});A.toPlatformPath=A.toWin32Path=A.toPosixPath=void 0;const n=o(t(6928));function toPosixPath(e){return e.replace(/[\\]/g,"/")}A.toPosixPath=toPosixPath;function toWin32Path(e){return e.replace(/[/]/g,"\\")}A.toWin32Path=toWin32Path;function toPlatformPath(e){return e.replace(/[/\\]/g,n.sep)}A.toPlatformPath=toPlatformPath},8968:function(e,A,t){var r=this&&this.__createBinding||(Object.create?function(e,A,t,r){if(r===undefined)r=t;var s=Object.getOwnPropertyDescriptor(A,t);if(!s||("get"in s?!A.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return A[t]}}}Object.defineProperty(e,r,s)}:function(e,A,t,r){if(r===undefined)r=t;e[r]=A[t]});var s=this&&this.__setModuleDefault||(Object.create?function(e,A){Object.defineProperty(e,"default",{enumerable:true,value:A})}:function(e,A){e["default"]=A});var o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var A={};if(e!=null)for(var t in e)if(t!=="default"&&Object.prototype.hasOwnProperty.call(e,t))r(A,e,t);s(A,e);return A};var n=this&&this.__awaiter||function(e,A,t,r){function adopt(e){return e instanceof t?e:new t((function(A){A(e)}))}return new(t||(t=Promise))((function(t,s){function fulfilled(e){try{step(r.next(e))}catch(e){s(e)}}function rejected(e){try{step(r["throw"](e))}catch(e){s(e)}}function step(e){e.done?t(e.value):adopt(e.value).then(fulfilled,rejected)}step((r=r.apply(e,A||[])).next())}))};var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(A,"__esModule",{value:true});A.getDetails=A.isLinux=A.isMacOS=A.isWindows=A.arch=A.platform=void 0;const a=i(t(857));const c=o(t(5236));const getWindowsInfo=()=>n(void 0,void 0,void 0,(function*(){const{stdout:e}=yield c.getExecOutput('powershell -command "(Get-CimInstance -ClassName Win32_OperatingSystem).Version"',undefined,{silent:true});const{stdout:A}=yield c.getExecOutput('powershell -command "(Get-CimInstance -ClassName Win32_OperatingSystem).Caption"',undefined,{silent:true});return{name:A.trim(),version:e.trim()}}));const getMacOsInfo=()=>n(void 0,void 0,void 0,(function*(){var e,A,t,r;const{stdout:s}=yield c.getExecOutput("sw_vers",undefined,{silent:true});const o=(A=(e=s.match(/ProductVersion:\s*(.+)/))===null||e===void 0?void 0:e[1])!==null&&A!==void 0?A:"";const n=(r=(t=s.match(/ProductName:\s*(.+)/))===null||t===void 0?void 0:t[1])!==null&&r!==void 0?r:"";return{name:n,version:o}}));const getLinuxInfo=()=>n(void 0,void 0,void 0,(function*(){const{stdout:e}=yield c.getExecOutput("lsb_release",["-i","-r","-s"],{silent:true});const[A,t]=e.trim().split("\n");return{name:A,version:t}}));A.platform=a.default.platform();A.arch=a.default.arch();A.isWindows=A.platform==="win32";A.isMacOS=A.platform==="darwin";A.isLinux=A.platform==="linux";function getDetails(){return n(this,void 0,void 0,(function*(){return Object.assign(Object.assign({},yield A.isWindows?getWindowsInfo():A.isMacOS?getMacOsInfo():getLinuxInfo()),{platform:A.platform,arch:A.arch,isWindows:A.isWindows,isMacOS:A.isMacOS,isLinux:A.isLinux})}))}A.getDetails=getDetails},1847:function(e,A,t){var r=this&&this.__awaiter||function(e,A,t,r){function adopt(e){return e instanceof t?e:new t((function(A){A(e)}))}return new(t||(t=Promise))((function(t,s){function fulfilled(e){try{step(r.next(e))}catch(e){s(e)}}function rejected(e){try{step(r["throw"](e))}catch(e){s(e)}}function step(e){e.done?t(e.value):adopt(e.value).then(fulfilled,rejected)}step((r=r.apply(e,A||[])).next())}))};Object.defineProperty(A,"__esModule",{value:true});A.summary=A.markdownSummary=A.SUMMARY_DOCS_URL=A.SUMMARY_ENV_VAR=void 0;const s=t(857);const o=t(9896);const{access:n,appendFile:i,writeFile:a}=o.promises;A.SUMMARY_ENV_VAR="GITHUB_STEP_SUMMARY";A.SUMMARY_DOCS_URL="https://docs.github.com/actions/using-workflows/workflow-commands-for-github-actions#adding-a-job-summary";class Summary{constructor(){this._buffer=""}filePath(){return r(this,void 0,void 0,(function*(){if(this._filePath){return this._filePath}const e=process.env[A.SUMMARY_ENV_VAR];if(!e){throw new Error(`Unable to find environment variable for $${A.SUMMARY_ENV_VAR}. Check if your runtime environment supports job summaries.`)}try{yield n(e,o.constants.R_OK|o.constants.W_OK)}catch(A){throw new Error(`Unable to access summary file: '${e}'. Check if the file has correct read/write permissions.`)}this._filePath=e;return this._filePath}))}wrap(e,A,t={}){const r=Object.entries(t).map((([e,A])=>` ${e}="${A}"`)).join("");if(!A){return`<${e}${r}>`}return`<${e}${r}>${A}</${e}>`}write(e){return r(this,void 0,void 0,(function*(){const A=!!(e===null||e===void 0?void 0:e.overwrite);const t=yield this.filePath();const r=A?a:i;yield r(t,this._buffer,{encoding:"utf8"});return this.emptyBuffer()}))}clear(){return r(this,void 0,void 0,(function*(){return this.emptyBuffer().write({overwrite:true})}))}stringify(){return this._buffer}isEmptyBuffer(){return this._buffer.length===0}emptyBuffer(){this._buffer="";return this}addRaw(e,A=false){this._buffer+=e;return A?this.addEOL():this}addEOL(){return this.addRaw(s.EOL)}addCodeBlock(e,A){const t=Object.assign({},A&&{lang:A});const r=this.wrap("pre",this.wrap("code",e),t);return this.addRaw(r).addEOL()}addList(e,A=false){const t=A?"ol":"ul";const r=e.map((e=>this.wrap("li",e))).join("");const s=this.wrap(t,r);return this.addRaw(s).addEOL()}addTable(e){const A=e.map((e=>{const A=e.map((e=>{if(typeof e==="string"){return this.wrap("td",e)}const{header:A,data:t,colspan:r,rowspan:s}=e;const o=A?"th":"td";const n=Object.assign(Object.assign({},r&&{colspan:r}),s&&{rowspan:s});return this.wrap(o,t,n)})).join("");return this.wrap("tr",A)})).join("");const t=this.wrap("table",A);return this.addRaw(t).addEOL()}addDetails(e,A){const t=this.wrap("details",this.wrap("summary",e)+A);return this.addRaw(t).addEOL()}addImage(e,A,t){const{width:r,height:s}=t||{};const o=Object.assign(Object.assign({},r&&{width:r}),s&&{height:s});const n=this.wrap("img",null,Object.assign({src:e,alt:A},o));return this.addRaw(n).addEOL()}addHeading(e,A){const t=`h${A}`;const r=["h1","h2","h3","h4","h5","h6"].includes(t)?t:"h1";const s=this.wrap(r,e);return this.addRaw(s).addEOL()}addSeparator(){const e=this.wrap("hr",null);return this.addRaw(e).addEOL()}addBreak(){const e=this.wrap("br",null);return this.addRaw(e).addEOL()}addQuote(e,A){const t=Object.assign({},A&&{cite:A});const r=this.wrap("blockquote",e,t);return this.addRaw(r).addEOL()}addLink(e,A){const t=this.wrap("a",e,{href:A});return this.addRaw(t).addEOL()}}const c=new Summary;A.markdownSummary=c;A.summary=c},302:(e,A)=>{Object.defineProperty(A,"__esModule",{value:true});A.toCommandProperties=A.toCommandValue=void 0;function toCommandValue(e){if(e===null||e===undefined){return""}else if(typeof e==="string"||e instanceof String){return e}return JSON.stringify(e)}A.toCommandValue=toCommandValue;function toCommandProperties(e){if(!Object.keys(e).length){return{}}return{title:e.title,file:e.file,line:e.startLine,endLine:e.endLine,col:e.startColumn,endColumn:e.endColumn}}A.toCommandProperties=toCommandProperties},5236:function(e,A,t){var r=this&&this.__createBinding||(Object.create?function(e,A,t,r){if(r===undefined)r=t;Object.defineProperty(e,r,{enumerable:true,get:function(){return A[t]}})}:function(e,A,t,r){if(r===undefined)r=t;e[r]=A[t]});var s=this&&this.__setModuleDefault||(Object.create?function(e,A){Object.defineProperty(e,"default",{enumerable:true,value:A})}:function(e,A){e["default"]=A});var o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var A={};if(e!=null)for(var t in e)if(t!=="default"&&Object.hasOwnProperty.call(e,t))r(A,e,t);s(A,e);return A};var n=this&&this.__awaiter||function(e,A,t,r){function adopt(e){return e instanceof t?e:new t((function(A){A(e)}))}return new(t||(t=Promise))((function(t,s){function fulfilled(e){try{step(r.next(e))}catch(e){s(e)}}function rejected(e){try{step(r["throw"](e))}catch(e){s(e)}}function step(e){e.done?t(e.value):adopt(e.value).then(fulfilled,rejected)}step((r=r.apply(e,A||[])).next())}))};Object.defineProperty(A,"__esModule",{value:true});A.getExecOutput=A.exec=void 0;const i=t(3193);const a=o(t(6665));function exec(e,A,t){return n(this,void 0,void 0,(function*(){const r=a.argStringToArray(e);if(r.length===0){throw new Error(`Parameter 'commandLine' cannot be null or empty.`)}const s=r[0];A=r.slice(1).concat(A||[]);const o=new a.ToolRunner(s,A,t);return o.exec()}))}A.exec=exec;function getExecOutput(e,A,t){var r,s;return n(this,void 0,void 0,(function*(){let o="";let n="";const a=new i.StringDecoder("utf8");const c=new i.StringDecoder("utf8");const g=(r=t===null||t===void 0?void 0:t.listeners)===null||r===void 0?void 0:r.stdout;const E=(s=t===null||t===void 0?void 0:t.listeners)===null||s===void 0?void 0:s.stderr;const stdErrListener=e=>{n+=c.write(e);if(E){E(e)}};const stdOutListener=e=>{o+=a.write(e);if(g){g(e)}};const l=Object.assign(Object.assign({},t===null||t===void 0?void 0:t.listeners),{stdout:stdOutListener,stderr:stdErrListener});const u=yield exec(e,A,Object.assign(Object.assign({},t),{listeners:l}));o+=a.end();n+=c.end();return{exitCode:u,stdout:o,stderr:n}}))}A.getExecOutput=getExecOutput},6665:function(e,A,t){var r=this&&this.__createBinding||(Object.create?function(e,A,t,r){if(r===undefined)r=t;Object.defineProperty(e,r,{enumerable:true,get:function(){return A[t]}})}:function(e,A,t,r){if(r===undefined)r=t;e[r]=A[t]});var s=this&&this.__setModuleDefault||(Object.create?function(e,A){Object.defineProperty(e,"default",{enumerable:true,value:A})}:function(e,A){e["default"]=A});var o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var A={};if(e!=null)for(var t in e)if(t!=="default"&&Object.hasOwnProperty.call(e,t))r(A,e,t);s(A,e);return A};var n=this&&this.__awaiter||function(e,A,t,r){function adopt(e){return e instanceof t?e:new t((function(A){A(e)}))}return new(t||(t=Promise))((function(t,s){function fulfilled(e){try{step(r.next(e))}catch(e){s(e)}}function rejected(e){try{step(r["throw"](e))}catch(e){s(e)}}function step(e){e.done?t(e.value):adopt(e.value).then(fulfilled,rejected)}step((r=r.apply(e,A||[])).next())}))};Object.defineProperty(A,"__esModule",{value:true});A.argStringToArray=A.ToolRunner=void 0;const i=o(t(857));const a=o(t(4434));const c=o(t(5317));const g=o(t(6928));const E=o(t(4994));const l=o(t(5207));const u=t(3557);const h=process.platform==="win32";class ToolRunner extends a.EventEmitter{constructor(e,A,t){super();if(!e){throw new Error("Parameter 'toolPath' cannot be null or empty.")}this.toolPath=e;this.args=A||[];this.options=t||{}}_debug(e){if(this.options.listeners&&this.options.listeners.debug){this.options.listeners.debug(e)}}_getCommandString(e,A){const t=this._getSpawnFileName();const r=this._getSpawnArgs(e);let s=A?"":"[command]";if(h){if(this._isCmdFile()){s+=t;for(const e of r){s+=` ${e}`}}else if(e.windowsVerbatimArguments){s+=`"${t}"`;for(const e of r){s+=` ${e}`}}else{s+=this._windowsQuoteCmdArg(t);for(const e of r){s+=` ${this._windowsQuoteCmdArg(e)}`}}}else{s+=t;for(const e of r){s+=` ${e}`}}return s}_processLineBuffer(e,A,t){try{let r=A+e.toString();let s=r.indexOf(i.EOL);while(s>-1){const e=r.substring(0,s);t(e);r=r.substring(s+i.EOL.length);s=r.indexOf(i.EOL)}return r}catch(e){this._debug(`error processing line. Failed with error ${e}`);return""}}_getSpawnFileName(){if(h){if(this._isCmdFile()){return process.env["COMSPEC"]||"cmd.exe"}}return this.toolPath}_getSpawnArgs(e){if(h){if(this._isCmdFile()){let A=`/D /S /C "${this._windowsQuoteCmdArg(this.toolPath)}`;for(const t of this.args){A+=" ";A+=e.windowsVerbatimArguments?t:this._windowsQuoteCmdArg(t)}A+='"';return[A]}}return this.args}_endsWith(e,A){return e.endsWith(A)}_isCmdFile(){const e=this.toolPath.toUpperCase();return this._endsWith(e,".CMD")||this._endsWith(e,".BAT")}_windowsQuoteCmdArg(e){if(!this._isCmdFile()){return this._uvQuoteCmdArg(e)}if(!e){return'""'}const A=[" ","\t","&","(",")","[","]","{","}","^","=",";","!","'","+",",","`","~","|","<",">",'"'];let t=false;for(const r of e){if(A.some((e=>e===r))){t=true;break}}if(!t){return e}let r='"';let s=true;for(let A=e.length;A>0;A--){r+=e[A-1];if(s&&e[A-1]==="\\"){r+="\\"}else if(e[A-1]==='"'){s=true;r+='"'}else{s=false}}r+='"';return r.split("").reverse().join("")}_uvQuoteCmdArg(e){if(!e){return'""'}if(!e.includes(" ")&&!e.includes("\t")&&!e.includes('"')){return e}if(!e.includes('"')&&!e.includes("\\")){return`"${e}"`}let A='"';let t=true;for(let r=e.length;r>0;r--){A+=e[r-1];if(t&&e[r-1]==="\\"){A+="\\"}else if(e[r-1]==='"'){t=true;A+="\\"}else{t=false}}A+='"';return A.split("").reverse().join("")}_cloneExecOptions(e){e=e||{};const A={cwd:e.cwd||process.cwd(),env:e.env||process.env,silent:e.silent||false,windowsVerbatimArguments:e.windowsVerbatimArguments||false,failOnStdErr:e.failOnStdErr||false,ignoreReturnCode:e.ignoreReturnCode||false,delay:e.delay||1e4};A.outStream=e.outStream||process.stdout;A.errStream=e.errStream||process.stderr;return A}_getSpawnOptions(e,A){e=e||{};const t={};t.cwd=e.cwd;t.env=e.env;t["windowsVerbatimArguments"]=e.windowsVerbatimArguments||this._isCmdFile();if(e.windowsVerbatimArguments){t.argv0=`"${A}"`}return t}exec(){return n(this,void 0,void 0,(function*(){if(!l.isRooted(this.toolPath)&&(this.toolPath.includes("/")||h&&this.toolPath.includes("\\"))){this.toolPath=g.resolve(process.cwd(),this.options.cwd||process.cwd(),this.toolPath)}this.toolPath=yield E.which(this.toolPath,true);return new Promise(((e,A)=>n(this,void 0,void 0,(function*(){this._debug(`exec tool: ${this.toolPath}`);this._debug("arguments:");for(const e of this.args){this._debug(` ${e}`)}const t=this._cloneExecOptions(this.options);if(!t.silent&&t.outStream){t.outStream.write(this._getCommandString(t)+i.EOL)}const r=new ExecState(t,this.toolPath);r.on("debug",(e=>{this._debug(e)}));if(this.options.cwd&&!(yield l.exists(this.options.cwd))){return A(new Error(`The cwd: ${this.options.cwd} does not exist!`))}const s=this._getSpawnFileName();const o=c.spawn(s,this._getSpawnArgs(t),this._getSpawnOptions(this.options,s));let n="";if(o.stdout){o.stdout.on("data",(e=>{if(this.options.listeners&&this.options.listeners.stdout){this.options.listeners.stdout(e)}if(!t.silent&&t.outStream){t.outStream.write(e)}n=this._processLineBuffer(e,n,(e=>{if(this.options.listeners&&this.options.listeners.stdline){this.options.listeners.stdline(e)}}))}))}let a="";if(o.stderr){o.stderr.on("data",(e=>{r.processStderr=true;if(this.options.listeners&&this.options.listeners.stderr){this.options.listeners.stderr(e)}if(!t.silent&&t.errStream&&t.outStream){const A=t.failOnStdErr?t.errStream:t.outStream;A.write(e)}a=this._processLineBuffer(e,a,(e=>{if(this.options.listeners&&this.options.listeners.errline){this.options.listeners.errline(e)}}))}))}o.on("error",(e=>{r.processError=e.message;r.processExited=true;r.processClosed=true;r.CheckComplete()}));o.on("exit",(e=>{r.processExitCode=e;r.processExited=true;this._debug(`Exit code ${e} received from tool '${this.toolPath}'`);r.CheckComplete()}));o.on("close",(e=>{r.processExitCode=e;r.processExited=true;r.processClosed=true;this._debug(`STDIO streams have closed for tool '${this.toolPath}'`);r.CheckComplete()}));r.on("done",((t,r)=>{if(n.length>0){this.emit("stdline",n)}if(a.length>0){this.emit("errline",a)}o.removeAllListeners();if(t){A(t)}else{e(r)}}));if(this.options.input){if(!o.stdin){throw new Error("child process missing stdin")}o.stdin.end(this.options.input)}}))))}))}}A.ToolRunner=ToolRunner;function argStringToArray(e){const A=[];let t=false;let r=false;let s="";function append(e){if(r&&e!=='"'){s+="\\"}s+=e;r=false}for(let o=0;o<e.length;o++){const n=e.charAt(o);if(n==='"'){if(!r){t=!t}else{append(n)}continue}if(n==="\\"&&r){append(n);continue}if(n==="\\"&&t){r=true;continue}if(n===" "&&!t){if(s.length>0){A.push(s);s=""}continue}append(n)}if(s.length>0){A.push(s.trim())}return A}A.argStringToArray=argStringToArray;class ExecState extends a.EventEmitter{constructor(e,A){super();this.processClosed=false;this.processError="";this.processExitCode=0;this.processExited=false;this.processStderr=false;this.delay=1e4;this.done=false;this.timeout=null;if(!A){throw new Error("toolPath must not be empty")}this.options=e;this.toolPath=A;if(e.delay){this.delay=e.delay}}CheckComplete(){if(this.done){return}if(this.processClosed){this._setResult()}else if(this.processExited){this.timeout=u.setTimeout(ExecState.HandleTimeout,this.delay,this)}}_debug(e){this.emit("debug",e)}_setResult(){let e;if(this.processExited){if(this.processError){e=new Error(`There was an error when attempting to execute the process '${this.toolPath}'. This may indicate the process failed to start. Error: ${this.processError}`)}else if(this.processExitCode!==0&&!this.options.ignoreReturnCode){e=new Error(`The process '${this.toolPath}' failed with exit code ${this.processExitCode}`)}else if(this.processStderr&&this.options.failOnStdErr){e=new Error(`The process '${this.toolPath}' failed because one or more lines were written to the STDERR stream`)}}if(this.timeout){clearTimeout(this.timeout);this.timeout=null}this.done=true;this.emit("done",e,this.processExitCode)}static HandleTimeout(e){if(e.done){return}if(!e.processClosed&&e.processExited){const A=`The STDIO streams did not close within ${e.delay/1e3} seconds of the exit event from process '${e.toolPath}'. This may indicate a child process inherited the STDIO streams and has not yet exited.`;e._debug(A)}e._setResult()}}},1648:(e,A,t)=>{Object.defineProperty(A,"__esModule",{value:true});A.Context=void 0;const r=t(9896);const s=t(857);class Context{constructor(){var e,A,t;this.payload={};if(process.env.GITHUB_EVENT_PATH){if((0,r.existsSync)(process.env.GITHUB_EVENT_PATH)){this.payload=JSON.parse((0,r.readFileSync)(process.env.GITHUB_EVENT_PATH,{encoding:"utf8"}))}else{const e=process.env.GITHUB_EVENT_PATH;process.stdout.write(`GITHUB_EVENT_PATH ${e} does not exist${s.EOL}`)}}this.eventName=process.env.GITHUB_EVENT_NAME;this.sha=process.env.GITHUB_SHA;this.ref=process.env.GITHUB_REF;this.workflow=process.env.GITHUB_WORKFLOW;this.action=process.env.GITHUB_ACTION;this.actor=process.env.GITHUB_ACTOR;this.job=process.env.GITHUB_JOB;this.runAttempt=parseInt(process.env.GITHUB_RUN_ATTEMPT,10);this.runNumber=parseInt(process.env.GITHUB_RUN_NUMBER,10);this.runId=parseInt(process.env.GITHUB_RUN_ID,10);this.apiUrl=(e=process.env.GITHUB_API_URL)!==null&&e!==void 0?e:`https://api.github.com`;this.serverUrl=(A=process.env.GITHUB_SERVER_URL)!==null&&A!==void 0?A:`https://github.com`;this.graphqlUrl=(t=process.env.GITHUB_GRAPHQL_URL)!==null&&t!==void 0?t:`https://api.github.com/graphql`}get issue(){const e=this.payload;return Object.assign(Object.assign({},this.repo),{number:(e.issue||e.pull_request||e).number})}get repo(){if(process.env.GITHUB_REPOSITORY){const[e,A]=process.env.GITHUB_REPOSITORY.split("/");return{owner:e,repo:A}}if(this.payload.repository){return{owner:this.payload.repository.owner.login,repo:this.payload.repository.name}}throw new Error("context.repo requires a GITHUB_REPOSITORY environment variable like 'owner/repo'")}}A.Context=Context},3228:function(e,A,t){var r=this&&this.__createBinding||(Object.create?function(e,A,t,r){if(r===undefined)r=t;var s=Object.getOwnPropertyDescriptor(A,t);if(!s||("get"in s?!A.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return A[t]}}}Object.defineProperty(e,r,s)}:function(e,A,t,r){if(r===undefined)r=t;e[r]=A[t]});var s=this&&this.__setModuleDefault||(Object.create?function(e,A){Object.defineProperty(e,"default",{enumerable:true,value:A})}:function(e,A){e["default"]=A});var o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var A={};if(e!=null)for(var t in e)if(t!=="default"&&Object.prototype.hasOwnProperty.call(e,t))r(A,e,t);s(A,e);return A};Object.defineProperty(A,"__esModule",{value:true});A.getOctokit=A.context=void 0;const n=o(t(1648));const i=t(8006);A.context=new n.Context;function getOctokit(e,A,...t){const r=i.GitHub.plugin(...t);return new r((0,i.getOctokitOptions)(e,A))}A.getOctokit=getOctokit},5156:function(e,A,t){var r=this&&this.__createBinding||(Object.create?function(e,A,t,r){if(r===undefined)r=t;var s=Object.getOwnPropertyDescriptor(A,t);if(!s||("get"in s?!A.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return A[t]}}}Object.defineProperty(e,r,s)}:function(e,A,t,r){if(r===undefined)r=t;e[r]=A[t]});var s=this&&this.__setModuleDefault||(Object.create?function(e,A){Object.defineProperty(e,"default",{enumerable:true,value:A})}:function(e,A){e["default"]=A});var o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var A={};if(e!=null)for(var t in e)if(t!=="default"&&Object.prototype.hasOwnProperty.call(e,t))r(A,e,t);s(A,e);return A};var n=this&&this.__awaiter||function(e,A,t,r){function adopt(e){return e instanceof t?e:new t((function(A){A(e)}))}return new(t||(t=Promise))((function(t,s){function fulfilled(e){try{step(r.next(e))}catch(e){s(e)}}function rejected(e){try{step(r["throw"](e))}catch(e){s(e)}}function step(e){e.done?t(e.value):adopt(e.value).then(fulfilled,rejected)}step((r=r.apply(e,A||[])).next())}))};Object.defineProperty(A,"__esModule",{value:true});A.getApiBaseUrl=A.getProxyFetch=A.getProxyAgentDispatcher=A.getProxyAgent=A.getAuthString=void 0;const i=o(t(4844));const a=t(6752);function getAuthString(e,A){if(!e&&!A.auth){throw new Error("Parameter token or opts.auth is required")}else if(e&&A.auth){throw new Error("Parameters token and opts.auth may not both be specified")}return typeof A.auth==="string"?A.auth:`token ${e}`}A.getAuthString=getAuthString;function getProxyAgent(e){const A=new i.HttpClient;return A.getAgent(e)}A.getProxyAgent=getProxyAgent;function getProxyAgentDispatcher(e){const A=new i.HttpClient;return A.getAgentDispatcher(e)}A.getProxyAgentDispatcher=getProxyAgentDispatcher;function getProxyFetch(e){const A=getProxyAgentDispatcher(e);const proxyFetch=(e,t)=>n(this,void 0,void 0,(function*(){return(0,a.fetch)(e,Object.assign(Object.assign({},t),{dispatcher:A}))}));return proxyFetch}A.getProxyFetch=getProxyFetch;function getApiBaseUrl(){return process.env["GITHUB_API_URL"]||"https://api.github.com"}A.getApiBaseUrl=getApiBaseUrl},8006:function(e,A,t){var r=this&&this.__createBinding||(Object.create?function(e,A,t,r){if(r===undefined)r=t;var s=Object.getOwnPropertyDescriptor(A,t);if(!s||("get"in s?!A.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return A[t]}}}Object.defineProperty(e,r,s)}:function(e,A,t,r){if(r===undefined)r=t;e[r]=A[t]});var s=this&&this.__setModuleDefault||(Object.create?function(e,A){Object.defineProperty(e,"default",{enumerable:true,value:A})}:function(e,A){e["default"]=A});var o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var A={};if(e!=null)for(var t in e)if(t!=="default"&&Object.prototype.hasOwnProperty.call(e,t))r(A,e,t);s(A,e);return A};Object.defineProperty(A,"__esModule",{value:true});A.getOctokitOptions=A.GitHub=A.defaults=A.context=void 0;const n=o(t(1648));const i=o(t(5156));const a=t(1897);const c=t(4935);const g=t(8082);A.context=new n.Context;const E=i.getApiBaseUrl();A.defaults={baseUrl:E,request:{agent:i.getProxyAgent(E),fetch:i.getProxyFetch(E)}};A.GitHub=a.Octokit.plugin(c.restEndpointMethods,g.paginateRest).defaults(A.defaults);function getOctokitOptions(e,A){const t=Object.assign({},A||{});const r=i.getAuthString(e,t);if(r){t.auth=r}return t}A.getOctokitOptions=getOctokitOptions},4552:function(e,A){var t=this&&this.__awaiter||function(e,A,t,r){function adopt(e){return e instanceof t?e:new t((function(A){A(e)}))}return new(t||(t=Promise))((function(t,s){function fulfilled(e){try{step(r.next(e))}catch(e){s(e)}}function rejected(e){try{step(r["throw"](e))}catch(e){s(e)}}function step(e){e.done?t(e.value):adopt(e.value).then(fulfilled,rejected)}step((r=r.apply(e,A||[])).next())}))};Object.defineProperty(A,"__esModule",{value:true});A.PersonalAccessTokenCredentialHandler=A.BearerCredentialHandler=A.BasicCredentialHandler=void 0;class BasicCredentialHandler{constructor(e,A){this.username=e;this.password=A}prepareRequest(e){if(!e.headers){throw Error("The request has no headers")}e.headers["Authorization"]=`Basic ${Buffer.from(`${this.username}:${this.password}`).toString("base64")}`}canHandleAuthentication(){return false}handleAuthentication(){return t(this,void 0,void 0,(function*(){throw new Error("not implemented")}))}}A.BasicCredentialHandler=BasicCredentialHandler;class BearerCredentialHandler{constructor(e){this.token=e}prepareRequest(e){if(!e.headers){throw Error("The request has no headers")}e.headers["Authorization"]=`Bearer ${this.token}`}canHandleAuthentication(){return false}handleAuthentication(){return t(this,void 0,void 0,(function*(){throw new Error("not implemented")}))}}A.BearerCredentialHandler=BearerCredentialHandler;class PersonalAccessTokenCredentialHandler{constructor(e){this.token=e}prepareRequest(e){if(!e.headers){throw Error("The request has no headers")}e.headers["Authorization"]=`Basic ${Buffer.from(`PAT:${this.token}`).toString("base64")}`}canHandleAuthentication(){return false}handleAuthentication(){return t(this,void 0,void 0,(function*(){throw new Error("not implemented")}))}}A.PersonalAccessTokenCredentialHandler=PersonalAccessTokenCredentialHandler},4844:function(e,A,t){var r=this&&this.__createBinding||(Object.create?function(e,A,t,r){if(r===undefined)r=t;var s=Object.getOwnPropertyDescriptor(A,t);if(!s||("get"in s?!A.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return A[t]}}}Object.defineProperty(e,r,s)}:function(e,A,t,r){if(r===undefined)r=t;e[r]=A[t]});var s=this&&this.__setModuleDefault||(Object.create?function(e,A){Object.defineProperty(e,"default",{enumerable:true,value:A})}:function(e,A){e["default"]=A});var o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var A={};if(e!=null)for(var t in e)if(t!=="default"&&Object.prototype.hasOwnProperty.call(e,t))r(A,e,t);s(A,e);return A};var n=this&&this.__awaiter||function(e,A,t,r){function adopt(e){return e instanceof t?e:new t((function(A){A(e)}))}return new(t||(t=Promise))((function(t,s){function fulfilled(e){try{step(r.next(e))}catch(e){s(e)}}function rejected(e){try{step(r["throw"](e))}catch(e){s(e)}}function step(e){e.done?t(e.value):adopt(e.value).then(fulfilled,rejected)}step((r=r.apply(e,A||[])).next())}))};Object.defineProperty(A,"__esModule",{value:true});A.HttpClient=A.isHttps=A.HttpClientResponse=A.HttpClientError=A.getProxyUrl=A.MediaTypes=A.Headers=A.HttpCodes=void 0;const i=o(t(8611));const a=o(t(5692));const c=o(t(4988));const g=o(t(770));const E=t(6752);var l;(function(e){e[e["OK"]=200]="OK";e[e["MultipleChoices"]=300]="MultipleChoices";e[e["MovedPermanently"]=301]="MovedPermanently";e[e["ResourceMoved"]=302]="ResourceMoved";e[e["SeeOther"]=303]="SeeOther";e[e["NotModified"]=304]="NotModified";e[e["UseProxy"]=305]="UseProxy";e[e["SwitchProxy"]=306]="SwitchProxy";e[e["TemporaryRedirect"]=307]="TemporaryRedirect";e[e["PermanentRedirect"]=308]="PermanentRedirect";e[e["BadRequest"]=400]="BadRequest";e[e["Unauthorized"]=401]="Unauthorized";e[e["PaymentRequired"]=402]="PaymentRequired";e[e["Forbidden"]=403]="Forbidden";e[e["NotFound"]=404]="NotFound";e[e["MethodNotAllowed"]=405]="MethodNotAllowed";e[e["NotAcceptable"]=406]="NotAcceptable";e[e["ProxyAuthenticationRequired"]=407]="ProxyAuthenticationRequired";e[e["RequestTimeout"]=408]="RequestTimeout";e[e["Conflict"]=409]="Conflict";e[e["Gone"]=410]="Gone";e[e["TooManyRequests"]=429]="TooManyRequests";e[e["InternalServerError"]=500]="InternalServerError";e[e["NotImplemented"]=501]="NotImplemented";e[e["BadGateway"]=502]="BadGateway";e[e["ServiceUnavailable"]=503]="ServiceUnavailable";e[e["GatewayTimeout"]=504]="GatewayTimeout"})(l||(A.HttpCodes=l={}));var u;(function(e){e["Accept"]="accept";e["ContentType"]="content-type"})(u||(A.Headers=u={}));var h;(function(e){e["ApplicationJson"]="application/json"})(h||(A.MediaTypes=h={}));function getProxyUrl(e){const A=c.getProxyUrl(new URL(e));return A?A.href:""}A.getProxyUrl=getProxyUrl;const Q=[l.MovedPermanently,l.ResourceMoved,l.SeeOther,l.TemporaryRedirect,l.PermanentRedirect];const C=[l.BadGateway,l.ServiceUnavailable,l.GatewayTimeout];const B=["OPTIONS","GET","DELETE","HEAD"];const I=10;const d=5;class HttpClientError extends Error{constructor(e,A){super(e);this.name="HttpClientError";this.statusCode=A;Object.setPrototypeOf(this,HttpClientError.prototype)}}A.HttpClientError=HttpClientError;class HttpClientResponse{constructor(e){this.message=e}readBody(){return n(this,void 0,void 0,(function*(){return new Promise((e=>n(this,void 0,void 0,(function*(){let A=Buffer.alloc(0);this.message.on("data",(e=>{A=Buffer.concat([A,e])}));this.message.on("end",(()=>{e(A.toString())}))}))))}))}readBodyBuffer(){return n(this,void 0,void 0,(function*(){return new Promise((e=>n(this,void 0,void 0,(function*(){const A=[];this.message.on("data",(e=>{A.push(e)}));this.message.on("end",(()=>{e(Buffer.concat(A))}))}))))}))}}A.HttpClientResponse=HttpClientResponse;function isHttps(e){const A=new URL(e);return A.protocol==="https:"}A.isHttps=isHttps;class HttpClient{constructor(e,A,t){this._ignoreSslError=false;this._allowRedirects=true;this._allowRedirectDowngrade=false;this._maxRedirects=50;this._allowRetries=false;this._maxRetries=1;this._keepAlive=false;this._disposed=false;this.userAgent=e;this.handlers=A||[];this.requestOptions=t;if(t){if(t.ignoreSslError!=null){this._ignoreSslError=t.ignoreSslError}this._socketTimeout=t.socketTimeout;if(t.allowRedirects!=null){this._allowRedirects=t.allowRedirects}if(t.allowRedirectDowngrade!=null){this._allowRedirectDowngrade=t.allowRedirectDowngrade}if(t.maxRedirects!=null){this._maxRedirects=Math.max(t.maxRedirects,0)}if(t.keepAlive!=null){this._keepAlive=t.keepAlive}if(t.allowRetries!=null){this._allowRetries=t.allowRetries}if(t.maxRetries!=null){this._maxRetries=t.maxRetries}}}options(e,A){return n(this,void 0,void 0,(function*(){return this.request("OPTIONS",e,null,A||{})}))}get(e,A){return n(this,void 0,void 0,(function*(){return this.request("GET",e,null,A||{})}))}del(e,A){return n(this,void 0,void 0,(function*(){return this.request("DELETE",e,null,A||{})}))}post(e,A,t){return n(this,void 0,void 0,(function*(){return this.request("POST",e,A,t||{})}))}patch(e,A,t){return n(this,void 0,void 0,(function*(){return this.request("PATCH",e,A,t||{})}))}put(e,A,t){return n(this,void 0,void 0,(function*(){return this.request("PUT",e,A,t||{})}))}head(e,A){return n(this,void 0,void 0,(function*(){return this.request("HEAD",e,null,A||{})}))}sendStream(e,A,t,r){return n(this,void 0,void 0,(function*(){return this.request(e,A,t,r)}))}getJson(e,A={}){return n(this,void 0,void 0,(function*(){A[u.Accept]=this._getExistingOrDefaultHeader(A,u.Accept,h.ApplicationJson);const t=yield this.get(e,A);return this._processResponse(t,this.requestOptions)}))}postJson(e,A,t={}){return n(this,void 0,void 0,(function*(){const r=JSON.stringify(A,null,2);t[u.Accept]=this._getExistingOrDefaultHeader(t,u.Accept,h.ApplicationJson);t[u.ContentType]=this._getExistingOrDefaultHeader(t,u.ContentType,h.ApplicationJson);const s=yield this.post(e,r,t);return this._processResponse(s,this.requestOptions)}))}putJson(e,A,t={}){return n(this,void 0,void 0,(function*(){const r=JSON.stringify(A,null,2);t[u.Accept]=this._getExistingOrDefaultHeader(t,u.Accept,h.ApplicationJson);t[u.ContentType]=this._getExistingOrDefaultHeader(t,u.ContentType,h.ApplicationJson);const s=yield this.put(e,r,t);return this._processResponse(s,this.requestOptions)}))}patchJson(e,A,t={}){return n(this,void 0,void 0,(function*(){const r=JSON.stringify(A,null,2);t[u.Accept]=this._getExistingOrDefaultHeader(t,u.Accept,h.ApplicationJson);t[u.ContentType]=this._getExistingOrDefaultHeader(t,u.ContentType,h.ApplicationJson);const s=yield this.patch(e,r,t);return this._processResponse(s,this.requestOptions)}))}request(e,A,t,r){return n(this,void 0,void 0,(function*(){if(this._disposed){throw new Error("Client has already been disposed.")}const s=new URL(A);let o=this._prepareRequest(e,s,r);const n=this._allowRetries&&B.includes(e)?this._maxRetries+1:1;let i=0;let a;do{a=yield this.requestRaw(o,t);if(a&&a.message&&a.message.statusCode===l.Unauthorized){let e;for(const A of this.handlers){if(A.canHandleAuthentication(a)){e=A;break}}if(e){return e.handleAuthentication(this,o,t)}else{return a}}let A=this._maxRedirects;while(a.message.statusCode&&Q.includes(a.message.statusCode)&&this._allowRedirects&&A>0){const n=a.message.headers["location"];if(!n){break}const i=new URL(n);if(s.protocol==="https:"&&s.protocol!==i.protocol&&!this._allowRedirectDowngrade){throw new Error("Redirect from HTTPS to HTTP protocol. This downgrade is not allowed for security reasons. If you want to allow this behavior, set the allowRedirectDowngrade option to true.")}yield a.readBody();if(i.hostname!==s.hostname){for(const e in r){if(e.toLowerCase()==="authorization"){delete r[e]}}}o=this._prepareRequest(e,i,r);a=yield this.requestRaw(o,t);A--}if(!a.message.statusCode||!C.includes(a.message.statusCode)){return a}i+=1;if(i<n){yield a.readBody();yield this._performExponentialBackoff(i)}}while(i<n);return a}))}dispose(){if(this._agent){this._agent.destroy()}this._disposed=true}requestRaw(e,A){return n(this,void 0,void 0,(function*(){return new Promise(((t,r)=>{function callbackForResult(e,A){if(e){r(e)}else if(!A){r(new Error("Unknown error"))}else{t(A)}}this.requestRawWithCallback(e,A,callbackForResult)}))}))}requestRawWithCallback(e,A,t){if(typeof A==="string"){if(!e.options.headers){e.options.headers={}}e.options.headers["Content-Length"]=Buffer.byteLength(A,"utf8")}let r=false;function handleResult(e,A){if(!r){r=true;t(e,A)}}const s=e.httpModule.request(e.options,(e=>{const A=new HttpClientResponse(e);handleResult(undefined,A)}));let o;s.on("socket",(e=>{o=e}));s.setTimeout(this._socketTimeout||3*6e4,(()=>{if(o){o.end()}handleResult(new Error(`Request timeout: ${e.options.path}`))}));s.on("error",(function(e){handleResult(e)}));if(A&&typeof A==="string"){s.write(A,"utf8")}if(A&&typeof A!=="string"){A.on("close",(function(){s.end()}));A.pipe(s)}else{s.end()}}getAgent(e){const A=new URL(e);return this._getAgent(A)}getAgentDispatcher(e){const A=new URL(e);const t=c.getProxyUrl(A);const r=t&&t.hostname;if(!r){return}return this._getProxyAgentDispatcher(A,t)}_prepareRequest(e,A,t){const r={};r.parsedUrl=A;const s=r.parsedUrl.protocol==="https:";r.httpModule=s?a:i;const o=s?443:80;r.options={};r.options.host=r.parsedUrl.hostname;r.options.port=r.parsedUrl.port?parseInt(r.parsedUrl.port):o;r.options.path=(r.parsedUrl.pathname||"")+(r.parsedUrl.search||"");r.options.method=e;r.options.headers=this._mergeHeaders(t);if(this.userAgent!=null){r.options.headers["user-agent"]=this.userAgent}r.options.agent=this._getAgent(r.parsedUrl);if(this.handlers){for(const e of this.handlers){e.prepareRequest(r.options)}}return r}_mergeHeaders(e){if(this.requestOptions&&this.requestOptions.headers){return Object.assign({},lowercaseKeys(this.requestOptions.headers),lowercaseKeys(e||{}))}return lowercaseKeys(e||{})}_getExistingOrDefaultHeader(e,A,t){let r;if(this.requestOptions&&this.requestOptions.headers){r=lowercaseKeys(this.requestOptions.headers)[A]}return e[A]||r||t}_getAgent(e){let A;const t=c.getProxyUrl(e);const r=t&&t.hostname;if(this._keepAlive&&r){A=this._proxyAgent}if(!r){A=this._agent}if(A){return A}const s=e.protocol==="https:";let o=100;if(this.requestOptions){o=this.requestOptions.maxSockets||i.globalAgent.maxSockets}if(t&&t.hostname){const e={maxSockets:o,keepAlive:this._keepAlive,proxy:Object.assign(Object.assign({},(t.username||t.password)&&{proxyAuth:`${t.username}:${t.password}`}),{host:t.hostname,port:t.port})};let r;const n=t.protocol==="https:";if(s){r=n?g.httpsOverHttps:g.httpsOverHttp}else{r=n?g.httpOverHttps:g.httpOverHttp}A=r(e);this._proxyAgent=A}if(!A){const e={keepAlive:this._keepAlive,maxSockets:o};A=s?new a.Agent(e):new i.Agent(e);this._agent=A}if(s&&this._ignoreSslError){A.options=Object.assign(A.options||{},{rejectUnauthorized:false})}return A}_getProxyAgentDispatcher(e,A){let t;if(this._keepAlive){t=this._proxyAgentDispatcher}if(t){return t}const r=e.protocol==="https:";t=new E.ProxyAgent(Object.assign({uri:A.href,pipelining:!this._keepAlive?0:1},(A.username||A.password)&&{token:`Basic ${Buffer.from(`${A.username}:${A.password}`).toString("base64")}`}));this._proxyAgentDispatcher=t;if(r&&this._ignoreSslError){t.options=Object.assign(t.options.requestTls||{},{rejectUnauthorized:false})}return t}_performExponentialBackoff(e){return n(this,void 0,void 0,(function*(){e=Math.min(I,e);const A=d*Math.pow(2,e);return new Promise((e=>setTimeout((()=>e()),A)))}))}_processResponse(e,A){return n(this,void 0,void 0,(function*(){return new Promise(((t,r)=>n(this,void 0,void 0,(function*(){const s=e.message.statusCode||0;const o={statusCode:s,result:null,headers:{}};if(s===l.NotFound){t(o)}function dateTimeDeserializer(e,A){if(typeof A==="string"){const e=new Date(A);if(!isNaN(e.valueOf())){return e}}return A}let n;let i;try{i=yield e.readBody();if(i&&i.length>0){if(A&&A.deserializeDates){n=JSON.parse(i,dateTimeDeserializer)}else{n=JSON.parse(i)}o.result=n}o.headers=e.message.headers}catch(e){}if(s>299){let e;if(n&&n.message){e=n.message}else if(i&&i.length>0){e=i}else{e=`Failed request: (${s})`}const A=new HttpClientError(e,s);A.result=o.result;r(A)}else{t(o)}}))))}))}}A.HttpClient=HttpClient;const lowercaseKeys=e=>Object.keys(e).reduce(((A,t)=>(A[t.toLowerCase()]=e[t],A)),{})},4988:(e,A)=>{Object.defineProperty(A,"__esModule",{value:true});A.checkBypass=A.getProxyUrl=void 0;function getProxyUrl(e){const A=e.protocol==="https:";if(checkBypass(e)){return undefined}const t=(()=>{if(A){return process.env["https_proxy"]||process.env["HTTPS_PROXY"]}else{return process.env["http_proxy"]||process.env["HTTP_PROXY"]}})();if(t){try{return new DecodedURL(t)}catch(e){if(!t.startsWith("http://")&&!t.startsWith("https://"))return new DecodedURL(`http://${t}`)}}else{return undefined}}A.getProxyUrl=getProxyUrl;function checkBypass(e){if(!e.hostname){return false}const A=e.hostname;if(isLoopbackAddress(A)){return true}const t=process.env["no_proxy"]||process.env["NO_PROXY"]||"";if(!t){return false}let r;if(e.port){r=Number(e.port)}else if(e.protocol==="http:"){r=80}else if(e.protocol==="https:"){r=443}const s=[e.hostname.toUpperCase()];if(typeof r==="number"){s.push(`${s[0]}:${r}`)}for(const e of t.split(",").map((e=>e.trim().toUpperCase())).filter((e=>e))){if(e==="*"||s.some((A=>A===e||A.endsWith(`.${e}`)||e.startsWith(".")&&A.endsWith(`${e}`)))){return true}}return false}A.checkBypass=checkBypass;function isLoopbackAddress(e){const A=e.toLowerCase();return A==="localhost"||A.startsWith("127.")||A.startsWith("[::1]")||A.startsWith("[0:0:0:0:0:0:0:1]")}class DecodedURL extends URL{constructor(e,A){super(e,A);this._decodedUsername=decodeURIComponent(super.username);this._decodedPassword=decodeURIComponent(super.password)}get username(){return this._decodedUsername}get password(){return this._decodedPassword}}},5207:function(e,A,t){var r=this&&this.__createBinding||(Object.create?function(e,A,t,r){if(r===undefined)r=t;Object.defineProperty(e,r,{enumerable:true,get:function(){return A[t]}})}:function(e,A,t,r){if(r===undefined)r=t;e[r]=A[t]});var s=this&&this.__setModuleDefault||(Object.create?function(e,A){Object.defineProperty(e,"default",{enumerable:true,value:A})}:function(e,A){e["default"]=A});var o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var A={};if(e!=null)for(var t in e)if(t!=="default"&&Object.hasOwnProperty.call(e,t))r(A,e,t);s(A,e);return A};var n=this&&this.__awaiter||function(e,A,t,r){function adopt(e){return e instanceof t?e:new t((function(A){A(e)}))}return new(t||(t=Promise))((function(t,s){function fulfilled(e){try{step(r.next(e))}catch(e){s(e)}}function rejected(e){try{step(r["throw"](e))}catch(e){s(e)}}function step(e){e.done?t(e.value):adopt(e.value).then(fulfilled,rejected)}step((r=r.apply(e,A||[])).next())}))};var i;Object.defineProperty(A,"__esModule",{value:true});A.getCmdPath=A.tryGetExecutablePath=A.isRooted=A.isDirectory=A.exists=A.READONLY=A.UV_FS_O_EXLOCK=A.IS_WINDOWS=A.unlink=A.symlink=A.stat=A.rmdir=A.rm=A.rename=A.readlink=A.readdir=A.open=A.mkdir=A.lstat=A.copyFile=A.chmod=void 0;const a=o(t(9896));const c=o(t(6928));i=a.promises,A.chmod=i.chmod,A.copyFile=i.copyFile,A.lstat=i.lstat,A.mkdir=i.mkdir,A.open=i.open,A.readdir=i.readdir,A.readlink=i.readlink,A.rename=i.rename,A.rm=i.rm,A.rmdir=i.rmdir,A.stat=i.stat,A.symlink=i.symlink,A.unlink=i.unlink;A.IS_WINDOWS=process.platform==="win32";A.UV_FS_O_EXLOCK=268435456;A.READONLY=a.constants.O_RDONLY;function exists(e){return n(this,void 0,void 0,(function*(){try{yield A.stat(e)}catch(e){if(e.code==="ENOENT"){return false}throw e}return true}))}A.exists=exists;function isDirectory(e,t=false){return n(this,void 0,void 0,(function*(){const r=t?yield A.stat(e):yield A.lstat(e);return r.isDirectory()}))}A.isDirectory=isDirectory;function isRooted(e){e=normalizeSeparators(e);if(!e){throw new Error('isRooted() parameter "p" cannot be empty')}if(A.IS_WINDOWS){return e.startsWith("\\")||/^[A-Z]:/i.test(e)}return e.startsWith("/")}A.isRooted=isRooted;function tryGetExecutablePath(e,t){return n(this,void 0,void 0,(function*(){let r=undefined;try{r=yield A.stat(e)}catch(A){if(A.code!=="ENOENT"){console.log(`Unexpected error attempting to determine if executable file exists '${e}': ${A}`)}}if(r&&r.isFile()){if(A.IS_WINDOWS){const A=c.extname(e).toUpperCase();if(t.some((e=>e.toUpperCase()===A))){return e}}else{if(isUnixExecutable(r)){return e}}}const s=e;for(const o of t){e=s+o;r=undefined;try{r=yield A.stat(e)}catch(A){if(A.code!=="ENOENT"){console.log(`Unexpected error attempting to determine if executable file exists '${e}': ${A}`)}}if(r&&r.isFile()){if(A.IS_WINDOWS){try{const t=c.dirname(e);const r=c.basename(e).toUpperCase();for(const s of yield A.readdir(t)){if(r===s.toUpperCase()){e=c.join(t,s);break}}}catch(A){console.log(`Unexpected error attempting to determine the actual case of the file '${e}': ${A}`)}return e}else{if(isUnixExecutable(r)){return e}}}}return""}))}A.tryGetExecutablePath=tryGetExecutablePath;function normalizeSeparators(e){e=e||"";if(A.IS_WINDOWS){e=e.replace(/\//g,"\\");return e.replace(/\\\\+/g,"\\")}return e.replace(/\/\/+/g,"/")}function isUnixExecutable(e){return(e.mode&1)>0||(e.mode&8)>0&&e.gid===process.getgid()||(e.mode&64)>0&&e.uid===process.getuid()}function getCmdPath(){var e;return(e=process.env["COMSPEC"])!==null&&e!==void 0?e:`cmd.exe`}A.getCmdPath=getCmdPath},4994:function(e,A,t){var r=this&&this.__createBinding||(Object.create?function(e,A,t,r){if(r===undefined)r=t;Object.defineProperty(e,r,{enumerable:true,get:function(){return A[t]}})}:function(e,A,t,r){if(r===undefined)r=t;e[r]=A[t]});var s=this&&this.__setModuleDefault||(Object.create?function(e,A){Object.defineProperty(e,"default",{enumerable:true,value:A})}:function(e,A){e["default"]=A});var o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var A={};if(e!=null)for(var t in e)if(t!=="default"&&Object.hasOwnProperty.call(e,t))r(A,e,t);s(A,e);return A};var n=this&&this.__awaiter||function(e,A,t,r){function adopt(e){return e instanceof t?e:new t((function(A){A(e)}))}return new(t||(t=Promise))((function(t,s){function fulfilled(e){try{step(r.next(e))}catch(e){s(e)}}function rejected(e){try{step(r["throw"](e))}catch(e){s(e)}}function step(e){e.done?t(e.value):adopt(e.value).then(fulfilled,rejected)}step((r=r.apply(e,A||[])).next())}))};Object.defineProperty(A,"__esModule",{value:true});A.findInPath=A.which=A.mkdirP=A.rmRF=A.mv=A.cp=void 0;const i=t(2613);const a=o(t(6928));const c=o(t(5207));function cp(e,A,t={}){return n(this,void 0,void 0,(function*(){const{force:r,recursive:s,copySourceDirectory:o}=readCopyOptions(t);const n=(yield c.exists(A))?yield c.stat(A):null;if(n&&n.isFile()&&!r){return}const i=n&&n.isDirectory()&&o?a.join(A,a.basename(e)):A;if(!(yield c.exists(e))){throw new Error(`no such file or directory: ${e}`)}const g=yield c.stat(e);if(g.isDirectory()){if(!s){throw new Error(`Failed to copy. ${e} is a directory, but tried to copy without recursive flag.`)}else{yield cpDirRecursive(e,i,0,r)}}else{if(a.relative(e,i)===""){throw new Error(`'${i}' and '${e}' are the same file`)}yield copyFile(e,i,r)}}))}A.cp=cp;function mv(e,A,t={}){return n(this,void 0,void 0,(function*(){if(yield c.exists(A)){let r=true;if(yield c.isDirectory(A)){A=a.join(A,a.basename(e));r=yield c.exists(A)}if(r){if(t.force==null||t.force){yield rmRF(A)}else{throw new Error("Destination already exists")}}}yield mkdirP(a.dirname(A));yield c.rename(e,A)}))}A.mv=mv;function rmRF(e){return n(this,void 0,void 0,(function*(){if(c.IS_WINDOWS){if(/[*"<>|]/.test(e)){throw new Error('File path must not contain `*`, `"`, `<`, `>` or `|` on Windows')}}try{yield c.rm(e,{force:true,maxRetries:3,recursive:true,retryDelay:300})}catch(e){throw new Error(`File was unable to be removed ${e}`)}}))}A.rmRF=rmRF;function mkdirP(e){return n(this,void 0,void 0,(function*(){i.ok(e,"a path argument must be provided");yield c.mkdir(e,{recursive:true})}))}A.mkdirP=mkdirP;function which(e,A){return n(this,void 0,void 0,(function*(){if(!e){throw new Error("parameter 'tool' is required")}if(A){const A=yield which(e,false);if(!A){if(c.IS_WINDOWS){throw new Error(`Unable to locate executable file: ${e}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also verify the file has a valid extension for an executable file.`)}else{throw new Error(`Unable to locate executable file: ${e}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also check the file mode to verify the file is executable.`)}}return A}const t=yield findInPath(e);if(t&&t.length>0){return t[0]}return""}))}A.which=which;function findInPath(e){return n(this,void 0,void 0,(function*(){if(!e){throw new Error("parameter 'tool' is required")}const A=[];if(c.IS_WINDOWS&&process.env["PATHEXT"]){for(const e of process.env["PATHEXT"].split(a.delimiter)){if(e){A.push(e)}}}if(c.isRooted(e)){const t=yield c.tryGetExecutablePath(e,A);if(t){return[t]}return[]}if(e.includes(a.sep)){return[]}const t=[];if(process.env.PATH){for(const e of process.env.PATH.split(a.delimiter)){if(e){t.push(e)}}}const r=[];for(const s of t){const t=yield c.tryGetExecutablePath(a.join(s,e),A);if(t){r.push(t)}}return r}))}A.findInPath=findInPath;function readCopyOptions(e){const A=e.force==null?true:e.force;const t=Boolean(e.recursive);const r=e.copySourceDirectory==null?true:Boolean(e.copySourceDirectory);return{force:A,recursive:t,copySourceDirectory:r}}function cpDirRecursive(e,A,t,r){return n(this,void 0,void 0,(function*(){if(t>=255)return;t++;yield mkdirP(A);const s=yield c.readdir(e);for(const o of s){const s=`${e}/${o}`;const n=`${A}/${o}`;const i=yield c.lstat(s);if(i.isDirectory()){yield cpDirRecursive(s,n,t,r)}else{yield copyFile(s,n,r)}}yield c.chmod(A,(yield c.stat(e)).mode)}))}function copyFile(e,A,t){return n(this,void 0,void 0,(function*(){if((yield c.lstat(e)).isSymbolicLink()){try{yield c.lstat(A);yield c.unlink(A)}catch(e){if(e.code==="EPERM"){yield c.chmod(A,"0666");yield c.unlink(A)}}const t=yield c.readlink(e);yield c.symlink(t,A,c.IS_WINDOWS?"junction":null)}else if(!(yield c.exists(A))||t){yield c.copyFile(e,A)}}))}},7864:e=>{var A=Object.defineProperty;var t=Object.getOwnPropertyDescriptor;var r=Object.getOwnPropertyNames;var s=Object.prototype.hasOwnProperty;var __export=(e,t)=>{for(var r in t)A(e,r,{get:t[r],enumerable:true})};var __copyProps=(e,o,n,i)=>{if(o&&typeof o==="object"||typeof o==="function"){for(let a of r(o))if(!s.call(e,a)&&a!==n)A(e,a,{get:()=>o[a],enumerable:!(i=t(o,a))||i.enumerable})}return e};var __toCommonJS=e=>__copyProps(A({},"__esModule",{value:true}),e);var o={};__export(o,{createTokenAuth:()=>c});e.exports=__toCommonJS(o);var n=/^v1\./;var i=/^ghs_/;var a=/^ghu_/;async function auth(e){const A=e.split(/\./).length===3;const t=n.test(e)||i.test(e);const r=a.test(e);const s=A?"app":t?"installation":r?"user-to-server":"oauth";return{type:"token",token:e,tokenType:s}}function withAuthorizationPrefix(e){if(e.split(/\./).length===3){return`bearer ${e}`}return`token ${e}`}async function hook(e,A,t,r){const s=A.endpoint.merge(t,r);s.headers.authorization=withAuthorizationPrefix(e);return A(s)}var c=function createTokenAuth2(e){if(!e){throw new Error("[@octokit/auth-token] No token passed to createTokenAuth")}if(typeof e!=="string"){throw new Error("[@octokit/auth-token] Token passed to createTokenAuth is not a string")}e=e.replace(/^(token|bearer) +/i,"");return Object.assign(auth.bind(null,e),{hook:hook.bind(null,e)})};0&&0},1897:(e,A,t)=>{var r=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var o=Object.getOwnPropertyNames;var n=Object.prototype.hasOwnProperty;var __export=(e,A)=>{for(var t in A)r(e,t,{get:A[t],enumerable:true})};var __copyProps=(e,A,t,i)=>{if(A&&typeof A==="object"||typeof A==="function"){for(let a of o(A))if(!n.call(e,a)&&a!==t)r(e,a,{get:()=>A[a],enumerable:!(i=s(A,a))||i.enumerable})}return e};var __toCommonJS=e=>__copyProps(r({},"__esModule",{value:true}),e);var i={};__export(i,{Octokit:()=>B});e.exports=__toCommonJS(i);var a=t(3843);var c=t(2732);var g=t(8636);var E=t(7);var l=t(7864);var u="5.2.2";var noop=()=>{};var h=console.warn.bind(console);var Q=console.error.bind(console);function createLogger(e={}){if(typeof e.debug!=="function"){e.debug=noop}if(typeof e.info!=="function"){e.info=noop}if(typeof e.warn!=="function"){e.warn=h}if(typeof e.error!=="function"){e.error=Q}return e}var C=`octokit-core.js/${u} ${(0,a.getUserAgent)()}`;var B=class{static{this.VERSION=u}static defaults(e){const A=class extends(this){constructor(...A){const t=A[0]||{};if(typeof e==="function"){super(e(t));return}super(Object.assign({},e,t,t.userAgent&&e.userAgent?{userAgent:`${t.userAgent} ${e.userAgent}`}:null))}};return A}static{this.plugins=[]}static plugin(...e){const A=this.plugins;const t=class extends(this){static{this.plugins=A.concat(e.filter((e=>!A.includes(e))))}};return t}constructor(e={}){const A=new c.Collection;const t={baseUrl:g.request.endpoint.DEFAULTS.baseUrl,headers:{},request:Object.assign({},e.request,{hook:A.bind(null,"request")}),mediaType:{previews:[],format:""}};t.headers["user-agent"]=e.userAgent?`${e.userAgent} ${C}`:C;if(e.baseUrl){t.baseUrl=e.baseUrl}if(e.previews){t.mediaType.previews=e.previews}if(e.timeZone){t.headers["time-zone"]=e.timeZone}this.request=g.request.defaults(t);this.graphql=(0,E.withCustomRequest)(this.request).defaults(t);this.log=createLogger(e.log);this.hook=A;if(!e.authStrategy){if(!e.auth){this.auth=async()=>({type:"unauthenticated"})}else{const t=(0,l.createTokenAuth)(e.auth);A.wrap("request",t.hook);this.auth=t}}else{const{authStrategy:t,...r}=e;const s=t(Object.assign({request:this.request,log:this.log,octokit:this,octokitOptions:r},e.auth));A.wrap("request",s.hook);this.auth=s}const r=this.constructor;for(let A=0;A<r.plugins.length;++A){Object.assign(this,r.plugins[A](this,e))}}};0&&0},4471:(e,A,t)=>{var r=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var o=Object.getOwnPropertyNames;var n=Object.prototype.hasOwnProperty;var __export=(e,A)=>{for(var t in A)r(e,t,{get:A[t],enumerable:true})};var __copyProps=(e,A,t,i)=>{if(A&&typeof A==="object"||typeof A==="function"){for(let a of o(A))if(!n.call(e,a)&&a!==t)r(e,a,{get:()=>A[a],enumerable:!(i=s(A,a))||i.enumerable})}return e};var __toCommonJS=e=>__copyProps(r({},"__esModule",{value:true}),e);var i={};__export(i,{endpoint:()=>u});e.exports=__toCommonJS(i);var a=t(3843);var c="9.0.6";var g=`octokit-endpoint.js/${c} ${(0,a.getUserAgent)()}`;var E={method:"GET",baseUrl:"https://api.github.com",headers:{accept:"application/vnd.github.v3+json","user-agent":g},mediaType:{format:""}};function lowercaseKeys(e){if(!e){return{}}return Object.keys(e).reduce(((A,t)=>{A[t.toLowerCase()]=e[t];return A}),{})}function isPlainObject(e){if(typeof e!=="object"||e===null)return false;if(Object.prototype.toString.call(e)!=="[object Object]")return false;const A=Object.getPrototypeOf(e);if(A===null)return true;const t=Object.prototype.hasOwnProperty.call(A,"constructor")&&A.constructor;return typeof t==="function"&&t instanceof t&&Function.prototype.call(t)===Function.prototype.call(e)}function mergeDeep(e,A){const t=Object.assign({},e);Object.keys(A).forEach((r=>{if(isPlainObject(A[r])){if(!(r in e))Object.assign(t,{[r]:A[r]});else t[r]=mergeDeep(e[r],A[r])}else{Object.assign(t,{[r]:A[r]})}}));return t}function removeUndefinedProperties(e){for(const A in e){if(e[A]===void 0){delete e[A]}}return e}function merge(e,A,t){if(typeof A==="string"){let[e,r]=A.split(" ");t=Object.assign(r?{method:e,url:r}:{url:e},t)}else{t=Object.assign({},A)}t.headers=lowercaseKeys(t.headers);removeUndefinedProperties(t);removeUndefinedProperties(t.headers);const r=mergeDeep(e||{},t);if(t.url==="/graphql"){if(e&&e.mediaType.previews?.length){r.mediaType.previews=e.mediaType.previews.filter((e=>!r.mediaType.previews.includes(e))).concat(r.mediaType.previews)}r.mediaType.previews=(r.mediaType.previews||[]).map((e=>e.replace(/-preview/,"")))}return r}function addQueryParameters(e,A){const t=/\?/.test(e)?"&":"?";const r=Object.keys(A);if(r.length===0){return e}return e+t+r.map((e=>{if(e==="q"){return"q="+A.q.split("+").map(encodeURIComponent).join("+")}return`${e}=${encodeURIComponent(A[e])}`})).join("&")}var l=/\{[^{}}]+\}/g;function removeNonChars(e){return e.replace(/(?:^\W+)|(?:(?<!\W)\W+$)/g,"").split(/,/)}function extractUrlVariableNames(e){const A=e.match(l);if(!A){return[]}return A.map(removeNonChars).reduce(((e,A)=>e.concat(A)),[])}function omit(e,A){const t={__proto__:null};for(const r of Object.keys(e)){if(A.indexOf(r)===-1){t[r]=e[r]}}return t}function encodeReserved(e){return e.split(/(%[0-9A-Fa-f]{2})/g).map((function(e){if(!/%[0-9A-Fa-f]/.test(e)){e=encodeURI(e).replace(/%5B/g,"[").replace(/%5D/g,"]")}return e})).join("")}function encodeUnreserved(e){return encodeURIComponent(e).replace(/[!'()*]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()}))}function encodeValue(e,A,t){A=e==="+"||e==="#"?encodeReserved(A):encodeUnreserved(A);if(t){return encodeUnreserved(t)+"="+A}else{return A}}function isDefined(e){return e!==void 0&&e!==null}function isKeyOperator(e){return e===";"||e==="&"||e==="?"}function getValues(e,A,t,r){var s=e[t],o=[];if(isDefined(s)&&s!==""){if(typeof s==="string"||typeof s==="number"||typeof s==="boolean"){s=s.toString();if(r&&r!=="*"){s=s.substring(0,parseInt(r,10))}o.push(encodeValue(A,s,isKeyOperator(A)?t:""))}else{if(r==="*"){if(Array.isArray(s)){s.filter(isDefined).forEach((function(e){o.push(encodeValue(A,e,isKeyOperator(A)?t:""))}))}else{Object.keys(s).forEach((function(e){if(isDefined(s[e])){o.push(encodeValue(A,s[e],e))}}))}}else{const e=[];if(Array.isArray(s)){s.filter(isDefined).forEach((function(t){e.push(encodeValue(A,t))}))}else{Object.keys(s).forEach((function(t){if(isDefined(s[t])){e.push(encodeUnreserved(t));e.push(encodeValue(A,s[t].toString()))}}))}if(isKeyOperator(A)){o.push(encodeUnreserved(t)+"="+e.join(","))}else if(e.length!==0){o.push(e.join(","))}}}}else{if(A===";"){if(isDefined(s)){o.push(encodeUnreserved(t))}}else if(s===""&&(A==="&"||A==="?")){o.push(encodeUnreserved(t)+"=")}else if(s===""){o.push("")}}return o}function parseUrl(e){return{expand:expand.bind(null,e)}}function expand(e,A){var t=["+","#",".","/",";","?","&"];e=e.replace(/\{([^\{\}]+)\}|([^\{\}]+)/g,(function(e,r,s){if(r){let e="";const s=[];if(t.indexOf(r.charAt(0))!==-1){e=r.charAt(0);r=r.substr(1)}r.split(/,/g).forEach((function(t){var r=/([^:\*]*)(?::(\d+)|(\*))?/.exec(t);s.push(getValues(A,e,r[1],r[2]||r[3]))}));if(e&&e!=="+"){var o=",";if(e==="?"){o="&"}else if(e!=="#"){o=e}return(s.length!==0?e:"")+s.join(o)}else{return s.join(",")}}else{return encodeReserved(s)}}));if(e==="/"){return e}else{return e.replace(/\/$/,"")}}function parse(e){let A=e.method.toUpperCase();let t=(e.url||"/").replace(/:([a-z]\w+)/g,"{$1}");let r=Object.assign({},e.headers);let s;let o=omit(e,["method","baseUrl","url","headers","request","mediaType"]);const n=extractUrlVariableNames(t);t=parseUrl(t).expand(o);if(!/^http/.test(t)){t=e.baseUrl+t}const i=Object.keys(e).filter((e=>n.includes(e))).concat("baseUrl");const a=omit(o,i);const c=/application\/octet-stream/i.test(r.accept);if(!c){if(e.mediaType.format){r.accept=r.accept.split(/,/).map((A=>A.replace(/application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/,`application/vnd$1$2.${e.mediaType.format}`))).join(",")}if(t.endsWith("/graphql")){if(e.mediaType.previews?.length){const A=r.accept.match(/(?<![\w-])[\w-]+(?=-preview)/g)||[];r.accept=A.concat(e.mediaType.previews).map((A=>{const t=e.mediaType.format?`.${e.mediaType.format}`:"+json";return`application/vnd.github.${A}-preview${t}`})).join(",")}}}if(["GET","HEAD"].includes(A)){t=addQueryParameters(t,a)}else{if("data"in a){s=a.data}else{if(Object.keys(a).length){s=a}}}if(!r["content-type"]&&typeof s!=="undefined"){r["content-type"]="application/json; charset=utf-8"}if(["PATCH","PUT"].includes(A)&&typeof s==="undefined"){s=""}return Object.assign({method:A,url:t,headers:r},typeof s!=="undefined"?{body:s}:null,e.request?{request:e.request}:null)}function endpointWithDefaults(e,A,t){return parse(merge(e,A,t))}function withDefaults(e,A){const t=merge(e,A);const r=endpointWithDefaults.bind(null,t);return Object.assign(r,{DEFAULTS:t,defaults:withDefaults.bind(null,t),merge:merge.bind(null,t),parse:parse})}var u=withDefaults(null,E);0&&0},7:(e,A,t)=>{var r=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var o=Object.getOwnPropertyNames;var n=Object.prototype.hasOwnProperty;var __export=(e,A)=>{for(var t in A)r(e,t,{get:A[t],enumerable:true})};var __copyProps=(e,A,t,i)=>{if(A&&typeof A==="object"||typeof A==="function"){for(let a of o(A))if(!n.call(e,a)&&a!==t)r(e,a,{get:()=>A[a],enumerable:!(i=s(A,a))||i.enumerable})}return e};var __toCommonJS=e=>__copyProps(r({},"__esModule",{value:true}),e);var i={};__export(i,{GraphqlResponseError:()=>u,graphql:()=>B,withCustomRequest:()=>withCustomRequest});e.exports=__toCommonJS(i);var a=t(8636);var c=t(3843);var g="7.1.1";var E=t(8636);var l=t(8636);function _buildMessageForResponseErrors(e){return`Request failed due to following response errors:\n`+e.errors.map((e=>` - ${e.message}`)).join("\n")}var u=class extends Error{constructor(e,A,t){super(_buildMessageForResponseErrors(t));this.request=e;this.headers=A;this.response=t;this.name="GraphqlResponseError";this.errors=t.errors;this.data=t.data;if(Error.captureStackTrace){Error.captureStackTrace(this,this.constructor)}}};var h=["method","baseUrl","url","headers","request","query","mediaType"];var Q=["query","method","url"];var C=/\/api\/v3\/?$/;function graphql(e,A,t){if(t){if(typeof A==="string"&&"query"in t){return Promise.reject(new Error(`[@octokit/graphql] "query" cannot be used as variable name`))}for(const e in t){if(!Q.includes(e))continue;return Promise.reject(new Error(`[@octokit/graphql] "${e}" cannot be used as variable name`))}}const r=typeof A==="string"?Object.assign({query:A},t):A;const s=Object.keys(r).reduce(((e,A)=>{if(h.includes(A)){e[A]=r[A];return e}if(!e.variables){e.variables={}}e.variables[A]=r[A];return e}),{});const o=r.baseUrl||e.endpoint.DEFAULTS.baseUrl;if(C.test(o)){s.url=o.replace(C,"/api/graphql")}return e(s).then((e=>{if(e.data.errors){const A={};for(const t of Object.keys(e.headers)){A[t]=e.headers[t]}throw new u(s,A,e.data)}return e.data.data}))}function withDefaults(e,A){const t=e.defaults(A);const newApi=(e,A)=>graphql(t,e,A);return Object.assign(newApi,{defaults:withDefaults.bind(null,t),endpoint:t.endpoint})}var B=withDefaults(a.request,{headers:{"user-agent":`octokit-graphql.js/${g} ${(0,c.getUserAgent)()}`},method:"POST",url:"/graphql"});function withCustomRequest(e){return withDefaults(e,{method:"POST",url:"/graphql"})}0&&0},8082:e=>{var A=Object.defineProperty;var t=Object.getOwnPropertyDescriptor;var r=Object.getOwnPropertyNames;var s=Object.prototype.hasOwnProperty;var __export=(e,t)=>{for(var r in t)A(e,r,{get:t[r],enumerable:true})};var __copyProps=(e,o,n,i)=>{if(o&&typeof o==="object"||typeof o==="function"){for(let a of r(o))if(!s.call(e,a)&&a!==n)A(e,a,{get:()=>o[a],enumerable:!(i=t(o,a))||i.enumerable})}return e};var __toCommonJS=e=>__copyProps(A({},"__esModule",{value:true}),e);var o={};__export(o,{composePaginateRest:()=>i,isPaginatingEndpoint:()=>isPaginatingEndpoint,paginateRest:()=>paginateRest,paginatingEndpoints:()=>a});e.exports=__toCommonJS(o);var n="9.2.2";function normalizePaginatedListResponse(e){if(!e.data){return{...e,data:[]}}const A="total_count"in e.data&&!("url"in e.data);if(!A)return e;const t=e.data.incomplete_results;const r=e.data.repository_selection;const s=e.data.total_count;delete e.data.incomplete_results;delete e.data.repository_selection;delete e.data.total_count;const o=Object.keys(e.data)[0];const n=e.data[o];e.data=n;if(typeof t!=="undefined"){e.data.incomplete_results=t}if(typeof r!=="undefined"){e.data.repository_selection=r}e.data.total_count=s;return e}function iterator(e,A,t){const r=typeof A==="function"?A.endpoint(t):e.request.endpoint(A,t);const s=typeof A==="function"?A:e.request;const o=r.method;const n=r.headers;let i=r.url;return{[Symbol.asyncIterator]:()=>({async next(){if(!i)return{done:true};try{const e=await s({method:o,url:i,headers:n});const A=normalizePaginatedListResponse(e);i=((A.headers.link||"").match(/<([^<>]+)>;\s*rel="next"/)||[])[1];return{value:A}}catch(e){if(e.status!==409)throw e;i="";return{value:{status:200,headers:{},data:[]}}}}})}}function paginate(e,A,t,r){if(typeof t==="function"){r=t;t=void 0}return gather(e,[],iterator(e,A,t)[Symbol.asyncIterator](),r)}function gather(e,A,t,r){return t.next().then((s=>{if(s.done){return A}let o=false;function done(){o=true}A=A.concat(r?r(s.value,done):s.value.data);if(o){return A}return gather(e,A,t,r)}))}var i=Object.assign(paginate,{iterator:iterator});var a=["GET /advisories","GET /app/hook/deliveries","GET /app/installation-requests","GET /app/installations","GET /assignments/{assignment_id}/accepted_assignments","GET /classrooms","GET /classrooms/{classroom_id}/assignments","GET /enterprises/{enterprise}/dependabot/alerts","GET /enterprises/{enterprise}/secret-scanning/alerts","GET /events","GET /gists","GET /gists/public","GET /gists/starred","GET /gists/{gist_id}/comments","GET /gists/{gist_id}/commits","GET /gists/{gist_id}/forks","GET /installation/repositories","GET /issues","GET /licenses","GET /marketplace_listing/plans","GET /marketplace_listing/plans/{plan_id}/accounts","GET /marketplace_listing/stubbed/plans","GET /marketplace_listing/stubbed/plans/{plan_id}/accounts","GET /networks/{owner}/{repo}/events","GET /notifications","GET /organizations","GET /orgs/{org}/actions/cache/usage-by-repository","GET /orgs/{org}/actions/permissions/repositories","GET /orgs/{org}/actions/runners","GET /orgs/{org}/actions/secrets","GET /orgs/{org}/actions/secrets/{secret_name}/repositories","GET /orgs/{org}/actions/variables","GET /orgs/{org}/actions/variables/{name}/repositories","GET /orgs/{org}/blocks","GET /orgs/{org}/code-scanning/alerts","GET /orgs/{org}/codespaces","GET /orgs/{org}/codespaces/secrets","GET /orgs/{org}/codespaces/secrets/{secret_name}/repositories","GET /orgs/{org}/copilot/billing/seats","GET /orgs/{org}/dependabot/alerts","GET /orgs/{org}/dependabot/secrets","GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories","GET /orgs/{org}/events","GET /orgs/{org}/failed_invitations","GET /orgs/{org}/hooks","GET /orgs/{org}/hooks/{hook_id}/deliveries","GET /orgs/{org}/installations","GET /orgs/{org}/invitations","GET /orgs/{org}/invitations/{invitation_id}/teams","GET /orgs/{org}/issues","GET /orgs/{org}/members","GET /orgs/{org}/members/{username}/codespaces","GET /orgs/{org}/migrations","GET /orgs/{org}/migrations/{migration_id}/repositories","GET /orgs/{org}/organization-roles/{role_id}/teams","GET /orgs/{org}/organization-roles/{role_id}/users","GET /orgs/{org}/outside_collaborators","GET /orgs/{org}/packages","GET /orgs/{org}/packages/{package_type}/{package_name}/versions","GET /orgs/{org}/personal-access-token-requests","GET /orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories","GET /orgs/{org}/personal-access-tokens","GET /orgs/{org}/personal-access-tokens/{pat_id}/repositories","GET /orgs/{org}/projects","GET /orgs/{org}/properties/values","GET /orgs/{org}/public_members","GET /orgs/{org}/repos","GET /orgs/{org}/rulesets","GET /orgs/{org}/rulesets/rule-suites","GET /orgs/{org}/secret-scanning/alerts","GET /orgs/{org}/security-advisories","GET /orgs/{org}/teams","GET /orgs/{org}/teams/{team_slug}/discussions","GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments","GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions","GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions","GET /orgs/{org}/teams/{team_slug}/invitations","GET /orgs/{org}/teams/{team_slug}/members","GET /orgs/{org}/teams/{team_slug}/projects","GET /orgs/{org}/teams/{team_slug}/repos","GET /orgs/{org}/teams/{team_slug}/teams","GET /projects/columns/{column_id}/cards","GET /projects/{project_id}/collaborators","GET /projects/{project_id}/columns","GET /repos/{owner}/{repo}/actions/artifacts","GET /repos/{owner}/{repo}/actions/caches","GET /repos/{owner}/{repo}/actions/organization-secrets","GET /repos/{owner}/{repo}/actions/organization-variables","GET /repos/{owner}/{repo}/actions/runners","GET /repos/{owner}/{repo}/actions/runs","GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts","GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs","GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs","GET /repos/{owner}/{repo}/actions/secrets","GET /repos/{owner}/{repo}/actions/variables","GET /repos/{owner}/{repo}/actions/workflows","GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs","GET /repos/{owner}/{repo}/activity","GET /repos/{owner}/{repo}/assignees","GET /repos/{owner}/{repo}/branches","GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations","GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs","GET /repos/{owner}/{repo}/code-scanning/alerts","GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances","GET /repos/{owner}/{repo}/code-scanning/analyses","GET /repos/{owner}/{repo}/codespaces","GET /repos/{owner}/{repo}/codespaces/devcontainers","GET /repos/{owner}/{repo}/codespaces/secrets","GET /repos/{owner}/{repo}/collaborators","GET /repos/{owner}/{repo}/comments","GET /repos/{owner}/{repo}/comments/{comment_id}/reactions","GET /repos/{owner}/{repo}/commits","GET /repos/{owner}/{repo}/commits/{commit_sha}/comments","GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls","GET /repos/{owner}/{repo}/commits/{ref}/check-runs","GET /repos/{owner}/{repo}/commits/{ref}/check-suites","GET /repos/{owner}/{repo}/commits/{ref}/status","GET /repos/{owner}/{repo}/commits/{ref}/statuses","GET /repos/{owner}/{repo}/contributors","GET /repos/{owner}/{repo}/dependabot/alerts","GET /repos/{owner}/{repo}/dependabot/secrets","GET /repos/{owner}/{repo}/deployments","GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses","GET /repos/{owner}/{repo}/environments","GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies","GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/apps","GET /repos/{owner}/{repo}/events","GET /repos/{owner}/{repo}/forks","GET /repos/{owner}/{repo}/hooks","GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries","GET /repos/{owner}/{repo}/invitations","GET /repos/{owner}/{repo}/issues","GET /repos/{owner}/{repo}/issues/comments","GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions","GET /repos/{owner}/{repo}/issues/events","GET /repos/{owner}/{repo}/issues/{issue_number}/comments","GET /repos/{owner}/{repo}/issues/{issue_number}/events","GET /repos/{owner}/{repo}/issues/{issue_number}/labels","GET /repos/{owner}/{repo}/issues/{issue_number}/reactions","GET /repos/{owner}/{repo}/issues/{issue_number}/timeline","GET /repos/{owner}/{repo}/keys","GET /repos/{owner}/{repo}/labels","GET /repos/{owner}/{repo}/milestones","GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels","GET /repos/{owner}/{repo}/notifications","GET /repos/{owner}/{repo}/pages/builds","GET /repos/{owner}/{repo}/projects","GET /repos/{owner}/{repo}/pulls","GET /repos/{owner}/{repo}/pulls/comments","GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions","GET /repos/{owner}/{repo}/pulls/{pull_number}/comments","GET /repos/{owner}/{repo}/pulls/{pull_number}/commits","GET /repos/{owner}/{repo}/pulls/{pull_number}/files","GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews","GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments","GET /repos/{owner}/{repo}/releases","GET /repos/{owner}/{repo}/releases/{release_id}/assets","GET /repos/{owner}/{repo}/releases/{release_id}/reactions","GET /repos/{owner}/{repo}/rules/branches/{branch}","GET /repos/{owner}/{repo}/rulesets","GET /repos/{owner}/{repo}/rulesets/rule-suites","GET /repos/{owner}/{repo}/secret-scanning/alerts","GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations","GET /repos/{owner}/{repo}/security-advisories","GET /repos/{owner}/{repo}/stargazers","GET /repos/{owner}/{repo}/subscribers","GET /repos/{owner}/{repo}/tags","GET /repos/{owner}/{repo}/teams","GET /repos/{owner}/{repo}/topics","GET /repositories","GET /repositories/{repository_id}/environments/{environment_name}/secrets","GET /repositories/{repository_id}/environments/{environment_name}/variables","GET /search/code","GET /search/commits","GET /search/issues","GET /search/labels","GET /search/repositories","GET /search/topics","GET /search/users","GET /teams/{team_id}/discussions","GET /teams/{team_id}/discussions/{discussion_number}/comments","GET /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions","GET /teams/{team_id}/discussions/{discussion_number}/reactions","GET /teams/{team_id}/invitations","GET /teams/{team_id}/members","GET /teams/{team_id}/projects","GET /teams/{team_id}/repos","GET /teams/{team_id}/teams","GET /user/blocks","GET /user/codespaces","GET /user/codespaces/secrets","GET /user/emails","GET /user/followers","GET /user/following","GET /user/gpg_keys","GET /user/installations","GET /user/installations/{installation_id}/repositories","GET /user/issues","GET /user/keys","GET /user/marketplace_purchases","GET /user/marketplace_purchases/stubbed","GET /user/memberships/orgs","GET /user/migrations","GET /user/migrations/{migration_id}/repositories","GET /user/orgs","GET /user/packages","GET /user/packages/{package_type}/{package_name}/versions","GET /user/public_emails","GET /user/repos","GET /user/repository_invitations","GET /user/social_accounts","GET /user/ssh_signing_keys","GET /user/starred","GET /user/subscriptions","GET /user/teams","GET /users","GET /users/{username}/events","GET /users/{username}/events/orgs/{org}","GET /users/{username}/events/public","GET /users/{username}/followers","GET /users/{username}/following","GET /users/{username}/gists","GET /users/{username}/gpg_keys","GET /users/{username}/keys","GET /users/{username}/orgs","GET /users/{username}/packages","GET /users/{username}/projects","GET /users/{username}/received_events","GET /users/{username}/received_events/public","GET /users/{username}/repos","GET /users/{username}/social_accounts","GET /users/{username}/ssh_signing_keys","GET /users/{username}/starred","GET /users/{username}/subscriptions"];function isPaginatingEndpoint(e){if(typeof e==="string"){return a.includes(e)}else{return false}}function paginateRest(e){return{paginate:Object.assign(paginate.bind(null,e),{iterator:iterator.bind(null,e)})}}paginateRest.VERSION=n;0&&0},4935:e=>{var A=Object.defineProperty;var t=Object.getOwnPropertyDescriptor;var r=Object.getOwnPropertyNames;var s=Object.prototype.hasOwnProperty;var __export=(e,t)=>{for(var r in t)A(e,r,{get:t[r],enumerable:true})};var __copyProps=(e,o,n,i)=>{if(o&&typeof o==="object"||typeof o==="function"){for(let a of r(o))if(!s.call(e,a)&&a!==n)A(e,a,{get:()=>o[a],enumerable:!(i=t(o,a))||i.enumerable})}return e};var __toCommonJS=e=>__copyProps(A({},"__esModule",{value:true}),e);var o={};__export(o,{legacyRestEndpointMethods:()=>legacyRestEndpointMethods,restEndpointMethods:()=>restEndpointMethods});e.exports=__toCommonJS(o);var n="10.4.1";var i={actions:{addCustomLabelsToSelfHostedRunnerForOrg:["POST /orgs/{org}/actions/runners/{runner_id}/labels"],addCustomLabelsToSelfHostedRunnerForRepo:["POST /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],addSelectedRepoToOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"],addSelectedRepoToOrgVariable:["PUT /orgs/{org}/actions/variables/{name}/repositories/{repository_id}"],approveWorkflowRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/approve"],cancelWorkflowRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel"],createEnvironmentVariable:["POST /repositories/{repository_id}/environments/{environment_name}/variables"],createOrUpdateEnvironmentSecret:["PUT /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}"],createOrUpdateOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}"],createOrUpdateRepoSecret:["PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}"],createOrgVariable:["POST /orgs/{org}/actions/variables"],createRegistrationTokenForOrg:["POST /orgs/{org}/actions/runners/registration-token"],createRegistrationTokenForRepo:["POST /repos/{owner}/{repo}/actions/runners/registration-token"],createRemoveTokenForOrg:["POST /orgs/{org}/actions/runners/remove-token"],createRemoveTokenForRepo:["POST /repos/{owner}/{repo}/actions/runners/remove-token"],createRepoVariable:["POST /repos/{owner}/{repo}/actions/variables"],createWorkflowDispatch:["POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches"],deleteActionsCacheById:["DELETE /repos/{owner}/{repo}/actions/caches/{cache_id}"],deleteActionsCacheByKey:["DELETE /repos/{owner}/{repo}/actions/caches{?key,ref}"],deleteArtifact:["DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"],deleteEnvironmentSecret:["DELETE /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}"],deleteEnvironmentVariable:["DELETE /repositories/{repository_id}/environments/{environment_name}/variables/{name}"],deleteOrgSecret:["DELETE /orgs/{org}/actions/secrets/{secret_name}"],deleteOrgVariable:["DELETE /orgs/{org}/actions/variables/{name}"],deleteRepoSecret:["DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}"],deleteRepoVariable:["DELETE /repos/{owner}/{repo}/actions/variables/{name}"],deleteSelfHostedRunnerFromOrg:["DELETE /orgs/{org}/actions/runners/{runner_id}"],deleteSelfHostedRunnerFromRepo:["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}"],deleteWorkflowRun:["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}"],deleteWorkflowRunLogs:["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs"],disableSelectedRepositoryGithubActionsOrganization:["DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}"],disableWorkflow:["PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable"],downloadArtifact:["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}"],downloadJobLogsForWorkflowRun:["GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs"],downloadWorkflowRunAttemptLogs:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/logs"],downloadWorkflowRunLogs:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs"],enableSelectedRepositoryGithubActionsOrganization:["PUT /orgs/{org}/actions/permissions/repositories/{repository_id}"],enableWorkflow:["PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable"],forceCancelWorkflowRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/force-cancel"],generateRunnerJitconfigForOrg:["POST /orgs/{org}/actions/runners/generate-jitconfig"],generateRunnerJitconfigForRepo:["POST /repos/{owner}/{repo}/actions/runners/generate-jitconfig"],getActionsCacheList:["GET /repos/{owner}/{repo}/actions/caches"],getActionsCacheUsage:["GET /repos/{owner}/{repo}/actions/cache/usage"],getActionsCacheUsageByRepoForOrg:["GET /orgs/{org}/actions/cache/usage-by-repository"],getActionsCacheUsageForOrg:["GET /orgs/{org}/actions/cache/usage"],getAllowedActionsOrganization:["GET /orgs/{org}/actions/permissions/selected-actions"],getAllowedActionsRepository:["GET /repos/{owner}/{repo}/actions/permissions/selected-actions"],getArtifact:["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"],getCustomOidcSubClaimForRepo:["GET /repos/{owner}/{repo}/actions/oidc/customization/sub"],getEnvironmentPublicKey:["GET /repositories/{repository_id}/environments/{environment_name}/secrets/public-key"],getEnvironmentSecret:["GET /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}"],getEnvironmentVariable:["GET /repositories/{repository_id}/environments/{environment_name}/variables/{name}"],getGithubActionsDefaultWorkflowPermissionsOrganization:["GET /orgs/{org}/actions/permissions/workflow"],getGithubActionsDefaultWorkflowPermissionsRepository:["GET /repos/{owner}/{repo}/actions/permissions/workflow"],getGithubActionsPermissionsOrganization:["GET /orgs/{org}/actions/permissions"],getGithubActionsPermissionsRepository:["GET /repos/{owner}/{repo}/actions/permissions"],getJobForWorkflowRun:["GET /repos/{owner}/{repo}/actions/jobs/{job_id}"],getOrgPublicKey:["GET /orgs/{org}/actions/secrets/public-key"],getOrgSecret:["GET /orgs/{org}/actions/secrets/{secret_name}"],getOrgVariable:["GET /orgs/{org}/actions/variables/{name}"],getPendingDeploymentsForRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments"],getRepoPermissions:["GET /repos/{owner}/{repo}/actions/permissions",{},{renamed:["actions","getGithubActionsPermissionsRepository"]}],getRepoPublicKey:["GET /repos/{owner}/{repo}/actions/secrets/public-key"],getRepoSecret:["GET /repos/{owner}/{repo}/actions/secrets/{secret_name}"],getRepoVariable:["GET /repos/{owner}/{repo}/actions/variables/{name}"],getReviewsForRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/approvals"],getSelfHostedRunnerForOrg:["GET /orgs/{org}/actions/runners/{runner_id}"],getSelfHostedRunnerForRepo:["GET /repos/{owner}/{repo}/actions/runners/{runner_id}"],getWorkflow:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}"],getWorkflowAccessToRepository:["GET /repos/{owner}/{repo}/actions/permissions/access"],getWorkflowRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}"],getWorkflowRunAttempt:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}"],getWorkflowRunUsage:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing"],getWorkflowUsage:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing"],listArtifactsForRepo:["GET /repos/{owner}/{repo}/actions/artifacts"],listEnvironmentSecrets:["GET /repositories/{repository_id}/environments/{environment_name}/secrets"],listEnvironmentVariables:["GET /repositories/{repository_id}/environments/{environment_name}/variables"],listJobsForWorkflowRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs"],listJobsForWorkflowRunAttempt:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs"],listLabelsForSelfHostedRunnerForOrg:["GET /orgs/{org}/actions/runners/{runner_id}/labels"],listLabelsForSelfHostedRunnerForRepo:["GET /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],listOrgSecrets:["GET /orgs/{org}/actions/secrets"],listOrgVariables:["GET /orgs/{org}/actions/variables"],listRepoOrganizationSecrets:["GET /repos/{owner}/{repo}/actions/organization-secrets"],listRepoOrganizationVariables:["GET /repos/{owner}/{repo}/actions/organization-variables"],listRepoSecrets:["GET /repos/{owner}/{repo}/actions/secrets"],listRepoVariables:["GET /repos/{owner}/{repo}/actions/variables"],listRepoWorkflows:["GET /repos/{owner}/{repo}/actions/workflows"],listRunnerApplicationsForOrg:["GET /orgs/{org}/actions/runners/downloads"],listRunnerApplicationsForRepo:["GET /repos/{owner}/{repo}/actions/runners/downloads"],listSelectedReposForOrgSecret:["GET /orgs/{org}/actions/secrets/{secret_name}/repositories"],listSelectedReposForOrgVariable:["GET /orgs/{org}/actions/variables/{name}/repositories"],listSelectedRepositoriesEnabledGithubActionsOrganization:["GET /orgs/{org}/actions/permissions/repositories"],listSelfHostedRunnersForOrg:["GET /orgs/{org}/actions/runners"],listSelfHostedRunnersForRepo:["GET /repos/{owner}/{repo}/actions/runners"],listWorkflowRunArtifacts:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts"],listWorkflowRuns:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs"],listWorkflowRunsForRepo:["GET /repos/{owner}/{repo}/actions/runs"],reRunJobForWorkflowRun:["POST /repos/{owner}/{repo}/actions/jobs/{job_id}/rerun"],reRunWorkflow:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun"],reRunWorkflowFailedJobs:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun-failed-jobs"],removeAllCustomLabelsFromSelfHostedRunnerForOrg:["DELETE /orgs/{org}/actions/runners/{runner_id}/labels"],removeAllCustomLabelsFromSelfHostedRunnerForRepo:["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],removeCustomLabelFromSelfHostedRunnerForOrg:["DELETE /orgs/{org}/actions/runners/{runner_id}/labels/{name}"],removeCustomLabelFromSelfHostedRunnerForRepo:["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels/{name}"],removeSelectedRepoFromOrgSecret:["DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"],removeSelectedRepoFromOrgVariable:["DELETE /orgs/{org}/actions/variables/{name}/repositories/{repository_id}"],reviewCustomGatesForRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/deployment_protection_rule"],reviewPendingDeploymentsForRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments"],setAllowedActionsOrganization:["PUT /orgs/{org}/actions/permissions/selected-actions"],setAllowedActionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions/selected-actions"],setCustomLabelsForSelfHostedRunnerForOrg:["PUT /orgs/{org}/actions/runners/{runner_id}/labels"],setCustomLabelsForSelfHostedRunnerForRepo:["PUT /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],setCustomOidcSubClaimForRepo:["PUT /repos/{owner}/{repo}/actions/oidc/customization/sub"],setGithubActionsDefaultWorkflowPermissionsOrganization:["PUT /orgs/{org}/actions/permissions/workflow"],setGithubActionsDefaultWorkflowPermissionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions/workflow"],setGithubActionsPermissionsOrganization:["PUT /orgs/{org}/actions/permissions"],setGithubActionsPermissionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions"],setSelectedReposForOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories"],setSelectedReposForOrgVariable:["PUT /orgs/{org}/actions/variables/{name}/repositories"],setSelectedRepositoriesEnabledGithubActionsOrganization:["PUT /orgs/{org}/actions/permissions/repositories"],setWorkflowAccessToRepository:["PUT /repos/{owner}/{repo}/actions/permissions/access"],updateEnvironmentVariable:["PATCH /repositories/{repository_id}/environments/{environment_name}/variables/{name}"],updateOrgVariable:["PATCH /orgs/{org}/actions/variables/{name}"],updateRepoVariable:["PATCH /repos/{owner}/{repo}/actions/variables/{name}"]},activity:{checkRepoIsStarredByAuthenticatedUser:["GET /user/starred/{owner}/{repo}"],deleteRepoSubscription:["DELETE /repos/{owner}/{repo}/subscription"],deleteThreadSubscription:["DELETE /notifications/threads/{thread_id}/subscription"],getFeeds:["GET /feeds"],getRepoSubscription:["GET /repos/{owner}/{repo}/subscription"],getThread:["GET /notifications/threads/{thread_id}"],getThreadSubscriptionForAuthenticatedUser:["GET /notifications/threads/{thread_id}/subscription"],listEventsForAuthenticatedUser:["GET /users/{username}/events"],listNotificationsForAuthenticatedUser:["GET /notifications"],listOrgEventsForAuthenticatedUser:["GET /users/{username}/events/orgs/{org}"],listPublicEvents:["GET /events"],listPublicEventsForRepoNetwork:["GET /networks/{owner}/{repo}/events"],listPublicEventsForUser:["GET /users/{username}/events/public"],listPublicOrgEvents:["GET /orgs/{org}/events"],listReceivedEventsForUser:["GET /users/{username}/received_events"],listReceivedPublicEventsForUser:["GET /users/{username}/received_events/public"],listRepoEvents:["GET /repos/{owner}/{repo}/events"],listRepoNotificationsForAuthenticatedUser:["GET /repos/{owner}/{repo}/notifications"],listReposStarredByAuthenticatedUser:["GET /user/starred"],listReposStarredByUser:["GET /users/{username}/starred"],listReposWatchedByUser:["GET /users/{username}/subscriptions"],listStargazersForRepo:["GET /repos/{owner}/{repo}/stargazers"],listWatchedReposForAuthenticatedUser:["GET /user/subscriptions"],listWatchersForRepo:["GET /repos/{owner}/{repo}/subscribers"],markNotificationsAsRead:["PUT /notifications"],markRepoNotificationsAsRead:["PUT /repos/{owner}/{repo}/notifications"],markThreadAsDone:["DELETE /notifications/threads/{thread_id}"],markThreadAsRead:["PATCH /notifications/threads/{thread_id}"],setRepoSubscription:["PUT /repos/{owner}/{repo}/subscription"],setThreadSubscription:["PUT /notifications/threads/{thread_id}/subscription"],starRepoForAuthenticatedUser:["PUT /user/starred/{owner}/{repo}"],unstarRepoForAuthenticatedUser:["DELETE /user/starred/{owner}/{repo}"]},apps:{addRepoToInstallation:["PUT /user/installations/{installation_id}/repositories/{repository_id}",{},{renamed:["apps","addRepoToInstallationForAuthenticatedUser"]}],addRepoToInstallationForAuthenticatedUser:["PUT /user/installations/{installation_id}/repositories/{repository_id}"],checkToken:["POST /applications/{client_id}/token"],createFromManifest:["POST /app-manifests/{code}/conversions"],createInstallationAccessToken:["POST /app/installations/{installation_id}/access_tokens"],deleteAuthorization:["DELETE /applications/{client_id}/grant"],deleteInstallation:["DELETE /app/installations/{installation_id}"],deleteToken:["DELETE /applications/{client_id}/token"],getAuthenticated:["GET /app"],getBySlug:["GET /apps/{app_slug}"],getInstallation:["GET /app/installations/{installation_id}"],getOrgInstallation:["GET /orgs/{org}/installation"],getRepoInstallation:["GET /repos/{owner}/{repo}/installation"],getSubscriptionPlanForAccount:["GET /marketplace_listing/accounts/{account_id}"],getSubscriptionPlanForAccountStubbed:["GET /marketplace_listing/stubbed/accounts/{account_id}"],getUserInstallation:["GET /users/{username}/installation"],getWebhookConfigForApp:["GET /app/hook/config"],getWebhookDelivery:["GET /app/hook/deliveries/{delivery_id}"],listAccountsForPlan:["GET /marketplace_listing/plans/{plan_id}/accounts"],listAccountsForPlanStubbed:["GET /marketplace_listing/stubbed/plans/{plan_id}/accounts"],listInstallationReposForAuthenticatedUser:["GET /user/installations/{installation_id}/repositories"],listInstallationRequestsForAuthenticatedApp:["GET /app/installation-requests"],listInstallations:["GET /app/installations"],listInstallationsForAuthenticatedUser:["GET /user/installations"],listPlans:["GET /marketplace_listing/plans"],listPlansStubbed:["GET /marketplace_listing/stubbed/plans"],listReposAccessibleToInstallation:["GET /installation/repositories"],listSubscriptionsForAuthenticatedUser:["GET /user/marketplace_purchases"],listSubscriptionsForAuthenticatedUserStubbed:["GET /user/marketplace_purchases/stubbed"],listWebhookDeliveries:["GET /app/hook/deliveries"],redeliverWebhookDelivery:["POST /app/hook/deliveries/{delivery_id}/attempts"],removeRepoFromInstallation:["DELETE /user/installations/{installation_id}/repositories/{repository_id}",{},{renamed:["apps","removeRepoFromInstallationForAuthenticatedUser"]}],removeRepoFromInstallationForAuthenticatedUser:["DELETE /user/installations/{installation_id}/repositories/{repository_id}"],resetToken:["PATCH /applications/{client_id}/token"],revokeInstallationAccessToken:["DELETE /installation/token"],scopeToken:["POST /applications/{client_id}/token/scoped"],suspendInstallation:["PUT /app/installations/{installation_id}/suspended"],unsuspendInstallation:["DELETE /app/installations/{installation_id}/suspended"],updateWebhookConfigForApp:["PATCH /app/hook/config"]},billing:{getGithubActionsBillingOrg:["GET /orgs/{org}/settings/billing/actions"],getGithubActionsBillingUser:["GET /users/{username}/settings/billing/actions"],getGithubPackagesBillingOrg:["GET /orgs/{org}/settings/billing/packages"],getGithubPackagesBillingUser:["GET /users/{username}/settings/billing/packages"],getSharedStorageBillingOrg:["GET /orgs/{org}/settings/billing/shared-storage"],getSharedStorageBillingUser:["GET /users/{username}/settings/billing/shared-storage"]},checks:{create:["POST /repos/{owner}/{repo}/check-runs"],createSuite:["POST /repos/{owner}/{repo}/check-suites"],get:["GET /repos/{owner}/{repo}/check-runs/{check_run_id}"],getSuite:["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}"],listAnnotations:["GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations"],listForRef:["GET /repos/{owner}/{repo}/commits/{ref}/check-runs"],listForSuite:["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs"],listSuitesForRef:["GET /repos/{owner}/{repo}/commits/{ref}/check-suites"],rerequestRun:["POST /repos/{owner}/{repo}/check-runs/{check_run_id}/rerequest"],rerequestSuite:["POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest"],setSuitesPreferences:["PATCH /repos/{owner}/{repo}/check-suites/preferences"],update:["PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}"]},codeScanning:{deleteAnalysis:["DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}"],getAlert:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}",{},{renamedParameters:{alert_id:"alert_number"}}],getAnalysis:["GET /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}"],getCodeqlDatabase:["GET /repos/{owner}/{repo}/code-scanning/codeql/databases/{language}"],getDefaultSetup:["GET /repos/{owner}/{repo}/code-scanning/default-setup"],getSarif:["GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}"],listAlertInstances:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances"],listAlertsForOrg:["GET /orgs/{org}/code-scanning/alerts"],listAlertsForRepo:["GET /repos/{owner}/{repo}/code-scanning/alerts"],listAlertsInstances:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances",{},{renamed:["codeScanning","listAlertInstances"]}],listCodeqlDatabases:["GET /repos/{owner}/{repo}/code-scanning/codeql/databases"],listRecentAnalyses:["GET /repos/{owner}/{repo}/code-scanning/analyses"],updateAlert:["PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}"],updateDefaultSetup:["PATCH /repos/{owner}/{repo}/code-scanning/default-setup"],uploadSarif:["POST /repos/{owner}/{repo}/code-scanning/sarifs"]},codesOfConduct:{getAllCodesOfConduct:["GET /codes_of_conduct"],getConductCode:["GET /codes_of_conduct/{key}"]},codespaces:{addRepositoryForSecretForAuthenticatedUser:["PUT /user/codespaces/secrets/{secret_name}/repositories/{repository_id}"],addSelectedRepoToOrgSecret:["PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}"],checkPermissionsForDevcontainer:["GET /repos/{owner}/{repo}/codespaces/permissions_check"],codespaceMachinesForAuthenticatedUser:["GET /user/codespaces/{codespace_name}/machines"],createForAuthenticatedUser:["POST /user/codespaces"],createOrUpdateOrgSecret:["PUT /orgs/{org}/codespaces/secrets/{secret_name}"],createOrUpdateRepoSecret:["PUT /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"],createOrUpdateSecretForAuthenticatedUser:["PUT /user/codespaces/secrets/{secret_name}"],createWithPrForAuthenticatedUser:["POST /repos/{owner}/{repo}/pulls/{pull_number}/codespaces"],createWithRepoForAuthenticatedUser:["POST /repos/{owner}/{repo}/codespaces"],deleteForAuthenticatedUser:["DELETE /user/codespaces/{codespace_name}"],deleteFromOrganization:["DELETE /orgs/{org}/members/{username}/codespaces/{codespace_name}"],deleteOrgSecret:["DELETE /orgs/{org}/codespaces/secrets/{secret_name}"],deleteRepoSecret:["DELETE /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"],deleteSecretForAuthenticatedUser:["DELETE /user/codespaces/secrets/{secret_name}"],exportForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/exports"],getCodespacesForUserInOrg:["GET /orgs/{org}/members/{username}/codespaces"],getExportDetailsForAuthenticatedUser:["GET /user/codespaces/{codespace_name}/exports/{export_id}"],getForAuthenticatedUser:["GET /user/codespaces/{codespace_name}"],getOrgPublicKey:["GET /orgs/{org}/codespaces/secrets/public-key"],getOrgSecret:["GET /orgs/{org}/codespaces/secrets/{secret_name}"],getPublicKeyForAuthenticatedUser:["GET /user/codespaces/secrets/public-key"],getRepoPublicKey:["GET /repos/{owner}/{repo}/codespaces/secrets/public-key"],getRepoSecret:["GET /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"],getSecretForAuthenticatedUser:["GET /user/codespaces/secrets/{secret_name}"],listDevcontainersInRepositoryForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces/devcontainers"],listForAuthenticatedUser:["GET /user/codespaces"],listInOrganization:["GET /orgs/{org}/codespaces",{},{renamedParameters:{org_id:"org"}}],listInRepositoryForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces"],listOrgSecrets:["GET /orgs/{org}/codespaces/secrets"],listRepoSecrets:["GET /repos/{owner}/{repo}/codespaces/secrets"],listRepositoriesForSecretForAuthenticatedUser:["GET /user/codespaces/secrets/{secret_name}/repositories"],listSecretsForAuthenticatedUser:["GET /user/codespaces/secrets"],listSelectedReposForOrgSecret:["GET /orgs/{org}/codespaces/secrets/{secret_name}/repositories"],preFlightWithRepoForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces/new"],publishForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/publish"],removeRepositoryForSecretForAuthenticatedUser:["DELETE /user/codespaces/secrets/{secret_name}/repositories/{repository_id}"],removeSelectedRepoFromOrgSecret:["DELETE /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}"],repoMachinesForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces/machines"],setRepositoriesForSecretForAuthenticatedUser:["PUT /user/codespaces/secrets/{secret_name}/repositories"],setSelectedReposForOrgSecret:["PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories"],startForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/start"],stopForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/stop"],stopInOrganization:["POST /orgs/{org}/members/{username}/codespaces/{codespace_name}/stop"],updateForAuthenticatedUser:["PATCH /user/codespaces/{codespace_name}"]},copilot:{addCopilotSeatsForTeams:["POST /orgs/{org}/copilot/billing/selected_teams"],addCopilotSeatsForUsers:["POST /orgs/{org}/copilot/billing/selected_users"],cancelCopilotSeatAssignmentForTeams:["DELETE /orgs/{org}/copilot/billing/selected_teams"],cancelCopilotSeatAssignmentForUsers:["DELETE /orgs/{org}/copilot/billing/selected_users"],getCopilotOrganizationDetails:["GET /orgs/{org}/copilot/billing"],getCopilotSeatDetailsForUser:["GET /orgs/{org}/members/{username}/copilot"],listCopilotSeats:["GET /orgs/{org}/copilot/billing/seats"]},dependabot:{addSelectedRepoToOrgSecret:["PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}"],createOrUpdateOrgSecret:["PUT /orgs/{org}/dependabot/secrets/{secret_name}"],createOrUpdateRepoSecret:["PUT /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"],deleteOrgSecret:["DELETE /orgs/{org}/dependabot/secrets/{secret_name}"],deleteRepoSecret:["DELETE /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"],getAlert:["GET /repos/{owner}/{repo}/dependabot/alerts/{alert_number}"],getOrgPublicKey:["GET /orgs/{org}/dependabot/secrets/public-key"],getOrgSecret:["GET /orgs/{org}/dependabot/secrets/{secret_name}"],getRepoPublicKey:["GET /repos/{owner}/{repo}/dependabot/secrets/public-key"],getRepoSecret:["GET /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"],listAlertsForEnterprise:["GET /enterprises/{enterprise}/dependabot/alerts"],listAlertsForOrg:["GET /orgs/{org}/dependabot/alerts"],listAlertsForRepo:["GET /repos/{owner}/{repo}/dependabot/alerts"],listOrgSecrets:["GET /orgs/{org}/dependabot/secrets"],listRepoSecrets:["GET /repos/{owner}/{repo}/dependabot/secrets"],listSelectedReposForOrgSecret:["GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories"],removeSelectedRepoFromOrgSecret:["DELETE /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}"],setSelectedReposForOrgSecret:["PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories"],updateAlert:["PATCH /repos/{owner}/{repo}/dependabot/alerts/{alert_number}"]},dependencyGraph:{createRepositorySnapshot:["POST /repos/{owner}/{repo}/dependency-graph/snapshots"],diffRange:["GET /repos/{owner}/{repo}/dependency-graph/compare/{basehead}"],exportSbom:["GET /repos/{owner}/{repo}/dependency-graph/sbom"]},emojis:{get:["GET /emojis"]},gists:{checkIsStarred:["GET /gists/{gist_id}/star"],create:["POST /gists"],createComment:["POST /gists/{gist_id}/comments"],delete:["DELETE /gists/{gist_id}"],deleteComment:["DELETE /gists/{gist_id}/comments/{comment_id}"],fork:["POST /gists/{gist_id}/forks"],get:["GET /gists/{gist_id}"],getComment:["GET /gists/{gist_id}/comments/{comment_id}"],getRevision:["GET /gists/{gist_id}/{sha}"],list:["GET /gists"],listComments:["GET /gists/{gist_id}/comments"],listCommits:["GET /gists/{gist_id}/commits"],listForUser:["GET /users/{username}/gists"],listForks:["GET /gists/{gist_id}/forks"],listPublic:["GET /gists/public"],listStarred:["GET /gists/starred"],star:["PUT /gists/{gist_id}/star"],unstar:["DELETE /gists/{gist_id}/star"],update:["PATCH /gists/{gist_id}"],updateComment:["PATCH /gists/{gist_id}/comments/{comment_id}"]},git:{createBlob:["POST /repos/{owner}/{repo}/git/blobs"],createCommit:["POST /repos/{owner}/{repo}/git/commits"],createRef:["POST /repos/{owner}/{repo}/git/refs"],createTag:["POST /repos/{owner}/{repo}/git/tags"],createTree:["POST /repos/{owner}/{repo}/git/trees"],deleteRef:["DELETE /repos/{owner}/{repo}/git/refs/{ref}"],getBlob:["GET /repos/{owner}/{repo}/git/blobs/{file_sha}"],getCommit:["GET /repos/{owner}/{repo}/git/commits/{commit_sha}"],getRef:["GET /repos/{owner}/{repo}/git/ref/{ref}"],getTag:["GET /repos/{owner}/{repo}/git/tags/{tag_sha}"],getTree:["GET /repos/{owner}/{repo}/git/trees/{tree_sha}"],listMatchingRefs:["GET /repos/{owner}/{repo}/git/matching-refs/{ref}"],updateRef:["PATCH /repos/{owner}/{repo}/git/refs/{ref}"]},gitignore:{getAllTemplates:["GET /gitignore/templates"],getTemplate:["GET /gitignore/templates/{name}"]},interactions:{getRestrictionsForAuthenticatedUser:["GET /user/interaction-limits"],getRestrictionsForOrg:["GET /orgs/{org}/interaction-limits"],getRestrictionsForRepo:["GET /repos/{owner}/{repo}/interaction-limits"],getRestrictionsForYourPublicRepos:["GET /user/interaction-limits",{},{renamed:["interactions","getRestrictionsForAuthenticatedUser"]}],removeRestrictionsForAuthenticatedUser:["DELETE /user/interaction-limits"],removeRestrictionsForOrg:["DELETE /orgs/{org}/interaction-limits"],removeRestrictionsForRepo:["DELETE /repos/{owner}/{repo}/interaction-limits"],removeRestrictionsForYourPublicRepos:["DELETE /user/interaction-limits",{},{renamed:["interactions","removeRestrictionsForAuthenticatedUser"]}],setRestrictionsForAuthenticatedUser:["PUT /user/interaction-limits"],setRestrictionsForOrg:["PUT /orgs/{org}/interaction-limits"],setRestrictionsForRepo:["PUT /repos/{owner}/{repo}/interaction-limits"],setRestrictionsForYourPublicRepos:["PUT /user/interaction-limits",{},{renamed:["interactions","setRestrictionsForAuthenticatedUser"]}]},issues:{addAssignees:["POST /repos/{owner}/{repo}/issues/{issue_number}/assignees"],addLabels:["POST /repos/{owner}/{repo}/issues/{issue_number}/labels"],checkUserCanBeAssigned:["GET /repos/{owner}/{repo}/assignees/{assignee}"],checkUserCanBeAssignedToIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/assignees/{assignee}"],create:["POST /repos/{owner}/{repo}/issues"],createComment:["POST /repos/{owner}/{repo}/issues/{issue_number}/comments"],createLabel:["POST /repos/{owner}/{repo}/labels"],createMilestone:["POST /repos/{owner}/{repo}/milestones"],deleteComment:["DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}"],deleteLabel:["DELETE /repos/{owner}/{repo}/labels/{name}"],deleteMilestone:["DELETE /repos/{owner}/{repo}/milestones/{milestone_number}"],get:["GET /repos/{owner}/{repo}/issues/{issue_number}"],getComment:["GET /repos/{owner}/{repo}/issues/comments/{comment_id}"],getEvent:["GET /repos/{owner}/{repo}/issues/events/{event_id}"],getLabel:["GET /repos/{owner}/{repo}/labels/{name}"],getMilestone:["GET /repos/{owner}/{repo}/milestones/{milestone_number}"],list:["GET /issues"],listAssignees:["GET /repos/{owner}/{repo}/assignees"],listComments:["GET /repos/{owner}/{repo}/issues/{issue_number}/comments"],listCommentsForRepo:["GET /repos/{owner}/{repo}/issues/comments"],listEvents:["GET /repos/{owner}/{repo}/issues/{issue_number}/events"],listEventsForRepo:["GET /repos/{owner}/{repo}/issues/events"],listEventsForTimeline:["GET /repos/{owner}/{repo}/issues/{issue_number}/timeline"],listForAuthenticatedUser:["GET /user/issues"],listForOrg:["GET /orgs/{org}/issues"],listForRepo:["GET /repos/{owner}/{repo}/issues"],listLabelsForMilestone:["GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels"],listLabelsForRepo:["GET /repos/{owner}/{repo}/labels"],listLabelsOnIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/labels"],listMilestones:["GET /repos/{owner}/{repo}/milestones"],lock:["PUT /repos/{owner}/{repo}/issues/{issue_number}/lock"],removeAllLabels:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels"],removeAssignees:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees"],removeLabel:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}"],setLabels:["PUT /repos/{owner}/{repo}/issues/{issue_number}/labels"],unlock:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock"],update:["PATCH /repos/{owner}/{repo}/issues/{issue_number}"],updateComment:["PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}"],updateLabel:["PATCH /repos/{owner}/{repo}/labels/{name}"],updateMilestone:["PATCH /repos/{owner}/{repo}/milestones/{milestone_number}"]},licenses:{get:["GET /licenses/{license}"],getAllCommonlyUsed:["GET /licenses"],getForRepo:["GET /repos/{owner}/{repo}/license"]},markdown:{render:["POST /markdown"],renderRaw:["POST /markdown/raw",{headers:{"content-type":"text/plain; charset=utf-8"}}]},meta:{get:["GET /meta"],getAllVersions:["GET /versions"],getOctocat:["GET /octocat"],getZen:["GET /zen"],root:["GET /"]},migrations:{cancelImport:["DELETE /repos/{owner}/{repo}/import",{},{deprecated:"octokit.rest.migrations.cancelImport() is deprecated, see https://docs.github.com/rest/migrations/source-imports#cancel-an-import"}],deleteArchiveForAuthenticatedUser:["DELETE /user/migrations/{migration_id}/archive"],deleteArchiveForOrg:["DELETE /orgs/{org}/migrations/{migration_id}/archive"],downloadArchiveForOrg:["GET /orgs/{org}/migrations/{migration_id}/archive"],getArchiveForAuthenticatedUser:["GET /user/migrations/{migration_id}/archive"],getCommitAuthors:["GET /repos/{owner}/{repo}/import/authors",{},{deprecated:"octokit.rest.migrations.getCommitAuthors() is deprecated, see https://docs.github.com/rest/migrations/source-imports#get-commit-authors"}],getImportStatus:["GET /repos/{owner}/{repo}/import",{},{deprecated:"octokit.rest.migrations.getImportStatus() is deprecated, see https://docs.github.com/rest/migrations/source-imports#get-an-import-status"}],getLargeFiles:["GET /repos/{owner}/{repo}/import/large_files",{},{deprecated:"octokit.rest.migrations.getLargeFiles() is deprecated, see https://docs.github.com/rest/migrations/source-imports#get-large-files"}],getStatusForAuthenticatedUser:["GET /user/migrations/{migration_id}"],getStatusForOrg:["GET /orgs/{org}/migrations/{migration_id}"],listForAuthenticatedUser:["GET /user/migrations"],listForOrg:["GET /orgs/{org}/migrations"],listReposForAuthenticatedUser:["GET /user/migrations/{migration_id}/repositories"],listReposForOrg:["GET /orgs/{org}/migrations/{migration_id}/repositories"],listReposForUser:["GET /user/migrations/{migration_id}/repositories",{},{renamed:["migrations","listReposForAuthenticatedUser"]}],mapCommitAuthor:["PATCH /repos/{owner}/{repo}/import/authors/{author_id}",{},{deprecated:"octokit.rest.migrations.mapCommitAuthor() is deprecated, see https://docs.github.com/rest/migrations/source-imports#map-a-commit-author"}],setLfsPreference:["PATCH /repos/{owner}/{repo}/import/lfs",{},{deprecated:"octokit.rest.migrations.setLfsPreference() is deprecated, see https://docs.github.com/rest/migrations/source-imports#update-git-lfs-preference"}],startForAuthenticatedUser:["POST /user/migrations"],startForOrg:["POST /orgs/{org}/migrations"],startImport:["PUT /repos/{owner}/{repo}/import",{},{deprecated:"octokit.rest.migrations.startImport() is deprecated, see https://docs.github.com/rest/migrations/source-imports#start-an-import"}],unlockRepoForAuthenticatedUser:["DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock"],unlockRepoForOrg:["DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock"],updateImport:["PATCH /repos/{owner}/{repo}/import",{},{deprecated:"octokit.rest.migrations.updateImport() is deprecated, see https://docs.github.com/rest/migrations/source-imports#update-an-import"}]},oidc:{getOidcCustomSubTemplateForOrg:["GET /orgs/{org}/actions/oidc/customization/sub"],updateOidcCustomSubTemplateForOrg:["PUT /orgs/{org}/actions/oidc/customization/sub"]},orgs:{addSecurityManagerTeam:["PUT /orgs/{org}/security-managers/teams/{team_slug}"],assignTeamToOrgRole:["PUT /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}"],assignUserToOrgRole:["PUT /orgs/{org}/organization-roles/users/{username}/{role_id}"],blockUser:["PUT /orgs/{org}/blocks/{username}"],cancelInvitation:["DELETE /orgs/{org}/invitations/{invitation_id}"],checkBlockedUser:["GET /orgs/{org}/blocks/{username}"],checkMembershipForUser:["GET /orgs/{org}/members/{username}"],checkPublicMembershipForUser:["GET /orgs/{org}/public_members/{username}"],convertMemberToOutsideCollaborator:["PUT /orgs/{org}/outside_collaborators/{username}"],createCustomOrganizationRole:["POST /orgs/{org}/organization-roles"],createInvitation:["POST /orgs/{org}/invitations"],createOrUpdateCustomProperties:["PATCH /orgs/{org}/properties/schema"],createOrUpdateCustomPropertiesValuesForRepos:["PATCH /orgs/{org}/properties/values"],createOrUpdateCustomProperty:["PUT /orgs/{org}/properties/schema/{custom_property_name}"],createWebhook:["POST /orgs/{org}/hooks"],delete:["DELETE /orgs/{org}"],deleteCustomOrganizationRole:["DELETE /orgs/{org}/organization-roles/{role_id}"],deleteWebhook:["DELETE /orgs/{org}/hooks/{hook_id}"],enableOrDisableSecurityProductOnAllOrgRepos:["POST /orgs/{org}/{security_product}/{enablement}"],get:["GET /orgs/{org}"],getAllCustomProperties:["GET /orgs/{org}/properties/schema"],getCustomProperty:["GET /orgs/{org}/properties/schema/{custom_property_name}"],getMembershipForAuthenticatedUser:["GET /user/memberships/orgs/{org}"],getMembershipForUser:["GET /orgs/{org}/memberships/{username}"],getOrgRole:["GET /orgs/{org}/organization-roles/{role_id}"],getWebhook:["GET /orgs/{org}/hooks/{hook_id}"],getWebhookConfigForOrg:["GET /orgs/{org}/hooks/{hook_id}/config"],getWebhookDelivery:["GET /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}"],list:["GET /organizations"],listAppInstallations:["GET /orgs/{org}/installations"],listBlockedUsers:["GET /orgs/{org}/blocks"],listCustomPropertiesValuesForRepos:["GET /orgs/{org}/properties/values"],listFailedInvitations:["GET /orgs/{org}/failed_invitations"],listForAuthenticatedUser:["GET /user/orgs"],listForUser:["GET /users/{username}/orgs"],listInvitationTeams:["GET /orgs/{org}/invitations/{invitation_id}/teams"],listMembers:["GET /orgs/{org}/members"],listMembershipsForAuthenticatedUser:["GET /user/memberships/orgs"],listOrgRoleTeams:["GET /orgs/{org}/organization-roles/{role_id}/teams"],listOrgRoleUsers:["GET /orgs/{org}/organization-roles/{role_id}/users"],listOrgRoles:["GET /orgs/{org}/organization-roles"],listOrganizationFineGrainedPermissions:["GET /orgs/{org}/organization-fine-grained-permissions"],listOutsideCollaborators:["GET /orgs/{org}/outside_collaborators"],listPatGrantRepositories:["GET /orgs/{org}/personal-access-tokens/{pat_id}/repositories"],listPatGrantRequestRepositories:["GET /orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories"],listPatGrantRequests:["GET /orgs/{org}/personal-access-token-requests"],listPatGrants:["GET /orgs/{org}/personal-access-tokens"],listPendingInvitations:["GET /orgs/{org}/invitations"],listPublicMembers:["GET /orgs/{org}/public_members"],listSecurityManagerTeams:["GET /orgs/{org}/security-managers"],listWebhookDeliveries:["GET /orgs/{org}/hooks/{hook_id}/deliveries"],listWebhooks:["GET /orgs/{org}/hooks"],patchCustomOrganizationRole:["PATCH /orgs/{org}/organization-roles/{role_id}"],pingWebhook:["POST /orgs/{org}/hooks/{hook_id}/pings"],redeliverWebhookDelivery:["POST /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts"],removeCustomProperty:["DELETE /orgs/{org}/properties/schema/{custom_property_name}"],removeMember:["DELETE /orgs/{org}/members/{username}"],removeMembershipForUser:["DELETE /orgs/{org}/memberships/{username}"],removeOutsideCollaborator:["DELETE /orgs/{org}/outside_collaborators/{username}"],removePublicMembershipForAuthenticatedUser:["DELETE /orgs/{org}/public_members/{username}"],removeSecurityManagerTeam:["DELETE /orgs/{org}/security-managers/teams/{team_slug}"],reviewPatGrantRequest:["POST /orgs/{org}/personal-access-token-requests/{pat_request_id}"],reviewPatGrantRequestsInBulk:["POST /orgs/{org}/personal-access-token-requests"],revokeAllOrgRolesTeam:["DELETE /orgs/{org}/organization-roles/teams/{team_slug}"],revokeAllOrgRolesUser:["DELETE /orgs/{org}/organization-roles/users/{username}"],revokeOrgRoleTeam:["DELETE /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}"],revokeOrgRoleUser:["DELETE /orgs/{org}/organization-roles/users/{username}/{role_id}"],setMembershipForUser:["PUT /orgs/{org}/memberships/{username}"],setPublicMembershipForAuthenticatedUser:["PUT /orgs/{org}/public_members/{username}"],unblockUser:["DELETE /orgs/{org}/blocks/{username}"],update:["PATCH /orgs/{org}"],updateMembershipForAuthenticatedUser:["PATCH /user/memberships/orgs/{org}"],updatePatAccess:["POST /orgs/{org}/personal-access-tokens/{pat_id}"],updatePatAccesses:["POST /orgs/{org}/personal-access-tokens"],updateWebhook:["PATCH /orgs/{org}/hooks/{hook_id}"],updateWebhookConfigForOrg:["PATCH /orgs/{org}/hooks/{hook_id}/config"]},packages:{deletePackageForAuthenticatedUser:["DELETE /user/packages/{package_type}/{package_name}"],deletePackageForOrg:["DELETE /orgs/{org}/packages/{package_type}/{package_name}"],deletePackageForUser:["DELETE /users/{username}/packages/{package_type}/{package_name}"],deletePackageVersionForAuthenticatedUser:["DELETE /user/packages/{package_type}/{package_name}/versions/{package_version_id}"],deletePackageVersionForOrg:["DELETE /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}"],deletePackageVersionForUser:["DELETE /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}"],getAllPackageVersionsForAPackageOwnedByAnOrg:["GET /orgs/{org}/packages/{package_type}/{package_name}/versions",{},{renamed:["packages","getAllPackageVersionsForPackageOwnedByOrg"]}],getAllPackageVersionsForAPackageOwnedByTheAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}/versions",{},{renamed:["packages","getAllPackageVersionsForPackageOwnedByAuthenticatedUser"]}],getAllPackageVersionsForPackageOwnedByAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}/versions"],getAllPackageVersionsForPackageOwnedByOrg:["GET /orgs/{org}/packages/{package_type}/{package_name}/versions"],getAllPackageVersionsForPackageOwnedByUser:["GET /users/{username}/packages/{package_type}/{package_name}/versions"],getPackageForAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}"],getPackageForOrganization:["GET /orgs/{org}/packages/{package_type}/{package_name}"],getPackageForUser:["GET /users/{username}/packages/{package_type}/{package_name}"],getPackageVersionForAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}"],getPackageVersionForOrganization:["GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}"],getPackageVersionForUser:["GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}"],listDockerMigrationConflictingPackagesForAuthenticatedUser:["GET /user/docker/conflicts"],listDockerMigrationConflictingPackagesForOrganization:["GET /orgs/{org}/docker/conflicts"],listDockerMigrationConflictingPackagesForUser:["GET /users/{username}/docker/conflicts"],listPackagesForAuthenticatedUser:["GET /user/packages"],listPackagesForOrganization:["GET /orgs/{org}/packages"],listPackagesForUser:["GET /users/{username}/packages"],restorePackageForAuthenticatedUser:["POST /user/packages/{package_type}/{package_name}/restore{?token}"],restorePackageForOrg:["POST /orgs/{org}/packages/{package_type}/{package_name}/restore{?token}"],restorePackageForUser:["POST /users/{username}/packages/{package_type}/{package_name}/restore{?token}"],restorePackageVersionForAuthenticatedUser:["POST /user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"],restorePackageVersionForOrg:["POST /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"],restorePackageVersionForUser:["POST /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"]},projects:{addCollaborator:["PUT /projects/{project_id}/collaborators/{username}"],createCard:["POST /projects/columns/{column_id}/cards"],createColumn:["POST /projects/{project_id}/columns"],createForAuthenticatedUser:["POST /user/projects"],createForOrg:["POST /orgs/{org}/projects"],createForRepo:["POST /repos/{owner}/{repo}/projects"],delete:["DELETE /projects/{project_id}"],deleteCard:["DELETE /projects/columns/cards/{card_id}"],deleteColumn:["DELETE /projects/columns/{column_id}"],get:["GET /projects/{project_id}"],getCard:["GET /projects/columns/cards/{card_id}"],getColumn:["GET /projects/columns/{column_id}"],getPermissionForUser:["GET /projects/{project_id}/collaborators/{username}/permission"],listCards:["GET /projects/columns/{column_id}/cards"],listCollaborators:["GET /projects/{project_id}/collaborators"],listColumns:["GET /projects/{project_id}/columns"],listForOrg:["GET /orgs/{org}/projects"],listForRepo:["GET /repos/{owner}/{repo}/projects"],listForUser:["GET /users/{username}/projects"],moveCard:["POST /projects/columns/cards/{card_id}/moves"],moveColumn:["POST /projects/columns/{column_id}/moves"],removeCollaborator:["DELETE /projects/{project_id}/collaborators/{username}"],update:["PATCH /projects/{project_id}"],updateCard:["PATCH /projects/columns/cards/{card_id}"],updateColumn:["PATCH /projects/columns/{column_id}"]},pulls:{checkIfMerged:["GET /repos/{owner}/{repo}/pulls/{pull_number}/merge"],create:["POST /repos/{owner}/{repo}/pulls"],createReplyForReviewComment:["POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies"],createReview:["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews"],createReviewComment:["POST /repos/{owner}/{repo}/pulls/{pull_number}/comments"],deletePendingReview:["DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],deleteReviewComment:["DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}"],dismissReview:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals"],get:["GET /repos/{owner}/{repo}/pulls/{pull_number}"],getReview:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],getReviewComment:["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}"],list:["GET /repos/{owner}/{repo}/pulls"],listCommentsForReview:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments"],listCommits:["GET /repos/{owner}/{repo}/pulls/{pull_number}/commits"],listFiles:["GET /repos/{owner}/{repo}/pulls/{pull_number}/files"],listRequestedReviewers:["GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],listReviewComments:["GET /repos/{owner}/{repo}/pulls/{pull_number}/comments"],listReviewCommentsForRepo:["GET /repos/{owner}/{repo}/pulls/comments"],listReviews:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews"],merge:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge"],removeRequestedReviewers:["DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],requestReviewers:["POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],submitReview:["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events"],update:["PATCH /repos/{owner}/{repo}/pulls/{pull_number}"],updateBranch:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch"],updateReview:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],updateReviewComment:["PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}"]},rateLimit:{get:["GET /rate_limit"]},reactions:{createForCommitComment:["POST /repos/{owner}/{repo}/comments/{comment_id}/reactions"],createForIssue:["POST /repos/{owner}/{repo}/issues/{issue_number}/reactions"],createForIssueComment:["POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions"],createForPullRequestReviewComment:["POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions"],createForRelease:["POST /repos/{owner}/{repo}/releases/{release_id}/reactions"],createForTeamDiscussionCommentInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions"],createForTeamDiscussionInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions"],deleteForCommitComment:["DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}"],deleteForIssue:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}"],deleteForIssueComment:["DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}"],deleteForPullRequestComment:["DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}"],deleteForRelease:["DELETE /repos/{owner}/{repo}/releases/{release_id}/reactions/{reaction_id}"],deleteForTeamDiscussion:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}"],deleteForTeamDiscussionComment:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}"],listForCommitComment:["GET /repos/{owner}/{repo}/comments/{comment_id}/reactions"],listForIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/reactions"],listForIssueComment:["GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions"],listForPullRequestReviewComment:["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions"],listForRelease:["GET /repos/{owner}/{repo}/releases/{release_id}/reactions"],listForTeamDiscussionCommentInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions"],listForTeamDiscussionInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions"]},repos:{acceptInvitation:["PATCH /user/repository_invitations/{invitation_id}",{},{renamed:["repos","acceptInvitationForAuthenticatedUser"]}],acceptInvitationForAuthenticatedUser:["PATCH /user/repository_invitations/{invitation_id}"],addAppAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],addCollaborator:["PUT /repos/{owner}/{repo}/collaborators/{username}"],addStatusCheckContexts:["POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],addTeamAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],addUserAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],cancelPagesDeployment:["POST /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}/cancel"],checkAutomatedSecurityFixes:["GET /repos/{owner}/{repo}/automated-security-fixes"],checkCollaborator:["GET /repos/{owner}/{repo}/collaborators/{username}"],checkVulnerabilityAlerts:["GET /repos/{owner}/{repo}/vulnerability-alerts"],codeownersErrors:["GET /repos/{owner}/{repo}/codeowners/errors"],compareCommits:["GET /repos/{owner}/{repo}/compare/{base}...{head}"],compareCommitsWithBasehead:["GET /repos/{owner}/{repo}/compare/{basehead}"],createAutolink:["POST /repos/{owner}/{repo}/autolinks"],createCommitComment:["POST /repos/{owner}/{repo}/commits/{commit_sha}/comments"],createCommitSignatureProtection:["POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"],createCommitStatus:["POST /repos/{owner}/{repo}/statuses/{sha}"],createDeployKey:["POST /repos/{owner}/{repo}/keys"],createDeployment:["POST /repos/{owner}/{repo}/deployments"],createDeploymentBranchPolicy:["POST /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies"],createDeploymentProtectionRule:["POST /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules"],createDeploymentStatus:["POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"],createDispatchEvent:["POST /repos/{owner}/{repo}/dispatches"],createForAuthenticatedUser:["POST /user/repos"],createFork:["POST /repos/{owner}/{repo}/forks"],createInOrg:["POST /orgs/{org}/repos"],createOrUpdateCustomPropertiesValues:["PATCH /repos/{owner}/{repo}/properties/values"],createOrUpdateEnvironment:["PUT /repos/{owner}/{repo}/environments/{environment_name}"],createOrUpdateFileContents:["PUT /repos/{owner}/{repo}/contents/{path}"],createOrgRuleset:["POST /orgs/{org}/rulesets"],createPagesDeployment:["POST /repos/{owner}/{repo}/pages/deployments"],createPagesSite:["POST /repos/{owner}/{repo}/pages"],createRelease:["POST /repos/{owner}/{repo}/releases"],createRepoRuleset:["POST /repos/{owner}/{repo}/rulesets"],createTagProtection:["POST /repos/{owner}/{repo}/tags/protection"],createUsingTemplate:["POST /repos/{template_owner}/{template_repo}/generate"],createWebhook:["POST /repos/{owner}/{repo}/hooks"],declineInvitation:["DELETE /user/repository_invitations/{invitation_id}",{},{renamed:["repos","declineInvitationForAuthenticatedUser"]}],declineInvitationForAuthenticatedUser:["DELETE /user/repository_invitations/{invitation_id}"],delete:["DELETE /repos/{owner}/{repo}"],deleteAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"],deleteAdminBranchProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],deleteAnEnvironment:["DELETE /repos/{owner}/{repo}/environments/{environment_name}"],deleteAutolink:["DELETE /repos/{owner}/{repo}/autolinks/{autolink_id}"],deleteBranchProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection"],deleteCommitComment:["DELETE /repos/{owner}/{repo}/comments/{comment_id}"],deleteCommitSignatureProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"],deleteDeployKey:["DELETE /repos/{owner}/{repo}/keys/{key_id}"],deleteDeployment:["DELETE /repos/{owner}/{repo}/deployments/{deployment_id}"],deleteDeploymentBranchPolicy:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"],deleteFile:["DELETE /repos/{owner}/{repo}/contents/{path}"],deleteInvitation:["DELETE /repos/{owner}/{repo}/invitations/{invitation_id}"],deleteOrgRuleset:["DELETE /orgs/{org}/rulesets/{ruleset_id}"],deletePagesSite:["DELETE /repos/{owner}/{repo}/pages"],deletePullRequestReviewProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],deleteRelease:["DELETE /repos/{owner}/{repo}/releases/{release_id}"],deleteReleaseAsset:["DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}"],deleteRepoRuleset:["DELETE /repos/{owner}/{repo}/rulesets/{ruleset_id}"],deleteTagProtection:["DELETE /repos/{owner}/{repo}/tags/protection/{tag_protection_id}"],deleteWebhook:["DELETE /repos/{owner}/{repo}/hooks/{hook_id}"],disableAutomatedSecurityFixes:["DELETE /repos/{owner}/{repo}/automated-security-fixes"],disableDeploymentProtectionRule:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}"],disablePrivateVulnerabilityReporting:["DELETE /repos/{owner}/{repo}/private-vulnerability-reporting"],disableVulnerabilityAlerts:["DELETE /repos/{owner}/{repo}/vulnerability-alerts"],downloadArchive:["GET /repos/{owner}/{repo}/zipball/{ref}",{},{renamed:["repos","downloadZipballArchive"]}],downloadTarballArchive:["GET /repos/{owner}/{repo}/tarball/{ref}"],downloadZipballArchive:["GET /repos/{owner}/{repo}/zipball/{ref}"],enableAutomatedSecurityFixes:["PUT /repos/{owner}/{repo}/automated-security-fixes"],enablePrivateVulnerabilityReporting:["PUT /repos/{owner}/{repo}/private-vulnerability-reporting"],enableVulnerabilityAlerts:["PUT /repos/{owner}/{repo}/vulnerability-alerts"],generateReleaseNotes:["POST /repos/{owner}/{repo}/releases/generate-notes"],get:["GET /repos/{owner}/{repo}"],getAccessRestrictions:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"],getAdminBranchProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],getAllDeploymentProtectionRules:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules"],getAllEnvironments:["GET /repos/{owner}/{repo}/environments"],getAllStatusCheckContexts:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts"],getAllTopics:["GET /repos/{owner}/{repo}/topics"],getAppsWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps"],getAutolink:["GET /repos/{owner}/{repo}/autolinks/{autolink_id}"],getBranch:["GET /repos/{owner}/{repo}/branches/{branch}"],getBranchProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection"],getBranchRules:["GET /repos/{owner}/{repo}/rules/branches/{branch}"],getClones:["GET /repos/{owner}/{repo}/traffic/clones"],getCodeFrequencyStats:["GET /repos/{owner}/{repo}/stats/code_frequency"],getCollaboratorPermissionLevel:["GET /repos/{owner}/{repo}/collaborators/{username}/permission"],getCombinedStatusForRef:["GET /repos/{owner}/{repo}/commits/{ref}/status"],getCommit:["GET /repos/{owner}/{repo}/commits/{ref}"],getCommitActivityStats:["GET /repos/{owner}/{repo}/stats/commit_activity"],getCommitComment:["GET /repos/{owner}/{repo}/comments/{comment_id}"],getCommitSignatureProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"],getCommunityProfileMetrics:["GET /repos/{owner}/{repo}/community/profile"],getContent:["GET /repos/{owner}/{repo}/contents/{path}"],getContributorsStats:["GET /repos/{owner}/{repo}/stats/contributors"],getCustomDeploymentProtectionRule:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}"],getCustomPropertiesValues:["GET /repos/{owner}/{repo}/properties/values"],getDeployKey:["GET /repos/{owner}/{repo}/keys/{key_id}"],getDeployment:["GET /repos/{owner}/{repo}/deployments/{deployment_id}"],getDeploymentBranchPolicy:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"],getDeploymentStatus:["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}"],getEnvironment:["GET /repos/{owner}/{repo}/environments/{environment_name}"],getLatestPagesBuild:["GET /repos/{owner}/{repo}/pages/builds/latest"],getLatestRelease:["GET /repos/{owner}/{repo}/releases/latest"],getOrgRuleSuite:["GET /orgs/{org}/rulesets/rule-suites/{rule_suite_id}"],getOrgRuleSuites:["GET /orgs/{org}/rulesets/rule-suites"],getOrgRuleset:["GET /orgs/{org}/rulesets/{ruleset_id}"],getOrgRulesets:["GET /orgs/{org}/rulesets"],getPages:["GET /repos/{owner}/{repo}/pages"],getPagesBuild:["GET /repos/{owner}/{repo}/pages/builds/{build_id}"],getPagesDeployment:["GET /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}"],getPagesHealthCheck:["GET /repos/{owner}/{repo}/pages/health"],getParticipationStats:["GET /repos/{owner}/{repo}/stats/participation"],getPullRequestReviewProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],getPunchCardStats:["GET /repos/{owner}/{repo}/stats/punch_card"],getReadme:["GET /repos/{owner}/{repo}/readme"],getReadmeInDirectory:["GET /repos/{owner}/{repo}/readme/{dir}"],getRelease:["GET /repos/{owner}/{repo}/releases/{release_id}"],getReleaseAsset:["GET /repos/{owner}/{repo}/releases/assets/{asset_id}"],getReleaseByTag:["GET /repos/{owner}/{repo}/releases/tags/{tag}"],getRepoRuleSuite:["GET /repos/{owner}/{repo}/rulesets/rule-suites/{rule_suite_id}"],getRepoRuleSuites:["GET /repos/{owner}/{repo}/rulesets/rule-suites"],getRepoRuleset:["GET /repos/{owner}/{repo}/rulesets/{ruleset_id}"],getRepoRulesets:["GET /repos/{owner}/{repo}/rulesets"],getStatusChecksProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],getTeamsWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams"],getTopPaths:["GET /repos/{owner}/{repo}/traffic/popular/paths"],getTopReferrers:["GET /repos/{owner}/{repo}/traffic/popular/referrers"],getUsersWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users"],getViews:["GET /repos/{owner}/{repo}/traffic/views"],getWebhook:["GET /repos/{owner}/{repo}/hooks/{hook_id}"],getWebhookConfigForRepo:["GET /repos/{owner}/{repo}/hooks/{hook_id}/config"],getWebhookDelivery:["GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}"],listActivities:["GET /repos/{owner}/{repo}/activity"],listAutolinks:["GET /repos/{owner}/{repo}/autolinks"],listBranches:["GET /repos/{owner}/{repo}/branches"],listBranchesForHeadCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head"],listCollaborators:["GET /repos/{owner}/{repo}/collaborators"],listCommentsForCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/comments"],listCommitCommentsForRepo:["GET /repos/{owner}/{repo}/comments"],listCommitStatusesForRef:["GET /repos/{owner}/{repo}/commits/{ref}/statuses"],listCommits:["GET /repos/{owner}/{repo}/commits"],listContributors:["GET /repos/{owner}/{repo}/contributors"],listCustomDeploymentRuleIntegrations:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/apps"],listDeployKeys:["GET /repos/{owner}/{repo}/keys"],listDeploymentBranchPolicies:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies"],listDeploymentStatuses:["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"],listDeployments:["GET /repos/{owner}/{repo}/deployments"],listForAuthenticatedUser:["GET /user/repos"],listForOrg:["GET /orgs/{org}/repos"],listForUser:["GET /users/{username}/repos"],listForks:["GET /repos/{owner}/{repo}/forks"],listInvitations:["GET /repos/{owner}/{repo}/invitations"],listInvitationsForAuthenticatedUser:["GET /user/repository_invitations"],listLanguages:["GET /repos/{owner}/{repo}/languages"],listPagesBuilds:["GET /repos/{owner}/{repo}/pages/builds"],listPublic:["GET /repositories"],listPullRequestsAssociatedWithCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls"],listReleaseAssets:["GET /repos/{owner}/{repo}/releases/{release_id}/assets"],listReleases:["GET /repos/{owner}/{repo}/releases"],listTagProtection:["GET /repos/{owner}/{repo}/tags/protection"],listTags:["GET /repos/{owner}/{repo}/tags"],listTeams:["GET /repos/{owner}/{repo}/teams"],listWebhookDeliveries:["GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries"],listWebhooks:["GET /repos/{owner}/{repo}/hooks"],merge:["POST /repos/{owner}/{repo}/merges"],mergeUpstream:["POST /repos/{owner}/{repo}/merge-upstream"],pingWebhook:["POST /repos/{owner}/{repo}/hooks/{hook_id}/pings"],redeliverWebhookDelivery:["POST /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts"],removeAppAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],removeCollaborator:["DELETE /repos/{owner}/{repo}/collaborators/{username}"],removeStatusCheckContexts:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],removeStatusCheckProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],removeTeamAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],removeUserAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],renameBranch:["POST /repos/{owner}/{repo}/branches/{branch}/rename"],replaceAllTopics:["PUT /repos/{owner}/{repo}/topics"],requestPagesBuild:["POST /repos/{owner}/{repo}/pages/builds"],setAdminBranchProtection:["POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],setAppAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],setStatusCheckContexts:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],setTeamAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],setUserAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],testPushWebhook:["POST /repos/{owner}/{repo}/hooks/{hook_id}/tests"],transfer:["POST /repos/{owner}/{repo}/transfer"],update:["PATCH /repos/{owner}/{repo}"],updateBranchProtection:["PUT /repos/{owner}/{repo}/branches/{branch}/protection"],updateCommitComment:["PATCH /repos/{owner}/{repo}/comments/{comment_id}"],updateDeploymentBranchPolicy:["PUT /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"],updateInformationAboutPagesSite:["PUT /repos/{owner}/{repo}/pages"],updateInvitation:["PATCH /repos/{owner}/{repo}/invitations/{invitation_id}"],updateOrgRuleset:["PUT /orgs/{org}/rulesets/{ruleset_id}"],updatePullRequestReviewProtection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],updateRelease:["PATCH /repos/{owner}/{repo}/releases/{release_id}"],updateReleaseAsset:["PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}"],updateRepoRuleset:["PUT /repos/{owner}/{repo}/rulesets/{ruleset_id}"],updateStatusCheckPotection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks",{},{renamed:["repos","updateStatusCheckProtection"]}],updateStatusCheckProtection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],updateWebhook:["PATCH /repos/{owner}/{repo}/hooks/{hook_id}"],updateWebhookConfigForRepo:["PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config"],uploadReleaseAsset:["POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}",{baseUrl:"https://uploads.github.com"}]},search:{code:["GET /search/code"],commits:["GET /search/commits"],issuesAndPullRequests:["GET /search/issues"],labels:["GET /search/labels"],repos:["GET /search/repositories"],topics:["GET /search/topics"],users:["GET /search/users"]},secretScanning:{getAlert:["GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"],listAlertsForEnterprise:["GET /enterprises/{enterprise}/secret-scanning/alerts"],listAlertsForOrg:["GET /orgs/{org}/secret-scanning/alerts"],listAlertsForRepo:["GET /repos/{owner}/{repo}/secret-scanning/alerts"],listLocationsForAlert:["GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations"],updateAlert:["PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"]},securityAdvisories:{createFork:["POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/forks"],createPrivateVulnerabilityReport:["POST /repos/{owner}/{repo}/security-advisories/reports"],createRepositoryAdvisory:["POST /repos/{owner}/{repo}/security-advisories"],createRepositoryAdvisoryCveRequest:["POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/cve"],getGlobalAdvisory:["GET /advisories/{ghsa_id}"],getRepositoryAdvisory:["GET /repos/{owner}/{repo}/security-advisories/{ghsa_id}"],listGlobalAdvisories:["GET /advisories"],listOrgRepositoryAdvisories:["GET /orgs/{org}/security-advisories"],listRepositoryAdvisories:["GET /repos/{owner}/{repo}/security-advisories"],updateRepositoryAdvisory:["PATCH /repos/{owner}/{repo}/security-advisories/{ghsa_id}"]},teams:{addOrUpdateMembershipForUserInOrg:["PUT /orgs/{org}/teams/{team_slug}/memberships/{username}"],addOrUpdateProjectPermissionsInOrg:["PUT /orgs/{org}/teams/{team_slug}/projects/{project_id}"],addOrUpdateRepoPermissionsInOrg:["PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],checkPermissionsForProjectInOrg:["GET /orgs/{org}/teams/{team_slug}/projects/{project_id}"],checkPermissionsForRepoInOrg:["GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],create:["POST /orgs/{org}/teams"],createDiscussionCommentInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"],createDiscussionInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions"],deleteDiscussionCommentInOrg:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],deleteDiscussionInOrg:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],deleteInOrg:["DELETE /orgs/{org}/teams/{team_slug}"],getByName:["GET /orgs/{org}/teams/{team_slug}"],getDiscussionCommentInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],getDiscussionInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],getMembershipForUserInOrg:["GET /orgs/{org}/teams/{team_slug}/memberships/{username}"],list:["GET /orgs/{org}/teams"],listChildInOrg:["GET /orgs/{org}/teams/{team_slug}/teams"],listDiscussionCommentsInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"],listDiscussionsInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions"],listForAuthenticatedUser:["GET /user/teams"],listMembersInOrg:["GET /orgs/{org}/teams/{team_slug}/members"],listPendingInvitationsInOrg:["GET /orgs/{org}/teams/{team_slug}/invitations"],listProjectsInOrg:["GET /orgs/{org}/teams/{team_slug}/projects"],listReposInOrg:["GET /orgs/{org}/teams/{team_slug}/repos"],removeMembershipForUserInOrg:["DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}"],removeProjectInOrg:["DELETE /orgs/{org}/teams/{team_slug}/projects/{project_id}"],removeRepoInOrg:["DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],updateDiscussionCommentInOrg:["PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],updateDiscussionInOrg:["PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],updateInOrg:["PATCH /orgs/{org}/teams/{team_slug}"]},users:{addEmailForAuthenticated:["POST /user/emails",{},{renamed:["users","addEmailForAuthenticatedUser"]}],addEmailForAuthenticatedUser:["POST /user/emails"],addSocialAccountForAuthenticatedUser:["POST /user/social_accounts"],block:["PUT /user/blocks/{username}"],checkBlocked:["GET /user/blocks/{username}"],checkFollowingForUser:["GET /users/{username}/following/{target_user}"],checkPersonIsFollowedByAuthenticated:["GET /user/following/{username}"],createGpgKeyForAuthenticated:["POST /user/gpg_keys",{},{renamed:["users","createGpgKeyForAuthenticatedUser"]}],createGpgKeyForAuthenticatedUser:["POST /user/gpg_keys"],createPublicSshKeyForAuthenticated:["POST /user/keys",{},{renamed:["users","createPublicSshKeyForAuthenticatedUser"]}],createPublicSshKeyForAuthenticatedUser:["POST /user/keys"],createSshSigningKeyForAuthenticatedUser:["POST /user/ssh_signing_keys"],deleteEmailForAuthenticated:["DELETE /user/emails",{},{renamed:["users","deleteEmailForAuthenticatedUser"]}],deleteEmailForAuthenticatedUser:["DELETE /user/emails"],deleteGpgKeyForAuthenticated:["DELETE /user/gpg_keys/{gpg_key_id}",{},{renamed:["users","deleteGpgKeyForAuthenticatedUser"]}],deleteGpgKeyForAuthenticatedUser:["DELETE /user/gpg_keys/{gpg_key_id}"],deletePublicSshKeyForAuthenticated:["DELETE /user/keys/{key_id}",{},{renamed:["users","deletePublicSshKeyForAuthenticatedUser"]}],deletePublicSshKeyForAuthenticatedUser:["DELETE /user/keys/{key_id}"],deleteSocialAccountForAuthenticatedUser:["DELETE /user/social_accounts"],deleteSshSigningKeyForAuthenticatedUser:["DELETE /user/ssh_signing_keys/{ssh_signing_key_id}"],follow:["PUT /user/following/{username}"],getAuthenticated:["GET /user"],getByUsername:["GET /users/{username}"],getContextForUser:["GET /users/{username}/hovercard"],getGpgKeyForAuthenticated:["GET /user/gpg_keys/{gpg_key_id}",{},{renamed:["users","getGpgKeyForAuthenticatedUser"]}],getGpgKeyForAuthenticatedUser:["GET /user/gpg_keys/{gpg_key_id}"],getPublicSshKeyForAuthenticated:["GET /user/keys/{key_id}",{},{renamed:["users","getPublicSshKeyForAuthenticatedUser"]}],getPublicSshKeyForAuthenticatedUser:["GET /user/keys/{key_id}"],getSshSigningKeyForAuthenticatedUser:["GET /user/ssh_signing_keys/{ssh_signing_key_id}"],list:["GET /users"],listBlockedByAuthenticated:["GET /user/blocks",{},{renamed:["users","listBlockedByAuthenticatedUser"]}],listBlockedByAuthenticatedUser:["GET /user/blocks"],listEmailsForAuthenticated:["GET /user/emails",{},{renamed:["users","listEmailsForAuthenticatedUser"]}],listEmailsForAuthenticatedUser:["GET /user/emails"],listFollowedByAuthenticated:["GET /user/following",{},{renamed:["users","listFollowedByAuthenticatedUser"]}],listFollowedByAuthenticatedUser:["GET /user/following"],listFollowersForAuthenticatedUser:["GET /user/followers"],listFollowersForUser:["GET /users/{username}/followers"],listFollowingForUser:["GET /users/{username}/following"],listGpgKeysForAuthenticated:["GET /user/gpg_keys",{},{renamed:["users","listGpgKeysForAuthenticatedUser"]}],listGpgKeysForAuthenticatedUser:["GET /user/gpg_keys"],listGpgKeysForUser:["GET /users/{username}/gpg_keys"],listPublicEmailsForAuthenticated:["GET /user/public_emails",{},{renamed:["users","listPublicEmailsForAuthenticatedUser"]}],listPublicEmailsForAuthenticatedUser:["GET /user/public_emails"],listPublicKeysForUser:["GET /users/{username}/keys"],listPublicSshKeysForAuthenticated:["GET /user/keys",{},{renamed:["users","listPublicSshKeysForAuthenticatedUser"]}],listPublicSshKeysForAuthenticatedUser:["GET /user/keys"],listSocialAccountsForAuthenticatedUser:["GET /user/social_accounts"],listSocialAccountsForUser:["GET /users/{username}/social_accounts"],listSshSigningKeysForAuthenticatedUser:["GET /user/ssh_signing_keys"],listSshSigningKeysForUser:["GET /users/{username}/ssh_signing_keys"],setPrimaryEmailVisibilityForAuthenticated:["PATCH /user/email/visibility",{},{renamed:["users","setPrimaryEmailVisibilityForAuthenticatedUser"]}],setPrimaryEmailVisibilityForAuthenticatedUser:["PATCH /user/email/visibility"],unblock:["DELETE /user/blocks/{username}"],unfollow:["DELETE /user/following/{username}"],updateAuthenticated:["PATCH /user"]}};var a=i;var c=new Map;for(const[e,A]of Object.entries(a)){for(const[t,r]of Object.entries(A)){const[A,s,o]=r;const[n,i]=A.split(/ /);const a=Object.assign({method:n,url:i},s);if(!c.has(e)){c.set(e,new Map)}c.get(e).set(t,{scope:e,methodName:t,endpointDefaults:a,decorations:o})}}var g={has({scope:e},A){return c.get(e).has(A)},getOwnPropertyDescriptor(e,A){return{value:this.get(e,A),configurable:true,writable:true,enumerable:true}},defineProperty(e,A,t){Object.defineProperty(e.cache,A,t);return true},deleteProperty(e,A){delete e.cache[A];return true},ownKeys({scope:e}){return[...c.get(e).keys()]},set(e,A,t){return e.cache[A]=t},get({octokit:e,scope:A,cache:t},r){if(t[r]){return t[r]}const s=c.get(A).get(r);if(!s){return void 0}const{endpointDefaults:o,decorations:n}=s;if(n){t[r]=decorate(e,A,r,o,n)}else{t[r]=e.request.defaults(o)}return t[r]}};function endpointsToMethods(e){const A={};for(const t of c.keys()){A[t]=new Proxy({octokit:e,scope:t,cache:{}},g)}return A}function decorate(e,A,t,r,s){const o=e.request.defaults(r);function withDecorations(...r){let n=o.endpoint.merge(...r);if(s.mapToData){n=Object.assign({},n,{data:n[s.mapToData],[s.mapToData]:void 0});return o(n)}if(s.renamed){const[r,o]=s.renamed;e.log.warn(`octokit.${A}.${t}() has been renamed to octokit.${r}.${o}()`)}if(s.deprecated){e.log.warn(s.deprecated)}if(s.renamedParameters){const n=o.endpoint.merge(...r);for(const[r,o]of Object.entries(s.renamedParameters)){if(r in n){e.log.warn(`"${r}" parameter is deprecated for "octokit.${A}.${t}()". Use "${o}" instead`);if(!(o in n)){n[o]=n[r]}delete n[r]}}return o(n)}return o(...r)}return Object.assign(withDecorations,o)}function restEndpointMethods(e){const A=endpointsToMethods(e);return{rest:A}}restEndpointMethods.VERSION=n;function legacyRestEndpointMethods(e){const A=endpointsToMethods(e);return{...A,rest:A}}legacyRestEndpointMethods.VERSION=n;0&&0},3708:(e,A,t)=>{var r=Object.create;var s=Object.defineProperty;var o=Object.getOwnPropertyDescriptor;var n=Object.getOwnPropertyNames;var i=Object.getPrototypeOf;var a=Object.prototype.hasOwnProperty;var __export=(e,A)=>{for(var t in A)s(e,t,{get:A[t],enumerable:true})};var __copyProps=(e,A,t,r)=>{if(A&&typeof A==="object"||typeof A==="function"){for(let i of n(A))if(!a.call(e,i)&&i!==t)s(e,i,{get:()=>A[i],enumerable:!(r=o(A,i))||r.enumerable})}return e};var __toESM=(e,A,t)=>(t=e!=null?r(i(e)):{},__copyProps(A||!e||!e.__esModule?s(t,"default",{value:e,enumerable:true}):t,e));var __toCommonJS=e=>__copyProps(s({},"__esModule",{value:true}),e);var c={};__export(c,{RequestError:()=>h});e.exports=__toCommonJS(c);var g=t(4150);var E=__toESM(t(5560));var l=(0,E.default)((e=>console.warn(e)));var u=(0,E.default)((e=>console.warn(e)));var h=class extends Error{constructor(e,A,t){super(e);if(Error.captureStackTrace){Error.captureStackTrace(this,this.constructor)}this.name="HttpError";this.status=A;let r;if("headers"in t&&typeof t.headers!=="undefined"){r=t.headers}if("response"in t){this.response=t.response;r=t.response.headers}const s=Object.assign({},t.request);if(t.request.headers.authorization){s.headers=Object.assign({},t.request.headers,{authorization:t.request.headers.authorization.replace(/(?<! ) .*$/," [REDACTED]")})}s.url=s.url.replace(/\bclient_secret=\w+/g,"client_secret=[REDACTED]").replace(/\baccess_token=\w+/g,"access_token=[REDACTED]");this.request=s;Object.defineProperty(this,"code",{get(){l(new g.Deprecation("[@octokit/request-error] `error.code` is deprecated, use `error.status`."));return A}});Object.defineProperty(this,"headers",{get(){u(new g.Deprecation("[@octokit/request-error] `error.headers` is deprecated, use `error.response.headers`."));return r||{}}})}};0&&0},8636:(e,A,t)=>{var r=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var o=Object.getOwnPropertyNames;var n=Object.prototype.hasOwnProperty;var __export=(e,A)=>{for(var t in A)r(e,t,{get:A[t],enumerable:true})};var __copyProps=(e,A,t,i)=>{if(A&&typeof A==="object"||typeof A==="function"){for(let a of o(A))if(!n.call(e,a)&&a!==t)r(e,a,{get:()=>A[a],enumerable:!(i=s(A,a))||i.enumerable})}return e};var __toCommonJS=e=>__copyProps(r({},"__esModule",{value:true}),e);var i={};__export(i,{request:()=>l});e.exports=__toCommonJS(i);var a=t(4471);var c=t(3843);var g="8.4.1";function isPlainObject(e){if(typeof e!=="object"||e===null)return false;if(Object.prototype.toString.call(e)!=="[object Object]")return false;const A=Object.getPrototypeOf(e);if(A===null)return true;const t=Object.prototype.hasOwnProperty.call(A,"constructor")&&A.constructor;return typeof t==="function"&&t instanceof t&&Function.prototype.call(t)===Function.prototype.call(e)}var E=t(3708);function getBufferResponse(e){return e.arrayBuffer()}function fetchWrapper(e){var A,t,r,s;const o=e.request&&e.request.log?e.request.log:console;const n=((A=e.request)==null?void 0:A.parseSuccessResponseBody)!==false;if(isPlainObject(e.body)||Array.isArray(e.body)){e.body=JSON.stringify(e.body)}let i={};let a;let c;let{fetch:g}=globalThis;if((t=e.request)==null?void 0:t.fetch){g=e.request.fetch}if(!g){throw new Error("fetch is not set. Please pass a fetch implementation as new Octokit({ request: { fetch }}). Learn more at https://github.com/octokit/octokit.js/#fetch-missing")}return g(e.url,{method:e.method,body:e.body,redirect:(r=e.request)==null?void 0:r.redirect,headers:e.headers,signal:(s=e.request)==null?void 0:s.signal,...e.body&&{duplex:"half"}}).then((async A=>{c=A.url;a=A.status;for(const e of A.headers){i[e[0]]=e[1]}if("deprecation"in i){const A=i.link&&i.link.match(/<([^<>]+)>; rel="deprecation"/);const t=A&&A.pop();o.warn(`[@octokit/request] "${e.method} ${e.url}" is deprecated. It is scheduled to be removed on ${i.sunset}${t?`. See ${t}`:""}`)}if(a===204||a===205){return}if(e.method==="HEAD"){if(a<400){return}throw new E.RequestError(A.statusText,a,{response:{url:c,status:a,headers:i,data:void 0},request:e})}if(a===304){throw new E.RequestError("Not modified",a,{response:{url:c,status:a,headers:i,data:await getResponseData(A)},request:e})}if(a>=400){const t=await getResponseData(A);const r=new E.RequestError(toErrorMessage(t),a,{response:{url:c,status:a,headers:i,data:t},request:e});throw r}return n?await getResponseData(A):A.body})).then((e=>({status:a,url:c,headers:i,data:e}))).catch((A=>{if(A instanceof E.RequestError)throw A;else if(A.name==="AbortError")throw A;let t=A.message;if(A.name==="TypeError"&&"cause"in A){if(A.cause instanceof Error){t=A.cause.message}else if(typeof A.cause==="string"){t=A.cause}}throw new E.RequestError(t,500,{request:e})}))}async function getResponseData(e){const A=e.headers.get("content-type");if(/application\/json/.test(A)){return e.json().catch((()=>e.text())).catch((()=>""))}if(!A||/^text\/|charset=utf-8$/.test(A)){return e.text()}return getBufferResponse(e)}function toErrorMessage(e){if(typeof e==="string")return e;let A;if("documentation_url"in e){A=` - ${e.documentation_url}`}else{A=""}if("message"in e){if(Array.isArray(e.errors)){return`${e.message}: ${e.errors.map(JSON.stringify).join(", ")}${A}`}return`${e.message}${A}`}return`Unknown error: ${JSON.stringify(e)}`}function withDefaults(e,A){const t=e.defaults(A);const newApi=function(e,A){const r=t.merge(e,A);if(!r.request||!r.request.hook){return fetchWrapper(t.parse(r))}const request2=(e,A)=>fetchWrapper(t.parse(t.merge(e,A)));Object.assign(request2,{endpoint:t,defaults:withDefaults.bind(null,t)});return r.request.hook(request2,r)};return Object.assign(newApi,{endpoint:t,defaults:withDefaults.bind(null,t)})}var l=withDefaults(a.endpoint,{headers:{"user-agent":`octokit-request.js/${g} ${(0,c.getUserAgent)()}`}});0&&0},2732:(e,A,t)=>{var r=t(1063);var s=t(2027);var o=t(9934);var n=Function.bind;var i=n.bind(n);function bindApi(e,A,t){var r=i(o,null).apply(null,t?[A,t]:[A]);e.api={remove:r};e.remove=r;["before","error","after","wrap"].forEach((function(r){var o=t?[A,r,t]:[A,r];e[r]=e.api[r]=i(s,null).apply(null,o)}))}function HookSingular(){var e="h";var A={registry:{}};var t=r.bind(null,A,e);bindApi(t,A,e);return t}function HookCollection(){var e={registry:{}};var A=r.bind(null,e);bindApi(A,e);return A}var a=false;function Hook(){if(!a){console.warn('[before-after-hook]: "Hook()" repurposing warning, use "Hook.Collection()". Read more: https://git.io/upgrade-before-after-hook-to-1.4');a=true}return HookCollection()}Hook.Singular=HookSingular.bind();Hook.Collection=HookCollection.bind();e.exports=Hook;e.exports.Hook=Hook;e.exports.Singular=Hook.Singular;e.exports.Collection=Hook.Collection},2027:e=>{e.exports=addHook;function addHook(e,A,t,r){var s=r;if(!e.registry[t]){e.registry[t]=[]}if(A==="before"){r=function(e,A){return Promise.resolve().then(s.bind(null,A)).then(e.bind(null,A))}}if(A==="after"){r=function(e,A){var t;return Promise.resolve().then(e.bind(null,A)).then((function(e){t=e;return s(t,A)})).then((function(){return t}))}}if(A==="error"){r=function(e,A){return Promise.resolve().then(e.bind(null,A)).catch((function(e){return s(e,A)}))}}e.registry[t].push({hook:r,orig:s})}},1063:e=>{e.exports=register;function register(e,A,t,r){if(typeof t!=="function"){throw new Error("method for before hook must be a function")}if(!r){r={}}if(Array.isArray(A)){return A.reverse().reduce((function(A,t){return register.bind(null,e,t,A,r)}),t)()}return Promise.resolve().then((function(){if(!e.registry[A]){return t(r)}return e.registry[A].reduce((function(e,A){return A.hook.bind(null,e,r)}),t)()}))}},9934:e=>{e.exports=removeHook;function removeHook(e,A,t){if(!e.registry[A]){return}var r=e.registry[A].map((function(e){return e.orig})).indexOf(t);if(r===-1){return}e.registry[A].splice(r,1)}},4150:(e,A)=>{Object.defineProperty(A,"__esModule",{value:true});class Deprecation extends Error{constructor(e){super(e);if(Error.captureStackTrace){Error.captureStackTrace(this,this.constructor)}this.name="Deprecation"}}A.Deprecation=Deprecation},5560:(e,A,t)=>{var r=t(8264);e.exports=r(once);e.exports.strict=r(onceStrict);once.proto=once((function(){Object.defineProperty(Function.prototype,"once",{value:function(){return once(this)},configurable:true});Object.defineProperty(Function.prototype,"onceStrict",{value:function(){return onceStrict(this)},configurable:true})}));function once(e){var f=function(){if(f.called)return f.value;f.called=true;return f.value=e.apply(this,arguments)};f.called=false;return f}function onceStrict(e){var f=function(){if(f.called)throw new Error(f.onceError);f.called=true;return f.value=e.apply(this,arguments)};var A=e.name||"Function wrapped with `once`";f.onceError=A+" shouldn't be called more than once";f.called=false;return f}},4006:(e,A,t)=>{const r=t(8016);const s=t(4059);function picomatch(e,A,t=false){if(A&&(A.windows===null||A.windows===undefined)){A={...A,windows:s.isWindows()}}return r(e,A,t)}Object.assign(picomatch,r);e.exports=picomatch},5595:e=>{const A="\\\\/";const t=`[^${A}]`;const r=0;const s="\\.";const o="\\+";const n="\\?";const i="\\/";const a="(?=.)";const c="[^/]";const g=`(?:${i}|$)`;const E=`(?:^|${i})`;const l=`${s}{1,2}${g}`;const u=`(?!${s})`;const h=`(?!${E}${l})`;const Q=`(?!${s}{0,1}${g})`;const C=`(?!${l})`;const B=`[^.${i}]`;const I=`${c}*?`;const d="/";const p={DOT_LITERAL:s,PLUS_LITERAL:o,QMARK_LITERAL:n,SLASH_LITERAL:i,ONE_CHAR:a,QMARK:c,END_ANCHOR:g,DOTS_SLASH:l,NO_DOT:u,NO_DOTS:h,NO_DOT_SLASH:Q,NO_DOTS_SLASH:C,QMARK_NO_DOT:B,STAR:I,START_ANCHOR:E,SEP:d};const m={...p,SLASH_LITERAL:`[${A}]`,QMARK:t,STAR:`${t}*?`,DOTS_SLASH:`${s}{1,2}(?:[${A}]|$)`,NO_DOT:`(?!${s})`,NO_DOTS:`(?!(?:^|[${A}])${s}{1,2}(?:[${A}]|$))`,NO_DOT_SLASH:`(?!${s}{0,1}(?:[${A}]|$))`,NO_DOTS_SLASH:`(?!${s}{1,2}(?:[${A}]|$))`,QMARK_NO_DOT:`[^.${A}]`,START_ANCHOR:`(?:^|[${A}])`,END_ANCHOR:`(?:[${A}]|$)`,SEP:"\\"};const y={__proto__:null,alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"\\x21-\\x7E",lower:"a-z",print:"\\x20-\\x7E ",punct:"\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~",space:" \\t\\r\\n\\v\\f",upper:"A-Z",word:"A-Za-z0-9_",xdigit:"A-Fa-f0-9"};e.exports={DEFAULT_MAX_EXTGLOB_RECURSION:r,MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:y,REGEX_BACKSLASH:/\\(?![*+?^${}(|)[\]])/g,REGEX_NON_SPECIAL_CHARS:/^[^@![\].,$*+?^{}()|\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\?)((\W)(\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\[.*?[^\\]\]|\\(?=.))/g,REPLACEMENTS:{__proto__:null,"***":"*","**/**":"**","**/**/**":"**"},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,extglobChars(e){return{"!":{type:"negate",open:"(?:(?!(?:",close:`))${e.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}},globChars(e){return e===true?m:p}}},8265:(e,A,t)=>{const r=t(5595);const s=t(4059);const{MAX_LENGTH:o,POSIX_REGEX_SOURCE:n,REGEX_NON_SPECIAL_CHARS:i,REGEX_SPECIAL_CHARS_BACKREF:a,REPLACEMENTS:c}=r;const expandRange=(e,A)=>{if(typeof A.expandRange==="function"){return A.expandRange(...e,A)}e.sort();const t=`[${e.join("-")}]`;try{new RegExp(t)}catch(A){return e.map((e=>s.escapeRegex(e))).join("..")}return t};const syntaxError=(e,A)=>`Missing ${e}: "${A}" - use "\\\\${A}" to match literal characters`;const splitTopLevel=e=>{const A=[];let t=0;let r=0;let s=0;let o="";let n=false;for(const i of e){if(n===true){o+=i;n=false;continue}if(i==="\\"){o+=i;n=true;continue}if(i==='"'){s=s===1?0:1;o+=i;continue}if(s===0){if(i==="["){t++}else if(i==="]"&&t>0){t--}else if(t===0){if(i==="("){r++}else if(i===")"&&r>0){r--}else if(i==="|"&&r===0){A.push(o);o="";continue}}}o+=i}A.push(o);return A};const isPlainBranch=e=>{let A=false;for(const t of e){if(A===true){A=false;continue}if(t==="\\"){A=true;continue}if(/[?*+@!()[\]{}]/.test(t)){return false}}return true};const normalizeSimpleBranch=e=>{let A=e.trim();let t=true;while(t===true){t=false;if(/^@\([^\\()[\]{}|]+\)$/.test(A)){A=A.slice(2,-1);t=true}}if(!isPlainBranch(A)){return}return A.replace(/\\(.)/g,"$1")};const hasRepeatedCharPrefixOverlap=e=>{const A=e.map(normalizeSimpleBranch).filter(Boolean);for(let e=0;e<A.length;e++){for(let t=e+1;t<A.length;t++){const r=A[e];const s=A[t];const o=r[0];if(!o||r!==o.repeat(r.length)||s!==o.repeat(s.length)){continue}if(r===s||r.startsWith(s)||s.startsWith(r)){return true}}}return false};const parseRepeatedExtglob=(e,A=true)=>{if(e[0]!=="+"&&e[0]!=="*"||e[1]!=="("){return}let t=0;let r=0;let s=0;let o=false;for(let n=1;n<e.length;n++){const i=e[n];if(o===true){o=false;continue}if(i==="\\"){o=true;continue}if(i==='"'){s=s===1?0:1;continue}if(s===1){continue}if(i==="["){t++;continue}if(i==="]"&&t>0){t--;continue}if(t>0){continue}if(i==="("){r++;continue}if(i===")"){r--;if(r===0){if(A===true&&n!==e.length-1){return}return{type:e[0],body:e.slice(2,n),end:n}}}}};const buildCharClassStar=e=>{const A=e.length===1?s.escapeRegex(e[0]):`[${e.map((e=>s.escapeRegex(e))).join("")}]`;return`${A}*`};const getStarExtglobSequenceChars=e=>{let A=0;const t=[];while(A<e.length){const r=parseRepeatedExtglob(e.slice(A),false);if(!r||r.type!=="*"){return}const s=splitTopLevel(r.body).map((e=>e.trim()));if(s.length!==1){return}const o=normalizeSimpleBranch(s[0]);if(!o||o.length!==1){return}t.push(o);A+=r.end+1}if(t.length<1){return}return t};const repeatedExtglobRecursion=e=>{let A=0;let t=e.trim();let r=parseRepeatedExtglob(t);while(r){A++;t=r.body.trim();r=parseRepeatedExtglob(t)}return A};const analyzeRepeatedExtglob=(e,A)=>{if(A.maxExtglobRecursion===false){return{risky:false}}const t=typeof A.maxExtglobRecursion==="number"?A.maxExtglobRecursion:r.DEFAULT_MAX_EXTGLOB_RECURSION;const s=splitTopLevel(e).map((e=>e.trim()));if(s.length>1){if(s.some((e=>e===""))||s.some((e=>/^[*?]+$/.test(e)))||hasRepeatedCharPrefixOverlap(s)){return{risky:true}}}const o=[];let n=false;let i=true;for(const e of s){const A=getStarExtglobSequenceChars(e);if(A){n=true;o.push(...A);continue}const r=normalizeSimpleBranch(e);if(r&&r.length===1){o.push(r);continue}i=false;if(repeatedExtglobRecursion(e)>t){return{risky:true}}}if(n){return i?{risky:true,safeOutput:buildCharClassStar([...new Set(o)])}:{risky:true}}return{risky:false}};const parse=(e,A)=>{if(typeof e!=="string"){throw new TypeError("Expected a string")}e=c[e]||e;const t={...A};const g=typeof t.maxLength==="number"?Math.min(o,t.maxLength):o;let E=e.length;if(E>g){throw new SyntaxError(`Input length: ${E}, exceeds maximum allowed length: ${g}`)}const l={type:"bos",value:"",output:t.prepend||""};const u=[l];const h=t.capture?"":"?:";const Q=r.globChars(t.windows);const C=r.extglobChars(Q);const{DOT_LITERAL:B,PLUS_LITERAL:I,SLASH_LITERAL:d,ONE_CHAR:p,DOTS_SLASH:m,NO_DOT:y,NO_DOT_SLASH:w,NO_DOTS_SLASH:R,QMARK:b,QMARK_NO_DOT:k,STAR:D,START_ANCHOR:S}=Q;const globstar=e=>`(${h}(?:(?!${S}${e.dot?m:B}).)*?)`;const F=t.dot?"":y;const T=t.dot?b:k;let N=t.bash===true?globstar(t):D;if(t.capture){N=`(${N})`}if(typeof t.noext==="boolean"){t.noextglob=t.noext}const U={input:e,index:-1,start:0,dot:t.dot===true,consumed:"",output:"",prefix:"",backtrack:false,negated:false,brackets:0,braces:0,parens:0,quotes:0,globstar:false,tokens:u};e=s.removePrefix(e,U);E=e.length;const L=[];const v=[];const G=[];let M=l;let _;const eos=()=>U.index===E-1;const H=U.peek=(A=1)=>e[U.index+A];const O=U.advance=()=>e[++U.index]||"";const remaining=()=>e.slice(U.index+1);const consume=(e="",A=0)=>{U.consumed+=e;U.index+=A};const append=e=>{U.output+=e.output!=null?e.output:e.value;consume(e.value)};const negate=()=>{let e=1;while(H()==="!"&&(H(2)!=="("||H(3)==="?")){O();U.start++;e++}if(e%2===0){return false}U.negated=true;U.start++;return true};const increment=e=>{U[e]++;G.push(e)};const decrement=e=>{U[e]--;G.pop()};const push=e=>{if(M.type==="globstar"){const A=U.braces>0&&(e.type==="comma"||e.type==="brace");const t=e.extglob===true||L.length&&(e.type==="pipe"||e.type==="paren");if(e.type!=="slash"&&e.type!=="paren"&&!A&&!t){U.output=U.output.slice(0,-M.output.length);M.type="star";M.value="*";M.output=N;U.output+=M.output}}if(L.length&&e.type!=="paren"){L[L.length-1].inner+=e.value}if(e.value||e.output)append(e);if(M&&M.type==="text"&&e.type==="text"){M.output=(M.output||M.value)+e.value;M.value+=e.value;return}e.prev=M;u.push(e);M=e};const extglobOpen=(e,A)=>{const r={...C[A],conditions:1,inner:""};r.prev=M;r.parens=U.parens;r.output=U.output;r.startIndex=U.index;r.tokensIndex=u.length;const s=(t.capture?"(":"")+r.open;increment("parens");push({type:e,value:A,output:U.output?"":p});push({type:"paren",extglob:true,value:O(),output:s});L.push(r)};const extglobClose=r=>{const o=e.slice(r.startIndex,U.index+1);const n=e.slice(r.startIndex+2,U.index);const i=analyzeRepeatedExtglob(n,t);if((r.type==="plus"||r.type==="star")&&i.risky){const e=i.safeOutput?(r.output?"":p)+(t.capture?`(${i.safeOutput})`:i.safeOutput):undefined;const A=u[r.tokensIndex];A.type="text";A.value=o;A.output=e||s.escapeRegex(o);for(let e=r.tokensIndex+1;e<u.length;e++){u[e].value="";u[e].output="";delete u[e].suffix}U.output=r.output+A.output;U.backtrack=true;push({type:"paren",extglob:true,value:_,output:""});decrement("parens");return}let a=r.close+(t.capture?")":"");let c;if(r.type==="negate"){let e=N;if(r.inner&&r.inner.length>1&&r.inner.includes("/")){e=globstar(t)}if(e!==N||eos()||/^\)+$/.test(remaining())){a=r.close=`)$))${e}`}if(r.inner.includes("*")&&(c=remaining())&&/^\.[^\\/.]+$/.test(c)){const t=parse(c,{...A,fastpaths:false}).output;a=r.close=`)${t})${e})`}if(r.prev.type==="bos"){U.negatedExtglob=true}}push({type:"paren",extglob:true,value:_,output:a});decrement("parens")};if(t.fastpaths!==false&&!/(^[*!]|[/()[\]{}"])/.test(e)){let r=false;let o=e.replace(a,((e,A,t,s,o,n)=>{if(s==="\\"){r=true;return e}if(s==="?"){if(A){return A+s+(o?b.repeat(o.length):"")}if(n===0){return T+(o?b.repeat(o.length):"")}return b.repeat(t.length)}if(s==="."){return B.repeat(t.length)}if(s==="*"){if(A){return A+s+(o?N:"")}return N}return A?e:`\\${e}`}));if(r===true){if(t.unescape===true){o=o.replace(/\\/g,"")}else{o=o.replace(/\\+/g,(e=>e.length%2===0?"\\\\":e?"\\":""))}}if(o===e&&t.contains===true){U.output=e;return U}U.output=s.wrapOutput(o,U,A);return U}while(!eos()){_=O();if(_==="\0"){continue}if(_==="\\"){const e=H();if(e==="/"&&t.bash!==true){continue}if(e==="."||e===";"){continue}if(!e){_+="\\";push({type:"text",value:_});continue}const A=/^\\+/.exec(remaining());let r=0;if(A&&A[0].length>2){r=A[0].length;U.index+=r;if(r%2!==0){_+="\\"}}if(t.unescape===true){_=O()}else{_+=O()}if(U.brackets===0){push({type:"text",value:_});continue}}if(U.brackets>0&&(_!=="]"||M.value==="["||M.value==="[^")){if(t.posix!==false&&_===":"){const e=M.value.slice(1);if(e.includes("[")){M.posix=true;if(e.includes(":")){const e=M.value.lastIndexOf("[");const A=M.value.slice(0,e);const t=M.value.slice(e+2);const r=n[t];if(r){M.value=A+r;U.backtrack=true;O();if(!l.output&&u.indexOf(M)===1){l.output=p}continue}}}}if(_==="["&&H()!==":"||_==="-"&&H()==="]"){_=`\\${_}`}if(_==="]"&&(M.value==="["||M.value==="[^")){_=`\\${_}`}if(t.posix===true&&_==="!"&&M.value==="["){_="^"}M.value+=_;append({value:_});continue}if(U.quotes===1&&_!=='"'){_=s.escapeRegex(_);M.value+=_;append({value:_});continue}if(_==='"'){U.quotes=U.quotes===1?0:1;if(t.keepQuotes===true){push({type:"text",value:_})}continue}if(_==="("){increment("parens");push({type:"paren",value:_});continue}if(_===")"){if(U.parens===0&&t.strictBrackets===true){throw new SyntaxError(syntaxError("opening","("))}const e=L[L.length-1];if(e&&U.parens===e.parens+1){extglobClose(L.pop());continue}push({type:"paren",value:_,output:U.parens?")":"\\)"});decrement("parens");continue}if(_==="["){if(t.nobracket===true||!remaining().includes("]")){if(t.nobracket!==true&&t.strictBrackets===true){throw new SyntaxError(syntaxError("closing","]"))}_=`\\${_}`}else{increment("brackets")}push({type:"bracket",value:_});continue}if(_==="]"){if(t.nobracket===true||M&&M.type==="bracket"&&M.value.length===1){push({type:"text",value:_,output:`\\${_}`});continue}if(U.brackets===0){if(t.strictBrackets===true){throw new SyntaxError(syntaxError("opening","["))}push({type:"text",value:_,output:`\\${_}`});continue}decrement("brackets");const e=M.value.slice(1);if(M.posix!==true&&e[0]==="^"&&!e.includes("/")){_=`/${_}`}M.value+=_;append({value:_});if(t.literalBrackets===false||s.hasRegexChars(e)){continue}const A=s.escapeRegex(M.value);U.output=U.output.slice(0,-M.value.length);if(t.literalBrackets===true){U.output+=A;M.value=A;continue}M.value=`(${h}${A}|${M.value})`;U.output+=M.value;continue}if(_==="{"&&t.nobrace!==true){increment("braces");const e={type:"brace",value:_,output:"(",outputIndex:U.output.length,tokensIndex:U.tokens.length};v.push(e);push(e);continue}if(_==="}"){const e=v[v.length-1];if(t.nobrace===true||!e){push({type:"text",value:_,output:_});continue}let A=")";if(e.dots===true){const e=u.slice();const r=[];for(let A=e.length-1;A>=0;A--){u.pop();if(e[A].type==="brace"){break}if(e[A].type!=="dots"){r.unshift(e[A].value)}}A=expandRange(r,t);U.backtrack=true}if(e.comma!==true&&e.dots!==true){const t=U.output.slice(0,e.outputIndex);const r=U.tokens.slice(e.tokensIndex);e.value=e.output="\\{";_=A="\\}";U.output=t;for(const e of r){U.output+=e.output||e.value}}push({type:"brace",value:_,output:A});decrement("braces");v.pop();continue}if(_==="|"){if(L.length>0){L[L.length-1].conditions++}push({type:"text",value:_});continue}if(_===","){let e=_;const A=v[v.length-1];if(A&&G[G.length-1]==="braces"){A.comma=true;e="|"}push({type:"comma",value:_,output:e});continue}if(_==="/"){if(M.type==="dot"&&U.index===U.start+1){U.start=U.index+1;U.consumed="";U.output="";u.pop();M=l;continue}push({type:"slash",value:_,output:d});continue}if(_==="."){if(U.braces>0&&M.type==="dot"){if(M.value===".")M.output=B;const e=v[v.length-1];M.type="dots";M.output+=_;M.value+=_;e.dots=true;continue}if(U.braces+U.parens===0&&M.type!=="bos"&&M.type!=="slash"){push({type:"text",value:_,output:B});continue}push({type:"dot",value:_,output:B});continue}if(_==="?"){const e=M&&M.value==="(";if(!e&&t.noextglob!==true&&H()==="("&&H(2)!=="?"){extglobOpen("qmark",_);continue}if(M&&M.type==="paren"){const e=H();let A=_;if(M.value==="("&&!/[!=<:]/.test(e)||e==="<"&&!/<([!=]|\w+>)/.test(remaining())){A=`\\${_}`}push({type:"text",value:_,output:A});continue}if(t.dot!==true&&(M.type==="slash"||M.type==="bos")){push({type:"qmark",value:_,output:k});continue}push({type:"qmark",value:_,output:b});continue}if(_==="!"){if(t.noextglob!==true&&H()==="("){if(H(2)!=="?"||!/[!=<:]/.test(H(3))){extglobOpen("negate",_);continue}}if(t.nonegate!==true&&U.index===0){negate();continue}}if(_==="+"){if(t.noextglob!==true&&H()==="("&&H(2)!=="?"){extglobOpen("plus",_);continue}if(M&&M.value==="("||t.regex===false){push({type:"plus",value:_,output:I});continue}if(M&&(M.type==="bracket"||M.type==="paren"||M.type==="brace")||U.parens>0){push({type:"plus",value:_});continue}push({type:"plus",value:I});continue}if(_==="@"){if(t.noextglob!==true&&H()==="("&&H(2)!=="?"){push({type:"at",extglob:true,value:_,output:""});continue}push({type:"text",value:_});continue}if(_!=="*"){if(_==="$"||_==="^"){_=`\\${_}`}const e=i.exec(remaining());if(e){_+=e[0];U.index+=e[0].length}push({type:"text",value:_});continue}if(M&&(M.type==="globstar"||M.star===true)){M.type="star";M.star=true;M.value+=_;M.output=N;U.backtrack=true;U.globstar=true;consume(_);continue}let A=remaining();if(t.noextglob!==true&&/^\([^?]/.test(A)){extglobOpen("star",_);continue}if(M.type==="star"){if(t.noglobstar===true){consume(_);continue}const r=M.prev;const s=r.prev;const o=r.type==="slash"||r.type==="bos";const n=s&&(s.type==="star"||s.type==="globstar");if(t.bash===true&&(!o||A[0]&&A[0]!=="/")){push({type:"star",value:_,output:""});continue}const i=U.braces>0&&(r.type==="comma"||r.type==="brace");const a=L.length&&(r.type==="pipe"||r.type==="paren");if(!o&&r.type!=="paren"&&!i&&!a){push({type:"star",value:_,output:""});continue}while(A.slice(0,3)==="/**"){const t=e[U.index+4];if(t&&t!=="/"){break}A=A.slice(3);consume("/**",3)}if(r.type==="bos"&&eos()){M.type="globstar";M.value+=_;M.output=globstar(t);U.output=M.output;U.globstar=true;consume(_);continue}if(r.type==="slash"&&r.prev.type!=="bos"&&!n&&eos()){U.output=U.output.slice(0,-(r.output+M.output).length);r.output=`(?:${r.output}`;M.type="globstar";M.output=globstar(t)+(t.strictSlashes?")":"|$)");M.value+=_;U.globstar=true;U.output+=r.output+M.output;consume(_);continue}if(r.type==="slash"&&r.prev.type!=="bos"&&A[0]==="/"){const e=A[1]!==void 0?"|$":"";U.output=U.output.slice(0,-(r.output+M.output).length);r.output=`(?:${r.output}`;M.type="globstar";M.output=`${globstar(t)}${d}|${d}${e})`;M.value+=_;U.output+=r.output+M.output;U.globstar=true;consume(_+O());push({type:"slash",value:"/",output:""});continue}if(r.type==="bos"&&A[0]==="/"){M.type="globstar";M.value+=_;M.output=`(?:^|${d}|${globstar(t)}${d})`;U.output=M.output;U.globstar=true;consume(_+O());push({type:"slash",value:"/",output:""});continue}U.output=U.output.slice(0,-M.output.length);M.type="globstar";M.output=globstar(t);M.value+=_;U.output+=M.output;U.globstar=true;consume(_);continue}const r={type:"star",value:_,output:N};if(t.bash===true){r.output=".*?";if(M.type==="bos"||M.type==="slash"){r.output=F+r.output}push(r);continue}if(M&&(M.type==="bracket"||M.type==="paren")&&t.regex===true){r.output=_;push(r);continue}if(U.index===U.start||M.type==="slash"||M.type==="dot"){if(M.type==="dot"){U.output+=w;M.output+=w}else if(t.dot===true){U.output+=R;M.output+=R}else{U.output+=F;M.output+=F}if(H()!=="*"){U.output+=p;M.output+=p}}push(r)}while(U.brackets>0){if(t.strictBrackets===true)throw new SyntaxError(syntaxError("closing","]"));U.output=s.escapeLast(U.output,"[");decrement("brackets")}while(U.parens>0){if(t.strictBrackets===true)throw new SyntaxError(syntaxError("closing",")"));U.output=s.escapeLast(U.output,"(");decrement("parens")}while(U.braces>0){if(t.strictBrackets===true)throw new SyntaxError(syntaxError("closing","}"));U.output=s.escapeLast(U.output,"{");decrement("braces")}if(t.strictSlashes!==true&&(M.type==="star"||M.type==="bracket")){push({type:"maybe_slash",value:"",output:`${d}?`})}if(U.backtrack===true){U.output="";for(const e of U.tokens){U.output+=e.output!=null?e.output:e.value;if(e.suffix){U.output+=e.suffix}}}return U};parse.fastpaths=(e,A)=>{const t={...A};const n=typeof t.maxLength==="number"?Math.min(o,t.maxLength):o;const i=e.length;if(i>n){throw new SyntaxError(`Input length: ${i}, exceeds maximum allowed length: ${n}`)}e=c[e]||e;const{DOT_LITERAL:a,SLASH_LITERAL:g,ONE_CHAR:E,DOTS_SLASH:l,NO_DOT:u,NO_DOTS:h,NO_DOTS_SLASH:Q,STAR:C,START_ANCHOR:B}=r.globChars(t.windows);const I=t.dot?h:u;const d=t.dot?Q:u;const p=t.capture?"":"?:";const m={negated:false,prefix:""};let y=t.bash===true?".*?":C;if(t.capture){y=`(${y})`}const globstar=e=>{if(e.noglobstar===true)return y;return`(${p}(?:(?!${B}${e.dot?l:a}).)*?)`};const create=e=>{switch(e){case"*":return`${I}${E}${y}`;case".*":return`${a}${E}${y}`;case"*.*":return`${I}${y}${a}${E}${y}`;case"*/*":return`${I}${y}${g}${E}${d}${y}`;case"**":return I+globstar(t);case"**/*":return`(?:${I}${globstar(t)}${g})?${d}${E}${y}`;case"**/*.*":return`(?:${I}${globstar(t)}${g})?${d}${y}${a}${E}${y}`;case"**/.*":return`(?:${I}${globstar(t)}${g})?${a}${E}${y}`;default:{const A=/^(.*?)\.(\w+)$/.exec(e);if(!A)return;const t=create(A[1]);if(!t)return;return t+a+A[2]}}};const w=s.removePrefix(e,m);let R=create(w);if(R&&t.strictSlashes!==true){R+=`${g}?`}return R};e.exports=parse},8016:(e,A,t)=>{const r=t(1781);const s=t(8265);const o=t(4059);const n=t(5595);const isObject=e=>e&&typeof e==="object"&&!Array.isArray(e);const picomatch=(e,A,t=false)=>{if(Array.isArray(e)){const r=e.map((e=>picomatch(e,A,t)));const arrayMatcher=e=>{for(const A of r){const t=A(e);if(t)return t}return false};return arrayMatcher}const r=isObject(e)&&e.tokens&&e.input;if(e===""||typeof e!=="string"&&!r){throw new TypeError("Expected pattern to be a non-empty string")}const s=A||{};const o=s.windows;const n=r?picomatch.compileRe(e,A):picomatch.makeRe(e,A,false,true);const i=n.state;delete n.state;let isIgnored=()=>false;if(s.ignore){const e={...A,ignore:null,onMatch:null,onResult:null};isIgnored=picomatch(s.ignore,e,t)}const matcher=(t,r=false)=>{const{isMatch:a,match:c,output:g}=picomatch.test(t,n,A,{glob:e,posix:o});const E={glob:e,state:i,regex:n,posix:o,input:t,output:g,match:c,isMatch:a};if(typeof s.onResult==="function"){s.onResult(E)}if(a===false){E.isMatch=false;return r?E:false}if(isIgnored(t)){if(typeof s.onIgnore==="function"){s.onIgnore(E)}E.isMatch=false;return r?E:false}if(typeof s.onMatch==="function"){s.onMatch(E)}return r?E:true};if(t){matcher.state=i}return matcher};picomatch.test=(e,A,t,{glob:r,posix:s}={})=>{if(typeof e!=="string"){throw new TypeError("Expected input to be a string")}if(e===""){return{isMatch:false,output:""}}const n=t||{};const i=n.format||(s?o.toPosixSlashes:null);let a=e===r;let c=a&&i?i(e):e;if(a===false){c=i?i(e):e;a=c===r}if(a===false||n.capture===true){if(n.matchBase===true||n.basename===true){a=picomatch.matchBase(e,A,t,s)}else{a=A.exec(c)}}return{isMatch:Boolean(a),match:a,output:c}};picomatch.matchBase=(e,A,t,r=t&&t.windows)=>{const s=A instanceof RegExp?A:picomatch.makeRe(A,t);return s.test(o.basename(e,{windows:r}))};picomatch.isMatch=(e,A,t)=>picomatch(A,t)(e);picomatch.parse=(e,A)=>{if(Array.isArray(e))return e.map((e=>picomatch.parse(e,A)));return s(e,{...A,fastpaths:false})};picomatch.scan=(e,A)=>r(e,A);picomatch.compileRe=(e,A,t=false,r=false)=>{if(t===true){return e.output}const s=A||{};const o=s.contains?"":"^";const n=s.contains?"":"$";let i=`${o}(?:${e.output})${n}`;if(e&&e.negated===true){i=`^(?!${i}).*$`}const a=picomatch.toRegex(i,A);if(r===true){a.state=e}return a};picomatch.makeRe=(e,A={},t=false,r=false)=>{if(!e||typeof e!=="string"){throw new TypeError("Expected a non-empty string")}let o={negated:false,fastpaths:true};if(A.fastpaths!==false&&(e[0]==="."||e[0]==="*")){o.output=s.fastpaths(e,A)}if(!o.output){o=s(e,A)}return picomatch.compileRe(o,A,t,r)};picomatch.toRegex=(e,A)=>{try{const t=A||{};return new RegExp(e,t.flags||(t.nocase?"i":""))}catch(e){if(A&&A.debug===true)throw e;return/$^/}};picomatch.constants=n;e.exports=picomatch},1781:(e,A,t)=>{const r=t(4059);const{CHAR_ASTERISK:s,CHAR_AT:o,CHAR_BACKWARD_SLASH:n,CHAR_COMMA:i,CHAR_DOT:a,CHAR_EXCLAMATION_MARK:c,CHAR_FORWARD_SLASH:g,CHAR_LEFT_CURLY_BRACE:E,CHAR_LEFT_PARENTHESES:l,CHAR_LEFT_SQUARE_BRACKET:u,CHAR_PLUS:h,CHAR_QUESTION_MARK:Q,CHAR_RIGHT_CURLY_BRACE:C,CHAR_RIGHT_PARENTHESES:B,CHAR_RIGHT_SQUARE_BRACKET:I}=t(5595);const isPathSeparator=e=>e===g||e===n;const depth=e=>{if(e.isPrefix!==true){e.depth=e.isGlobstar?Infinity:1}};const scan=(e,A)=>{const t=A||{};const d=e.length-1;const p=t.parts===true||t.scanToEnd===true;const m=[];const y=[];const w=[];let R=e;let b=-1;let k=0;let D=0;let S=false;let F=false;let T=false;let N=false;let U=false;let L=false;let v=false;let G=false;let M=false;let _=false;let H=0;let O;let P;let Y={value:"",depth:0,isGlob:false};const eos=()=>b>=d;const peek=()=>R.charCodeAt(b+1);const advance=()=>{O=P;return R.charCodeAt(++b)};while(b<d){P=advance();let e;if(P===n){v=Y.backslashes=true;P=advance();if(P===E){L=true}continue}if(L===true||P===E){H++;while(eos()!==true&&(P=advance())){if(P===n){v=Y.backslashes=true;advance();continue}if(P===E){H++;continue}if(L!==true&&P===a&&(P=advance())===a){S=Y.isBrace=true;T=Y.isGlob=true;_=true;if(p===true){continue}break}if(L!==true&&P===i){S=Y.isBrace=true;T=Y.isGlob=true;_=true;if(p===true){continue}break}if(P===C){H--;if(H===0){L=false;S=Y.isBrace=true;_=true;break}}}if(p===true){continue}break}if(P===g){m.push(b);y.push(Y);Y={value:"",depth:0,isGlob:false};if(_===true)continue;if(O===a&&b===k+1){k+=2;continue}D=b+1;continue}if(t.noext!==true){const e=P===h||P===o||P===s||P===Q||P===c;if(e===true&&peek()===l){T=Y.isGlob=true;N=Y.isExtglob=true;_=true;if(P===c&&b===k){M=true}if(p===true){while(eos()!==true&&(P=advance())){if(P===n){v=Y.backslashes=true;P=advance();continue}if(P===B){T=Y.isGlob=true;_=true;break}}continue}break}}if(P===s){if(O===s)U=Y.isGlobstar=true;T=Y.isGlob=true;_=true;if(p===true){continue}break}if(P===Q){T=Y.isGlob=true;_=true;if(p===true){continue}break}if(P===u){while(eos()!==true&&(e=advance())){if(e===n){v=Y.backslashes=true;advance();continue}if(e===I){F=Y.isBracket=true;T=Y.isGlob=true;_=true;break}}if(p===true){continue}break}if(t.nonegate!==true&&P===c&&b===k){G=Y.negated=true;k++;continue}if(t.noparen!==true&&P===l){T=Y.isGlob=true;if(p===true){while(eos()!==true&&(P=advance())){if(P===l){v=Y.backslashes=true;P=advance();continue}if(P===B){_=true;break}}continue}break}if(T===true){_=true;if(p===true){continue}break}}if(t.noext===true){N=false;T=false}let J=R;let x="";let V="";if(k>0){x=R.slice(0,k);R=R.slice(k);D-=k}if(J&&T===true&&D>0){J=R.slice(0,D);V=R.slice(D)}else if(T===true){J="";V=R}else{J=R}if(J&&J!==""&&J!=="/"&&J!==R){if(isPathSeparator(J.charCodeAt(J.length-1))){J=J.slice(0,-1)}}if(t.unescape===true){if(V)V=r.removeBackslashes(V);if(J&&v===true){J=r.removeBackslashes(J)}}const q={prefix:x,input:e,start:k,base:J,glob:V,isBrace:S,isBracket:F,isGlob:T,isExtglob:N,isGlobstar:U,negated:G,negatedExtglob:M};if(t.tokens===true){q.maxDepth=0;if(!isPathSeparator(P)){y.push(Y)}q.tokens=y}if(t.parts===true||t.tokens===true){let A;for(let r=0;r<m.length;r++){const s=A?A+1:k;const o=m[r];const n=e.slice(s,o);if(t.tokens){if(r===0&&k!==0){y[r].isPrefix=true;y[r].value=x}else{y[r].value=n}depth(y[r]);q.maxDepth+=y[r].depth}if(r!==0||n!==""){w.push(n)}A=o}if(A&&A+1<e.length){const r=e.slice(A+1);w.push(r);if(t.tokens){y[y.length-1].value=r;depth(y[y.length-1]);q.maxDepth+=y[y.length-1].depth}}q.slashes=m;q.parts=w}return q};e.exports=scan},4059:(e,A,t)=>{const{REGEX_BACKSLASH:r,REGEX_REMOVE_BACKSLASH:s,REGEX_SPECIAL_CHARS:o,REGEX_SPECIAL_CHARS_GLOBAL:n}=t(5595);A.isObject=e=>e!==null&&typeof e==="object"&&!Array.isArray(e);A.hasRegexChars=e=>o.test(e);A.isRegexChar=e=>e.length===1&&A.hasRegexChars(e);A.escapeRegex=e=>e.replace(n,"\\$1");A.toPosixSlashes=e=>e.replace(r,"/");A.isWindows=()=>{if(typeof navigator!=="undefined"&&navigator.platform){const e=navigator.platform.toLowerCase();return e==="win32"||e==="windows"}if(typeof process!=="undefined"&&process.platform){return process.platform==="win32"}return false};A.removeBackslashes=e=>e.replace(s,(e=>e==="\\"?"":e));A.escapeLast=(e,t,r)=>{const s=e.lastIndexOf(t,r);if(s===-1)return e;if(e[s-1]==="\\")return A.escapeLast(e,t,s-1);return`${e.slice(0,s)}\\${e.slice(s)}`};A.removePrefix=(e,A={})=>{let t=e;if(t.startsWith("./")){t=t.slice(2);A.prefix="./"}return t};A.wrapOutput=(e,A={},t={})=>{const r=t.contains?"":"^";const s=t.contains?"":"$";let o=`${r}(?:${e})${s}`;if(A.negated===true){o=`(?:^(?!${o}).*$)`}return o};A.basename=(e,{windows:A}={})=>{const t=e.split(A?/[\\/]/:"/");const r=t[t.length-1];if(r===""){return t[t.length-2]}return r}},770:(e,A,t)=>{e.exports=t(218)},218:(e,A,t)=>{var r=t(9278);var s=t(4756);var o=t(8611);var n=t(5692);var i=t(4434);var a=t(2613);var c=t(9023);A.httpOverHttp=httpOverHttp;A.httpsOverHttp=httpsOverHttp;A.httpOverHttps=httpOverHttps;A.httpsOverHttps=httpsOverHttps;function httpOverHttp(e){var A=new TunnelingAgent(e);A.request=o.request;return A}function httpsOverHttp(e){var A=new TunnelingAgent(e);A.request=o.request;A.createSocket=createSecureSocket;A.defaultPort=443;return A}function httpOverHttps(e){var A=new TunnelingAgent(e);A.request=n.request;return A}function httpsOverHttps(e){var A=new TunnelingAgent(e);A.request=n.request;A.createSocket=createSecureSocket;A.defaultPort=443;return A}function TunnelingAgent(e){var A=this;A.options=e||{};A.proxyOptions=A.options.proxy||{};A.maxSockets=A.options.maxSockets||o.Agent.defaultMaxSockets;A.requests=[];A.sockets=[];A.on("free",(function onFree(e,t,r,s){var o=toOptions(t,r,s);for(var n=0,i=A.requests.length;n<i;++n){var a=A.requests[n];if(a.host===o.host&&a.port===o.port){A.requests.splice(n,1);a.request.onSocket(e);return}}e.destroy();A.removeSocket(e)}))}c.inherits(TunnelingAgent,i.EventEmitter);TunnelingAgent.prototype.addRequest=function addRequest(e,A,t,r){var s=this;var o=mergeOptions({request:e},s.options,toOptions(A,t,r));if(s.sockets.length>=this.maxSockets){s.requests.push(o);return}s.createSocket(o,(function(A){A.on("free",onFree);A.on("close",onCloseOrRemove);A.on("agentRemove",onCloseOrRemove);e.onSocket(A);function onFree(){s.emit("free",A,o)}function onCloseOrRemove(e){s.removeSocket(A);A.removeListener("free",onFree);A.removeListener("close",onCloseOrRemove);A.removeListener("agentRemove",onCloseOrRemove)}}))};TunnelingAgent.prototype.createSocket=function createSocket(e,A){var t=this;var r={};t.sockets.push(r);var s=mergeOptions({},t.proxyOptions,{method:"CONNECT",path:e.host+":"+e.port,agent:false,headers:{host:e.host+":"+e.port}});if(e.localAddress){s.localAddress=e.localAddress}if(s.proxyAuth){s.headers=s.headers||{};s.headers["Proxy-Authorization"]="Basic "+new Buffer(s.proxyAuth).toString("base64")}g("making CONNECT request");var o=t.request(s);o.useChunkedEncodingByDefault=false;o.once("response",onResponse);o.once("upgrade",onUpgrade);o.once("connect",onConnect);o.once("error",onError);o.end();function onResponse(e){e.upgrade=true}function onUpgrade(e,A,t){process.nextTick((function(){onConnect(e,A,t)}))}function onConnect(s,n,i){o.removeAllListeners();n.removeAllListeners();if(s.statusCode!==200){g("tunneling socket could not be established, statusCode=%d",s.statusCode);n.destroy();var a=new Error("tunneling socket could not be established, "+"statusCode="+s.statusCode);a.code="ECONNRESET";e.request.emit("error",a);t.removeSocket(r);return}if(i.length>0){g("got illegal response body from proxy");n.destroy();var a=new Error("got illegal response body from proxy");a.code="ECONNRESET";e.request.emit("error",a);t.removeSocket(r);return}g("tunneling connection has established");t.sockets[t.sockets.indexOf(r)]=n;return A(n)}function onError(A){o.removeAllListeners();g("tunneling socket could not be established, cause=%s\n",A.message,A.stack);var s=new Error("tunneling socket could not be established, "+"cause="+A.message);s.code="ECONNRESET";e.request.emit("error",s);t.removeSocket(r)}};TunnelingAgent.prototype.removeSocket=function removeSocket(e){var A=this.sockets.indexOf(e);if(A===-1){return}this.sockets.splice(A,1);var t=this.requests.shift();if(t){this.createSocket(t,(function(e){t.request.onSocket(e)}))}};function createSecureSocket(e,A){var t=this;TunnelingAgent.prototype.createSocket.call(t,e,(function(r){var o=e.request.getHeader("host");var n=mergeOptions({},t.options,{socket:r,servername:o?o.replace(/:.*$/,""):e.host});var i=s.connect(0,n);t.sockets[t.sockets.indexOf(r)]=i;A(i)}))}function toOptions(e,A,t){if(typeof e==="string"){return{host:e,port:A,localAddress:t}}return e}function mergeOptions(e){for(var A=1,t=arguments.length;A<t;++A){var r=arguments[A];if(typeof r==="object"){var s=Object.keys(r);for(var o=0,n=s.length;o<n;++o){var i=s[o];if(r[i]!==undefined){e[i]=r[i]}}}}return e}var g;if(process.env.NODE_DEBUG&&/\btunnel\b/.test(process.env.NODE_DEBUG)){g=function(){var e=Array.prototype.slice.call(arguments);if(typeof e[0]==="string"){e[0]="TUNNEL: "+e[0]}else{e.unshift("TUNNEL:")}console.error.apply(console,e)}}else{g=function(){}}A.debug=g},6752:(e,A,t)=>{const r=t(6197);const s=t(992);const o=t(8707);const n=t(5076);const i=t(1093);const a=t(9965);const c=t(3440);const{InvalidArgumentError:g}=o;const E=t(6615);const l=t(9136);const u=t(7365);const h=t(7501);const Q=t(4004);const C=t(2429);const B=t(2720);const I=t(3573);const{getGlobalDispatcher:d,setGlobalDispatcher:p}=t(2581);const m=t(8840);const y=t(8299);const w=t(4415);let R;try{t(6982);R=true}catch{R=false}Object.assign(s.prototype,E);e.exports.Dispatcher=s;e.exports.Client=r;e.exports.Pool=n;e.exports.BalancedPool=i;e.exports.Agent=a;e.exports.ProxyAgent=B;e.exports.RetryHandler=I;e.exports.DecoratorHandler=m;e.exports.RedirectHandler=y;e.exports.createRedirectInterceptor=w;e.exports.buildConnector=l;e.exports.errors=o;function makeDispatcher(e){return(A,t,r)=>{if(typeof t==="function"){r=t;t=null}if(!A||typeof A!=="string"&&typeof A!=="object"&&!(A instanceof URL)){throw new g("invalid url")}if(t!=null&&typeof t!=="object"){throw new g("invalid opts")}if(t&&t.path!=null){if(typeof t.path!=="string"){throw new g("invalid opts.path")}let e=t.path;if(!t.path.startsWith("/")){e=`/${e}`}A=new URL(c.parseOrigin(A).origin+e)}else{if(!t){t=typeof A==="object"?A:{}}A=c.parseURL(A)}const{agent:s,dispatcher:o=d()}=t;if(s){throw new g("unsupported opts.agent. Did you mean opts.client?")}return e.call(o,{...t,origin:A.origin,path:A.search?`${A.pathname}${A.search}`:A.pathname,method:t.method||(t.body?"PUT":"GET")},r)}}e.exports.setGlobalDispatcher=p;e.exports.getGlobalDispatcher=d;if(c.nodeMajor>16||c.nodeMajor===16&&c.nodeMinor>=8){let A=null;e.exports.fetch=async function fetch(e){if(!A){A=t(2315).fetch}try{return await A(...arguments)}catch(e){if(typeof e==="object"){Error.captureStackTrace(e,this)}throw e}};e.exports.Headers=t(6349).Headers;e.exports.Response=t(8676).Response;e.exports.Request=t(5194).Request;e.exports.FormData=t(3073).FormData;e.exports.File=t(3041).File;e.exports.FileReader=t(2160).FileReader;const{setGlobalOrigin:r,getGlobalOrigin:s}=t(5628);e.exports.setGlobalOrigin=r;e.exports.getGlobalOrigin=s;const{CacheStorage:o}=t(4738);const{kConstruct:n}=t(296);e.exports.caches=new o(n)}if(c.nodeMajor>=16){const{deleteCookie:A,getCookies:r,getSetCookies:s,setCookie:o}=t(3168);e.exports.deleteCookie=A;e.exports.getCookies=r;e.exports.getSetCookies=s;e.exports.setCookie=o;const{parseMIMEType:n,serializeAMimeType:i}=t(4322);e.exports.parseMIMEType=n;e.exports.serializeAMimeType=i}if(c.nodeMajor>=18&&R){const{WebSocket:A}=t(5171);e.exports.WebSocket=A}e.exports.request=makeDispatcher(E.request);e.exports.stream=makeDispatcher(E.stream);e.exports.pipeline=makeDispatcher(E.pipeline);e.exports.connect=makeDispatcher(E.connect);e.exports.upgrade=makeDispatcher(E.upgrade);e.exports.MockClient=u;e.exports.MockPool=Q;e.exports.MockAgent=h;e.exports.mockErrors=C},9965:(e,A,t)=>{const{InvalidArgumentError:r}=t(8707);const{kClients:s,kRunning:o,kClose:n,kDestroy:i,kDispatch:a,kInterceptors:c}=t(6443);const g=t(1);const E=t(5076);const l=t(6197);const u=t(3440);const h=t(4415);const{WeakRef:Q,FinalizationRegistry:C}=t(3194)();const B=Symbol("onConnect");const I=Symbol("onDisconnect");const d=Symbol("onConnectionError");const p=Symbol("maxRedirections");const m=Symbol("onDrain");const y=Symbol("factory");const w=Symbol("finalizer");const R=Symbol("options");function defaultFactory(e,A){return A&&A.connections===1?new l(e,A):new E(e,A)}class Agent extends g{constructor({factory:e=defaultFactory,maxRedirections:A=0,connect:t,...o}={}){super();if(typeof e!=="function"){throw new r("factory must be a function.")}if(t!=null&&typeof t!=="function"&&typeof t!=="object"){throw new r("connect must be a function or an object")}if(!Number.isInteger(A)||A<0){throw new r("maxRedirections must be a positive number")}if(t&&typeof t!=="function"){t={...t}}this[c]=o.interceptors&&o.interceptors.Agent&&Array.isArray(o.interceptors.Agent)?o.interceptors.Agent:[h({maxRedirections:A})];this[R]={...u.deepClone(o),connect:t};this[R].interceptors=o.interceptors?{...o.interceptors}:undefined;this[p]=A;this[y]=e;this[s]=new Map;this[w]=new C((e=>{const A=this[s].get(e);if(A!==undefined&&A.deref()===undefined){this[s].delete(e)}}));const n=this;this[m]=(e,A)=>{n.emit("drain",e,[n,...A])};this[B]=(e,A)=>{n.emit("connect",e,[n,...A])};this[I]=(e,A,t)=>{n.emit("disconnect",e,[n,...A],t)};this[d]=(e,A,t)=>{n.emit("connectionError",e,[n,...A],t)}}get[o](){let e=0;for(const A of this[s].values()){const t=A.deref();if(t){e+=t[o]}}return e}[a](e,A){let t;if(e.origin&&(typeof e.origin==="string"||e.origin instanceof URL)){t=String(e.origin)}else{throw new r("opts.origin must be a non-empty string or URL.")}const o=this[s].get(t);let n=o?o.deref():null;if(!n){n=this[y](e.origin,this[R]).on("drain",this[m]).on("connect",this[B]).on("disconnect",this[I]).on("connectionError",this[d]);this[s].set(t,new Q(n));this[w].register(n,t)}return n.dispatch(e,A)}async[n](){const e=[];for(const A of this[s].values()){const t=A.deref();if(t){e.push(t.close())}}await Promise.all(e)}async[i](e){const A=[];for(const t of this[s].values()){const r=t.deref();if(r){A.push(r.destroy(e))}}await Promise.all(A)}}e.exports=Agent},158:(e,A,t)=>{const{addAbortListener:r}=t(3440);const{RequestAbortedError:s}=t(8707);const o=Symbol("kListener");const n=Symbol("kSignal");function abort(e){if(e.abort){e.abort()}else{e.onError(new s)}}function addSignal(e,A){e[n]=null;e[o]=null;if(!A){return}if(A.aborted){abort(e);return}e[n]=A;e[o]=()=>{abort(e)};r(e[n],e[o])}function removeSignal(e){if(!e[n]){return}if("removeEventListener"in e[n]){e[n].removeEventListener("abort",e[o])}else{e[n].removeListener("abort",e[o])}e[n]=null;e[o]=null}e.exports={addSignal:addSignal,removeSignal:removeSignal}},4660:(e,A,t)=>{const{AsyncResource:r}=t(290);const{InvalidArgumentError:s,RequestAbortedError:o,SocketError:n}=t(8707);const i=t(3440);const{addSignal:a,removeSignal:c}=t(158);class ConnectHandler extends r{constructor(e,A){if(!e||typeof e!=="object"){throw new s("invalid opts")}if(typeof A!=="function"){throw new s("invalid callback")}const{signal:t,opaque:r,responseHeaders:o}=e;if(t&&typeof t.on!=="function"&&typeof t.addEventListener!=="function"){throw new s("signal must be an EventEmitter or EventTarget")}super("UNDICI_CONNECT");this.opaque=r||null;this.responseHeaders=o||null;this.callback=A;this.abort=null;a(this,t)}onConnect(e,A){if(!this.callback){throw new o}this.abort=e;this.context=A}onHeaders(){throw new n("bad connect",null)}onUpgrade(e,A,t){const{callback:r,opaque:s,context:o}=this;c(this);this.callback=null;let n=A;if(n!=null){n=this.responseHeaders==="raw"?i.parseRawHeaders(A):i.parseHeaders(A)}this.runInAsyncScope(r,null,null,{statusCode:e,headers:n,socket:t,opaque:s,context:o})}onError(e){const{callback:A,opaque:t}=this;c(this);if(A){this.callback=null;queueMicrotask((()=>{this.runInAsyncScope(A,null,e,{opaque:t})}))}}}function connect(e,A){if(A===undefined){return new Promise(((A,t)=>{connect.call(this,e,((e,r)=>e?t(e):A(r)))}))}try{const t=new ConnectHandler(e,A);this.dispatch({...e,method:"CONNECT"},t)}catch(t){if(typeof A!=="function"){throw t}const r=e&&e.opaque;queueMicrotask((()=>A(t,{opaque:r})))}}e.exports=connect},6862:(e,A,t)=>{const{Readable:r,Duplex:s,PassThrough:o}=t(2203);const{InvalidArgumentError:n,InvalidReturnValueError:i,RequestAbortedError:a}=t(8707);const c=t(3440);const{AsyncResource:g}=t(290);const{addSignal:E,removeSignal:l}=t(158);const u=t(2613);const h=Symbol("resume");class PipelineRequest extends r{constructor(){super({autoDestroy:true});this[h]=null}_read(){const{[h]:e}=this;if(e){this[h]=null;e()}}_destroy(e,A){this._read();A(e)}}class PipelineResponse extends r{constructor(e){super({autoDestroy:true});this[h]=e}_read(){this[h]()}_destroy(e,A){if(!e&&!this._readableState.endEmitted){e=new a}A(e)}}class PipelineHandler extends g{constructor(e,A){if(!e||typeof e!=="object"){throw new n("invalid opts")}if(typeof A!=="function"){throw new n("invalid handler")}const{signal:t,method:r,opaque:o,onInfo:i,responseHeaders:g}=e;if(t&&typeof t.on!=="function"&&typeof t.addEventListener!=="function"){throw new n("signal must be an EventEmitter or EventTarget")}if(r==="CONNECT"){throw new n("invalid method")}if(i&&typeof i!=="function"){throw new n("invalid onInfo callback")}super("UNDICI_PIPELINE");this.opaque=o||null;this.responseHeaders=g||null;this.handler=A;this.abort=null;this.context=null;this.onInfo=i||null;this.req=(new PipelineRequest).on("error",c.nop);this.ret=new s({readableObjectMode:e.objectMode,autoDestroy:true,read:()=>{const{body:e}=this;if(e&&e.resume){e.resume()}},write:(e,A,t)=>{const{req:r}=this;if(r.push(e,A)||r._readableState.destroyed){t()}else{r[h]=t}},destroy:(e,A)=>{const{body:t,req:r,res:s,ret:o,abort:n}=this;if(!e&&!o._readableState.endEmitted){e=new a}if(n&&e){n()}c.destroy(t,e);c.destroy(r,e);c.destroy(s,e);l(this);A(e)}}).on("prefinish",(()=>{const{req:e}=this;e.push(null)}));this.res=null;E(this,t)}onConnect(e,A){const{ret:t,res:r}=this;u(!r,"pipeline cannot be retried");if(t.destroyed){throw new a}this.abort=e;this.context=A}onHeaders(e,A,t){const{opaque:r,handler:s,context:o}=this;if(e<200){if(this.onInfo){const t=this.responseHeaders==="raw"?c.parseRawHeaders(A):c.parseHeaders(A);this.onInfo({statusCode:e,headers:t})}return}this.res=new PipelineResponse(t);let n;try{this.handler=null;const t=this.responseHeaders==="raw"?c.parseRawHeaders(A):c.parseHeaders(A);n=this.runInAsyncScope(s,null,{statusCode:e,headers:t,opaque:r,body:this.res,context:o})}catch(e){this.res.on("error",c.nop);throw e}if(!n||typeof n.on!=="function"){throw new i("expected Readable")}n.on("data",(e=>{const{ret:A,body:t}=this;if(!A.push(e)&&t.pause){t.pause()}})).on("error",(e=>{const{ret:A}=this;c.destroy(A,e)})).on("end",(()=>{const{ret:e}=this;e.push(null)})).on("close",(()=>{const{ret:e}=this;if(!e._readableState.ended){c.destroy(e,new a)}}));this.body=n}onData(e){const{res:A}=this;return A.push(e)}onComplete(e){const{res:A}=this;A.push(null)}onError(e){const{ret:A}=this;this.handler=null;c.destroy(A,e)}}function pipeline(e,A){try{const t=new PipelineHandler(e,A);this.dispatch({...e,body:t.req},t);return t.ret}catch(e){return(new o).destroy(e)}}e.exports=pipeline},4043:(e,A,t)=>{const r=t(9927);const{InvalidArgumentError:s,RequestAbortedError:o}=t(8707);const n=t(3440);const{getResolveErrorBodyCallback:i}=t(7655);const{AsyncResource:a}=t(290);const{addSignal:c,removeSignal:g}=t(158);class RequestHandler extends a{constructor(e,A){if(!e||typeof e!=="object"){throw new s("invalid opts")}const{signal:t,method:r,opaque:o,body:i,onInfo:a,responseHeaders:g,throwOnError:E,highWaterMark:l}=e;try{if(typeof A!=="function"){throw new s("invalid callback")}if(l&&(typeof l!=="number"||l<0)){throw new s("invalid highWaterMark")}if(t&&typeof t.on!=="function"&&typeof t.addEventListener!=="function"){throw new s("signal must be an EventEmitter or EventTarget")}if(r==="CONNECT"){throw new s("invalid method")}if(a&&typeof a!=="function"){throw new s("invalid onInfo callback")}super("UNDICI_REQUEST")}catch(e){if(n.isStream(i)){n.destroy(i.on("error",n.nop),e)}throw e}this.responseHeaders=g||null;this.opaque=o||null;this.callback=A;this.res=null;this.abort=null;this.body=i;this.trailers={};this.context=null;this.onInfo=a||null;this.throwOnError=E;this.highWaterMark=l;if(n.isStream(i)){i.on("error",(e=>{this.onError(e)}))}c(this,t)}onConnect(e,A){if(!this.callback){throw new o}this.abort=e;this.context=A}onHeaders(e,A,t,s){const{callback:o,opaque:a,abort:c,context:g,responseHeaders:E,highWaterMark:l}=this;const u=E==="raw"?n.parseRawHeaders(A):n.parseHeaders(A);if(e<200){if(this.onInfo){this.onInfo({statusCode:e,headers:u})}return}const h=E==="raw"?n.parseHeaders(A):u;const Q=h["content-type"];const C=new r({resume:t,abort:c,contentType:Q,highWaterMark:l});this.callback=null;this.res=C;if(o!==null){if(this.throwOnError&&e>=400){this.runInAsyncScope(i,null,{callback:o,body:C,contentType:Q,statusCode:e,statusMessage:s,headers:u})}else{this.runInAsyncScope(o,null,null,{statusCode:e,headers:u,trailers:this.trailers,opaque:a,body:C,context:g})}}}onData(e){const{res:A}=this;return A.push(e)}onComplete(e){const{res:A}=this;g(this);n.parseHeaders(e,this.trailers);A.push(null)}onError(e){const{res:A,callback:t,body:r,opaque:s}=this;g(this);if(t){this.callback=null;queueMicrotask((()=>{this.runInAsyncScope(t,null,e,{opaque:s})}))}if(A){this.res=null;queueMicrotask((()=>{n.destroy(A,e)}))}if(r){this.body=null;n.destroy(r,e)}}}function request(e,A){if(A===undefined){return new Promise(((A,t)=>{request.call(this,e,((e,r)=>e?t(e):A(r)))}))}try{this.dispatch(e,new RequestHandler(e,A))}catch(t){if(typeof A!=="function"){throw t}const r=e&&e.opaque;queueMicrotask((()=>A(t,{opaque:r})))}}e.exports=request;e.exports.RequestHandler=RequestHandler},3560:(e,A,t)=>{const{finished:r,PassThrough:s}=t(2203);const{InvalidArgumentError:o,InvalidReturnValueError:n,RequestAbortedError:i}=t(8707);const a=t(3440);const{getResolveErrorBodyCallback:c}=t(7655);const{AsyncResource:g}=t(290);const{addSignal:E,removeSignal:l}=t(158);class StreamHandler extends g{constructor(e,A,t){if(!e||typeof e!=="object"){throw new o("invalid opts")}const{signal:r,method:s,opaque:n,body:i,onInfo:c,responseHeaders:g,throwOnError:l}=e;try{if(typeof t!=="function"){throw new o("invalid callback")}if(typeof A!=="function"){throw new o("invalid factory")}if(r&&typeof r.on!=="function"&&typeof r.addEventListener!=="function"){throw new o("signal must be an EventEmitter or EventTarget")}if(s==="CONNECT"){throw new o("invalid method")}if(c&&typeof c!=="function"){throw new o("invalid onInfo callback")}super("UNDICI_STREAM")}catch(e){if(a.isStream(i)){a.destroy(i.on("error",a.nop),e)}throw e}this.responseHeaders=g||null;this.opaque=n||null;this.factory=A;this.callback=t;this.res=null;this.abort=null;this.context=null;this.trailers=null;this.body=i;this.onInfo=c||null;this.throwOnError=l||false;if(a.isStream(i)){i.on("error",(e=>{this.onError(e)}))}E(this,r)}onConnect(e,A){if(!this.callback){throw new i}this.abort=e;this.context=A}onHeaders(e,A,t,o){const{factory:i,opaque:g,context:E,callback:l,responseHeaders:u}=this;const h=u==="raw"?a.parseRawHeaders(A):a.parseHeaders(A);if(e<200){if(this.onInfo){this.onInfo({statusCode:e,headers:h})}return}this.factory=null;let Q;if(this.throwOnError&&e>=400){const t=u==="raw"?a.parseHeaders(A):h;const r=t["content-type"];Q=new s;this.callback=null;this.runInAsyncScope(c,null,{callback:l,body:Q,contentType:r,statusCode:e,statusMessage:o,headers:h})}else{if(i===null){return}Q=this.runInAsyncScope(i,null,{statusCode:e,headers:h,opaque:g,context:E});if(!Q||typeof Q.write!=="function"||typeof Q.end!=="function"||typeof Q.on!=="function"){throw new n("expected Writable")}r(Q,{readable:false},(e=>{const{callback:A,res:t,opaque:r,trailers:s,abort:o}=this;this.res=null;if(e||!t.readable){a.destroy(t,e)}this.callback=null;this.runInAsyncScope(A,null,e||null,{opaque:r,trailers:s});if(e){o()}}))}Q.on("drain",t);this.res=Q;const C=Q.writableNeedDrain!==undefined?Q.writableNeedDrain:Q._writableState&&Q._writableState.needDrain;return C!==true}onData(e){const{res:A}=this;return A?A.write(e):true}onComplete(e){const{res:A}=this;l(this);if(!A){return}this.trailers=a.parseHeaders(e);A.end()}onError(e){const{res:A,callback:t,opaque:r,body:s}=this;l(this);this.factory=null;if(A){this.res=null;a.destroy(A,e)}else if(t){this.callback=null;queueMicrotask((()=>{this.runInAsyncScope(t,null,e,{opaque:r})}))}if(s){this.body=null;a.destroy(s,e)}}}function stream(e,A,t){if(t===undefined){return new Promise(((t,r)=>{stream.call(this,e,A,((e,A)=>e?r(e):t(A)))}))}try{this.dispatch(e,new StreamHandler(e,A,t))}catch(A){if(typeof t!=="function"){throw A}const r=e&&e.opaque;queueMicrotask((()=>t(A,{opaque:r})))}}e.exports=stream},1882:(e,A,t)=>{const{InvalidArgumentError:r,RequestAbortedError:s,SocketError:o}=t(8707);const{AsyncResource:n}=t(290);const i=t(3440);const{addSignal:a,removeSignal:c}=t(158);const g=t(2613);class UpgradeHandler extends n{constructor(e,A){if(!e||typeof e!=="object"){throw new r("invalid opts")}if(typeof A!=="function"){throw new r("invalid callback")}const{signal:t,opaque:s,responseHeaders:o}=e;if(t&&typeof t.on!=="function"&&typeof t.addEventListener!=="function"){throw new r("signal must be an EventEmitter or EventTarget")}super("UNDICI_UPGRADE");this.responseHeaders=o||null;this.opaque=s||null;this.callback=A;this.abort=null;this.context=null;a(this,t)}onConnect(e,A){if(!this.callback){throw new s}this.abort=e;this.context=null}onHeaders(){throw new o("bad upgrade",null)}onUpgrade(e,A,t){const{callback:r,opaque:s,context:o}=this;g.strictEqual(e,101);c(this);this.callback=null;const n=this.responseHeaders==="raw"?i.parseRawHeaders(A):i.parseHeaders(A);this.runInAsyncScope(r,null,null,{headers:n,socket:t,opaque:s,context:o})}onError(e){const{callback:A,opaque:t}=this;c(this);if(A){this.callback=null;queueMicrotask((()=>{this.runInAsyncScope(A,null,e,{opaque:t})}))}}}function upgrade(e,A){if(A===undefined){return new Promise(((A,t)=>{upgrade.call(this,e,((e,r)=>e?t(e):A(r)))}))}try{const t=new UpgradeHandler(e,A);this.dispatch({...e,method:e.method||"GET",upgrade:e.protocol||"Websocket"},t)}catch(t){if(typeof A!=="function"){throw t}const r=e&&e.opaque;queueMicrotask((()=>A(t,{opaque:r})))}}e.exports=upgrade},6615:(e,A,t)=>{e.exports.request=t(4043);e.exports.stream=t(3560);e.exports.pipeline=t(6862);e.exports.upgrade=t(1882);e.exports.connect=t(4660)},9927:(e,A,t)=>{const r=t(2613);const{Readable:s}=t(2203);const{RequestAbortedError:o,NotSupportedError:n,InvalidArgumentError:i}=t(8707);const a=t(3440);const{ReadableStreamFrom:c,toUSVString:g}=t(3440);let E;const l=Symbol("kConsume");const u=Symbol("kReading");const h=Symbol("kBody");const Q=Symbol("abort");const C=Symbol("kContentType");const noop=()=>{};e.exports=class BodyReadable extends s{constructor({resume:e,abort:A,contentType:t="",highWaterMark:r=64*1024}){super({autoDestroy:true,read:e,highWaterMark:r});this._readableState.dataEmitted=false;this[Q]=A;this[l]=null;this[h]=null;this[C]=t;this[u]=false}destroy(e){if(this.destroyed){return this}if(!e&&!this._readableState.endEmitted){e=new o}if(e){this[Q]()}return super.destroy(e)}emit(e,...A){if(e==="data"){this._readableState.dataEmitted=true}else if(e==="error"){this._readableState.errorEmitted=true}return super.emit(e,...A)}on(e,...A){if(e==="data"||e==="readable"){this[u]=true}return super.on(e,...A)}addListener(e,...A){return this.on(e,...A)}off(e,...A){const t=super.off(e,...A);if(e==="data"||e==="readable"){this[u]=this.listenerCount("data")>0||this.listenerCount("readable")>0}return t}removeListener(e,...A){return this.off(e,...A)}push(e){if(this[l]&&e!==null&&this.readableLength===0){consumePush(this[l],e);return this[u]?super.push(e):true}return super.push(e)}async text(){return consume(this,"text")}async json(){return consume(this,"json")}async blob(){return consume(this,"blob")}async arrayBuffer(){return consume(this,"arrayBuffer")}async formData(){throw new n}get bodyUsed(){return a.isDisturbed(this)}get body(){if(!this[h]){this[h]=c(this);if(this[l]){this[h].getReader();r(this[h].locked)}}return this[h]}dump(e){let A=e&&Number.isFinite(e.limit)?e.limit:262144;const t=e&&e.signal;if(t){try{if(typeof t!=="object"||!("aborted"in t)){throw new i("signal must be an AbortSignal")}a.throwIfAborted(t)}catch(e){return Promise.reject(e)}}if(this.closed){return Promise.resolve(null)}return new Promise(((e,r)=>{const s=t?a.addAbortListener(t,(()=>{this.destroy()})):noop;this.on("close",(function(){s();if(t&&t.aborted){r(t.reason||Object.assign(new Error("The operation was aborted"),{name:"AbortError"}))}else{e(null)}})).on("error",noop).on("data",(function(e){A-=e.length;if(A<=0){this.destroy()}})).resume()}))}};function isLocked(e){return e[h]&&e[h].locked===true||e[l]}function isUnusable(e){return a.isDisturbed(e)||isLocked(e)}async function consume(e,A){if(isUnusable(e)){throw new TypeError("unusable")}r(!e[l]);return new Promise(((t,r)=>{e[l]={type:A,stream:e,resolve:t,reject:r,length:0,body:[]};e.on("error",(function(e){consumeFinish(this[l],e)})).on("close",(function(){if(this[l].body!==null){consumeFinish(this[l],new o)}}));process.nextTick(consumeStart,e[l])}))}function consumeStart(e){if(e.body===null){return}const{_readableState:A}=e.stream;for(const t of A.buffer){consumePush(e,t)}if(A.endEmitted){consumeEnd(this[l])}else{e.stream.on("end",(function(){consumeEnd(this[l])}))}e.stream.resume();while(e.stream.read()!=null){}}function consumeEnd(e){const{type:A,body:r,resolve:s,stream:o,length:n}=e;try{if(A==="text"){s(g(Buffer.concat(r)))}else if(A==="json"){s(JSON.parse(Buffer.concat(r)))}else if(A==="arrayBuffer"){const e=new Uint8Array(n);let A=0;for(const t of r){e.set(t,A);A+=t.byteLength}s(e.buffer)}else if(A==="blob"){if(!E){E=t(181).Blob}s(new E(r,{type:o[C]}))}consumeFinish(e)}catch(e){o.destroy(e)}}function consumePush(e,A){e.length+=A.length;e.body.push(A)}function consumeFinish(e,A){if(e.body===null){return}if(A){e.reject(A)}else{e.resolve()}e.type=null;e.stream=null;e.resolve=null;e.reject=null;e.length=0;e.body=null}},7655:(e,A,t)=>{const r=t(2613);const{ResponseStatusCodeError:s}=t(8707);const{toUSVString:o}=t(3440);async function getResolveErrorBodyCallback({callback:e,body:A,contentType:t,statusCode:n,statusMessage:i,headers:a}){r(A);let c=[];let g=0;for await(const e of A){c.push(e);g+=e.length;if(g>128*1024){c=null;break}}if(n===204||!t||!c){process.nextTick(e,new s(`Response status code ${n}${i?`: ${i}`:""}`,n,a));return}try{if(t.startsWith("application/json")){const A=JSON.parse(o(Buffer.concat(c)));process.nextTick(e,new s(`Response status code ${n}${i?`: ${i}`:""}`,n,a,A));return}if(t.startsWith("text/")){const A=o(Buffer.concat(c));process.nextTick(e,new s(`Response status code ${n}${i?`: ${i}`:""}`,n,a,A));return}}catch(e){}process.nextTick(e,new s(`Response status code ${n}${i?`: ${i}`:""}`,n,a))}e.exports={getResolveErrorBodyCallback:getResolveErrorBodyCallback}},1093:(e,A,t)=>{const{BalancedPoolMissingUpstreamError:r,InvalidArgumentError:s}=t(8707);const{PoolBase:o,kClients:n,kNeedDrain:i,kAddClient:a,kRemoveClient:c,kGetDispatcher:g}=t(8640);const E=t(5076);const{kUrl:l,kInterceptors:u}=t(6443);const{parseOrigin:h}=t(3440);const Q=Symbol("factory");const C=Symbol("options");const B=Symbol("kGreatestCommonDivisor");const I=Symbol("kCurrentWeight");const d=Symbol("kIndex");const p=Symbol("kWeight");const m=Symbol("kMaxWeightPerServer");const y=Symbol("kErrorPenalty");function getGreatestCommonDivisor(e,A){if(A===0)return e;return getGreatestCommonDivisor(A,e%A)}function defaultFactory(e,A){return new E(e,A)}class BalancedPool extends o{constructor(e=[],{factory:A=defaultFactory,...t}={}){super();this[C]=t;this[d]=-1;this[I]=0;this[m]=this[C].maxWeightPerServer||100;this[y]=this[C].errorPenalty||15;if(!Array.isArray(e)){e=[e]}if(typeof A!=="function"){throw new s("factory must be a function.")}this[u]=t.interceptors&&t.interceptors.BalancedPool&&Array.isArray(t.interceptors.BalancedPool)?t.interceptors.BalancedPool:[];this[Q]=A;for(const A of e){this.addUpstream(A)}this._updateBalancedPoolStats()}addUpstream(e){const A=h(e).origin;if(this[n].find((e=>e[l].origin===A&&e.closed!==true&&e.destroyed!==true))){return this}const t=this[Q](A,Object.assign({},this[C]));this[a](t);t.on("connect",(()=>{t[p]=Math.min(this[m],t[p]+this[y])}));t.on("connectionError",(()=>{t[p]=Math.max(1,t[p]-this[y]);this._updateBalancedPoolStats()}));t.on("disconnect",((...e)=>{const A=e[2];if(A&&A.code==="UND_ERR_SOCKET"){t[p]=Math.max(1,t[p]-this[y]);this._updateBalancedPoolStats()}}));for(const e of this[n]){e[p]=this[m]}this._updateBalancedPoolStats();return this}_updateBalancedPoolStats(){this[B]=this[n].map((e=>e[p])).reduce(getGreatestCommonDivisor,0)}removeUpstream(e){const A=h(e).origin;const t=this[n].find((e=>e[l].origin===A&&e.closed!==true&&e.destroyed!==true));if(t){this[c](t)}return this}get upstreams(){return this[n].filter((e=>e.closed!==true&&e.destroyed!==true)).map((e=>e[l].origin))}[g](){if(this[n].length===0){throw new r}const e=this[n].find((e=>!e[i]&&e.closed!==true&&e.destroyed!==true));if(!e){return}const A=this[n].map((e=>e[i])).reduce(((e,A)=>e&&A),true);if(A){return}let t=0;let s=this[n].findIndex((e=>!e[i]));while(t++<this[n].length){this[d]=(this[d]+1)%this[n].length;const e=this[n][this[d]];if(e[p]>this[n][s][p]&&!e[i]){s=this[d]}if(this[d]===0){this[I]=this[I]-this[B];if(this[I]<=0){this[I]=this[m]}}if(e[p]>=this[I]&&!e[i]){return e}}this[I]=this[n][s][p];this[d]=s;return this[n][s]}}e.exports=BalancedPool},479:(e,A,t)=>{const{kConstruct:r}=t(296);const{urlEquals:s,fieldValues:o}=t(3993);const{kEnumerableProperty:n,isDisturbed:i}=t(3440);const{kHeadersList:a}=t(6443);const{webidl:c}=t(4222);const{Response:g,cloneResponse:E}=t(8676);const{Request:l}=t(5194);const{kState:u,kHeaders:h,kGuard:Q,kRealm:C}=t(9710);const{fetching:B}=t(2315);const{urlIsHttpHttpsScheme:I,createDeferredPromise:d,readAllBytes:p}=t(5523);const m=t(2613);const{getGlobalDispatcher:y}=t(2581);class Cache{#e;constructor(){if(arguments[0]!==r){c.illegalConstructor()}this.#e=arguments[1]}async match(e,A={}){c.brandCheck(this,Cache);c.argumentLengthCheck(arguments,1,{header:"Cache.match"});e=c.converters.RequestInfo(e);A=c.converters.CacheQueryOptions(A);const t=await this.matchAll(e,A);if(t.length===0){return}return t[0]}async matchAll(e=undefined,A={}){c.brandCheck(this,Cache);if(e!==undefined)e=c.converters.RequestInfo(e);A=c.converters.CacheQueryOptions(A);let t=null;if(e!==undefined){if(e instanceof l){t=e[u];if(t.method!=="GET"&&!A.ignoreMethod){return[]}}else if(typeof e==="string"){t=new l(e)[u]}}const r=[];if(e===undefined){for(const e of this.#e){r.push(e[1])}}else{const e=this.#A(t,A);for(const A of e){r.push(A[1])}}const s=[];for(const e of r){const A=new g(e.body?.source??null);const t=A[u].body;A[u]=e;A[u].body=t;A[h][a]=e.headersList;A[h][Q]="immutable";s.push(A)}return Object.freeze(s)}async add(e){c.brandCheck(this,Cache);c.argumentLengthCheck(arguments,1,{header:"Cache.add"});e=c.converters.RequestInfo(e);const A=[e];const t=this.addAll(A);return await t}async addAll(e){c.brandCheck(this,Cache);c.argumentLengthCheck(arguments,1,{header:"Cache.addAll"});e=c.converters["sequence<RequestInfo>"](e);const A=[];const t=[];for(const A of e){if(typeof A==="string"){continue}const e=A[u];if(!I(e.url)||e.method!=="GET"){throw c.errors.exception({header:"Cache.addAll",message:"Expected http/s scheme when method is not GET."})}}const r=[];for(const s of e){const e=new l(s)[u];if(!I(e.url)){throw c.errors.exception({header:"Cache.addAll",message:"Expected http/s scheme."})}e.initiator="fetch";e.destination="subresource";t.push(e);const n=d();r.push(B({request:e,dispatcher:y(),processResponse(e){if(e.type==="error"||e.status===206||e.status<200||e.status>299){n.reject(c.errors.exception({header:"Cache.addAll",message:"Received an invalid status code or the request failed."}))}else if(e.headersList.contains("vary")){const A=o(e.headersList.get("vary"));for(const e of A){if(e==="*"){n.reject(c.errors.exception({header:"Cache.addAll",message:"invalid vary field value"}));for(const e of r){e.abort()}return}}}},processResponseEndOfBody(e){if(e.aborted){n.reject(new DOMException("aborted","AbortError"));return}n.resolve(e)}}));A.push(n.promise)}const s=Promise.all(A);const n=await s;const i=[];let a=0;for(const e of n){const A={type:"put",request:t[a],response:e};i.push(A);a++}const g=d();let E=null;try{this.#t(i)}catch(e){E=e}queueMicrotask((()=>{if(E===null){g.resolve(undefined)}else{g.reject(E)}}));return g.promise}async put(e,A){c.brandCheck(this,Cache);c.argumentLengthCheck(arguments,2,{header:"Cache.put"});e=c.converters.RequestInfo(e);A=c.converters.Response(A);let t=null;if(e instanceof l){t=e[u]}else{t=new l(e)[u]}if(!I(t.url)||t.method!=="GET"){throw c.errors.exception({header:"Cache.put",message:"Expected an http/s scheme when method is not GET"})}const r=A[u];if(r.status===206){throw c.errors.exception({header:"Cache.put",message:"Got 206 status"})}if(r.headersList.contains("vary")){const e=o(r.headersList.get("vary"));for(const A of e){if(A==="*"){throw c.errors.exception({header:"Cache.put",message:"Got * vary field value"})}}}if(r.body&&(i(r.body.stream)||r.body.stream.locked)){throw c.errors.exception({header:"Cache.put",message:"Response body is locked or disturbed"})}const s=E(r);const n=d();if(r.body!=null){const e=r.body.stream;const A=e.getReader();p(A).then(n.resolve,n.reject)}else{n.resolve(undefined)}const a=[];const g={type:"put",request:t,response:s};a.push(g);const h=await n.promise;if(s.body!=null){s.body.source=h}const Q=d();let C=null;try{this.#t(a)}catch(e){C=e}queueMicrotask((()=>{if(C===null){Q.resolve()}else{Q.reject(C)}}));return Q.promise}async delete(e,A={}){c.brandCheck(this,Cache);c.argumentLengthCheck(arguments,1,{header:"Cache.delete"});e=c.converters.RequestInfo(e);A=c.converters.CacheQueryOptions(A);let t=null;if(e instanceof l){t=e[u];if(t.method!=="GET"&&!A.ignoreMethod){return false}}else{m(typeof e==="string");t=new l(e)[u]}const r=[];const s={type:"delete",request:t,options:A};r.push(s);const o=d();let n=null;let i;try{i=this.#t(r)}catch(e){n=e}queueMicrotask((()=>{if(n===null){o.resolve(!!i?.length)}else{o.reject(n)}}));return o.promise}async keys(e=undefined,A={}){c.brandCheck(this,Cache);if(e!==undefined)e=c.converters.RequestInfo(e);A=c.converters.CacheQueryOptions(A);let t=null;if(e!==undefined){if(e instanceof l){t=e[u];if(t.method!=="GET"&&!A.ignoreMethod){return[]}}else if(typeof e==="string"){t=new l(e)[u]}}const r=d();const s=[];if(e===undefined){for(const e of this.#e){s.push(e[0])}}else{const e=this.#A(t,A);for(const A of e){s.push(A[0])}}queueMicrotask((()=>{const e=[];for(const A of s){const t=new l("https://a");t[u]=A;t[h][a]=A.headersList;t[h][Q]="immutable";t[C]=A.client;e.push(t)}r.resolve(Object.freeze(e))}));return r.promise}#t(e){const A=this.#e;const t=[...A];const r=[];const s=[];try{for(const t of e){if(t.type!=="delete"&&t.type!=="put"){throw c.errors.exception({header:"Cache.#batchCacheOperations",message:'operation type does not match "delete" or "put"'})}if(t.type==="delete"&&t.response!=null){throw c.errors.exception({header:"Cache.#batchCacheOperations",message:"delete operation should not have an associated response"})}if(this.#A(t.request,t.options,r).length){throw new DOMException("???","InvalidStateError")}let e;if(t.type==="delete"){e=this.#A(t.request,t.options);if(e.length===0){return[]}for(const t of e){const e=A.indexOf(t);m(e!==-1);A.splice(e,1)}}else if(t.type==="put"){if(t.response==null){throw c.errors.exception({header:"Cache.#batchCacheOperations",message:"put operation should have an associated response"})}const s=t.request;if(!I(s.url)){throw c.errors.exception({header:"Cache.#batchCacheOperations",message:"expected http or https scheme"})}if(s.method!=="GET"){throw c.errors.exception({header:"Cache.#batchCacheOperations",message:"not get method"})}if(t.options!=null){throw c.errors.exception({header:"Cache.#batchCacheOperations",message:"options must not be defined"})}e=this.#A(t.request);for(const t of e){const e=A.indexOf(t);m(e!==-1);A.splice(e,1)}A.push([t.request,t.response]);r.push([t.request,t.response])}s.push([t.request,t.response])}return s}catch(e){this.#e.length=0;this.#e=t;throw e}}#A(e,A,t){const r=[];const s=t??this.#e;for(const t of s){const[s,o]=t;if(this.#r(e,s,o,A)){r.push(t)}}return r}#r(e,A,t=null,r){const n=new URL(e.url);const i=new URL(A.url);if(r?.ignoreSearch){i.search="";n.search=""}if(!s(n,i,true)){return false}if(t==null||r?.ignoreVary||!t.headersList.contains("vary")){return true}const a=o(t.headersList.get("vary"));for(const t of a){if(t==="*"){return false}const r=A.headersList.get(t);const s=e.headersList.get(t);if(r!==s){return false}}return true}}Object.defineProperties(Cache.prototype,{[Symbol.toStringTag]:{value:"Cache",configurable:true},match:n,matchAll:n,add:n,addAll:n,put:n,delete:n,keys:n});const w=[{key:"ignoreSearch",converter:c.converters.boolean,defaultValue:false},{key:"ignoreMethod",converter:c.converters.boolean,defaultValue:false},{key:"ignoreVary",converter:c.converters.boolean,defaultValue:false}];c.converters.CacheQueryOptions=c.dictionaryConverter(w);c.converters.MultiCacheQueryOptions=c.dictionaryConverter([...w,{key:"cacheName",converter:c.converters.DOMString}]);c.converters.Response=c.interfaceConverter(g);c.converters["sequence<RequestInfo>"]=c.sequenceConverter(c.converters.RequestInfo);e.exports={Cache:Cache}},4738:(e,A,t)=>{const{kConstruct:r}=t(296);const{Cache:s}=t(479);const{webidl:o}=t(4222);const{kEnumerableProperty:n}=t(3440);class CacheStorage{#s=new Map;constructor(){if(arguments[0]!==r){o.illegalConstructor()}}async match(e,A={}){o.brandCheck(this,CacheStorage);o.argumentLengthCheck(arguments,1,{header:"CacheStorage.match"});e=o.converters.RequestInfo(e);A=o.converters.MultiCacheQueryOptions(A);if(A.cacheName!=null){if(this.#s.has(A.cacheName)){const t=this.#s.get(A.cacheName);const o=new s(r,t);return await o.match(e,A)}}else{for(const t of this.#s.values()){const o=new s(r,t);const n=await o.match(e,A);if(n!==undefined){return n}}}}async has(e){o.brandCheck(this,CacheStorage);o.argumentLengthCheck(arguments,1,{header:"CacheStorage.has"});e=o.converters.DOMString(e);return this.#s.has(e)}async open(e){o.brandCheck(this,CacheStorage);o.argumentLengthCheck(arguments,1,{header:"CacheStorage.open"});e=o.converters.DOMString(e);if(this.#s.has(e)){const A=this.#s.get(e);return new s(r,A)}const A=[];this.#s.set(e,A);return new s(r,A)}async delete(e){o.brandCheck(this,CacheStorage);o.argumentLengthCheck(arguments,1,{header:"CacheStorage.delete"});e=o.converters.DOMString(e);return this.#s.delete(e)}async keys(){o.brandCheck(this,CacheStorage);const e=this.#s.keys();return[...e]}}Object.defineProperties(CacheStorage.prototype,{[Symbol.toStringTag]:{value:"CacheStorage",configurable:true},match:n,has:n,open:n,delete:n,keys:n});e.exports={CacheStorage:CacheStorage}},296:(e,A,t)=>{e.exports={kConstruct:t(6443).kConstruct}},3993:(e,A,t)=>{const r=t(2613);const{URLSerializer:s}=t(4322);const{isValidHeaderName:o}=t(5523);function urlEquals(e,A,t=false){const r=s(e,t);const o=s(A,t);return r===o}function fieldValues(e){r(e!==null);const A=[];for(let t of e.split(",")){t=t.trim();if(!t.length){continue}else if(!o(t)){continue}A.push(t)}return A}e.exports={urlEquals:urlEquals,fieldValues:fieldValues}},6197:(e,A,t)=>{const r=t(2613);const s=t(9278);const o=t(8611);const{pipeline:n}=t(2203);const i=t(3440);const a=t(8804);const c=t(4655);const g=t(1);const{RequestContentLengthMismatchError:E,ResponseContentLengthMismatchError:l,InvalidArgumentError:u,RequestAbortedError:h,HeadersTimeoutError:Q,HeadersOverflowError:C,SocketError:B,InformationalError:I,BodyTimeoutError:d,HTTPParserError:p,ResponseExceededMaxSizeError:m,ClientDestroyedError:y}=t(8707);const w=t(9136);const{kUrl:R,kReset:b,kServerName:k,kClient:D,kBusy:S,kParser:F,kConnect:T,kBlocking:N,kResuming:U,kRunning:L,kPending:v,kSize:G,kWriting:M,kQueue:_,kConnected:H,kConnecting:O,kNeedDrain:P,kNoRef:Y,kKeepAliveDefaultTimeout:J,kHostHeader:x,kPendingIdx:V,kRunningIdx:q,kError:W,kPipelining:j,kSocket:Z,kKeepAliveTimeoutValue:X,kMaxHeadersSize:K,kKeepAliveMaxTimeout:z,kKeepAliveTimeoutThreshold:$,kHeadersTimeout:ee,kBodyTimeout:Ae,kStrictContentLength:te,kConnector:re,kMaxRedirections:se,kMaxRequests:oe,kCounter:ne,kClose:ie,kDestroy:ae,kDispatch:ce,kInterceptors:ge,kLocalAddress:Ee,kMaxResponseSize:le,kHTTPConnVersion:ue,kHost:he,kHTTP2Session:Qe,kHTTP2SessionState:Ce,kHTTP2BuildRequest:Be,kHTTP2CopyHeaders:Ie,kHTTP1BuildRequest:de}=t(6443);let pe;try{pe=t(5675)}catch{pe={constants:{}}}const{constants:{HTTP2_HEADER_AUTHORITY:fe,HTTP2_HEADER_METHOD:me,HTTP2_HEADER_PATH:ye,HTTP2_HEADER_SCHEME:we,HTTP2_HEADER_CONTENT_LENGTH:Re,HTTP2_HEADER_EXPECT:be,HTTP2_HEADER_STATUS:ke}}=pe;let De=false;const Se=Buffer[Symbol.species];const Fe=Symbol("kClosedResolve");const Te={};try{const e=t(1637);Te.sendHeaders=e.channel("undici:client:sendHeaders");Te.beforeConnect=e.channel("undici:client:beforeConnect");Te.connectError=e.channel("undici:client:connectError");Te.connected=e.channel("undici:client:connected")}catch{Te.sendHeaders={hasSubscribers:false};Te.beforeConnect={hasSubscribers:false};Te.connectError={hasSubscribers:false};Te.connected={hasSubscribers:false}}class Client extends g{constructor(e,{interceptors:A,maxHeaderSize:t,headersTimeout:r,socketTimeout:n,requestTimeout:a,connectTimeout:c,bodyTimeout:g,idleTimeout:E,keepAlive:l,keepAliveTimeout:h,maxKeepAliveTimeout:Q,keepAliveMaxTimeout:C,keepAliveTimeoutThreshold:B,socketPath:I,pipelining:d,tls:p,strictContentLength:m,maxCachedSessions:y,maxRedirections:b,connect:D,maxRequestsPerClient:S,localAddress:F,maxResponseSize:T,autoSelectFamily:N,autoSelectFamilyAttemptTimeout:L,allowH2:v,maxConcurrentStreams:G}={}){super();if(l!==undefined){throw new u("unsupported keepAlive, use pipelining=0 instead")}if(n!==undefined){throw new u("unsupported socketTimeout, use headersTimeout & bodyTimeout instead")}if(a!==undefined){throw new u("unsupported requestTimeout, use headersTimeout & bodyTimeout instead")}if(E!==undefined){throw new u("unsupported idleTimeout, use keepAliveTimeout instead")}if(Q!==undefined){throw new u("unsupported maxKeepAliveTimeout, use keepAliveMaxTimeout instead")}if(t!=null&&!Number.isFinite(t)){throw new u("invalid maxHeaderSize")}if(I!=null&&typeof I!=="string"){throw new u("invalid socketPath")}if(c!=null&&(!Number.isFinite(c)||c<0)){throw new u("invalid connectTimeout")}if(h!=null&&(!Number.isFinite(h)||h<=0)){throw new u("invalid keepAliveTimeout")}if(C!=null&&(!Number.isFinite(C)||C<=0)){throw new u("invalid keepAliveMaxTimeout")}if(B!=null&&!Number.isFinite(B)){throw new u("invalid keepAliveTimeoutThreshold")}if(r!=null&&(!Number.isInteger(r)||r<0)){throw new u("headersTimeout must be a positive integer or zero")}if(g!=null&&(!Number.isInteger(g)||g<0)){throw new u("bodyTimeout must be a positive integer or zero")}if(D!=null&&typeof D!=="function"&&typeof D!=="object"){throw new u("connect must be a function or an object")}if(b!=null&&(!Number.isInteger(b)||b<0)){throw new u("maxRedirections must be a positive number")}if(S!=null&&(!Number.isInteger(S)||S<0)){throw new u("maxRequestsPerClient must be a positive number")}if(F!=null&&(typeof F!=="string"||s.isIP(F)===0)){throw new u("localAddress must be valid string IP address")}if(T!=null&&(!Number.isInteger(T)||T<-1)){throw new u("maxResponseSize must be a positive number")}if(L!=null&&(!Number.isInteger(L)||L<-1)){throw new u("autoSelectFamilyAttemptTimeout must be a positive number")}if(v!=null&&typeof v!=="boolean"){throw new u("allowH2 must be a valid boolean value")}if(G!=null&&(typeof G!=="number"||G<1)){throw new u("maxConcurrentStreams must be a possitive integer, greater than 0")}if(typeof D!=="function"){D=w({...p,maxCachedSessions:y,allowH2:v,socketPath:I,timeout:c,...i.nodeHasAutoSelectFamily&&N?{autoSelectFamily:N,autoSelectFamilyAttemptTimeout:L}:undefined,...D})}this[ge]=A&&A.Client&&Array.isArray(A.Client)?A.Client:[Ue({maxRedirections:b})];this[R]=i.parseOrigin(e);this[re]=D;this[Z]=null;this[j]=d!=null?d:1;this[K]=t||o.maxHeaderSize;this[J]=h==null?4e3:h;this[z]=C==null?6e5:C;this[$]=B==null?1e3:B;this[X]=this[J];this[k]=null;this[Ee]=F!=null?F:null;this[U]=0;this[P]=0;this[x]=`host: ${this[R].hostname}${this[R].port?`:${this[R].port}`:""}\r\n`;this[Ae]=g!=null?g:3e5;this[ee]=r!=null?r:3e5;this[te]=m==null?true:m;this[se]=b;this[oe]=S;this[Fe]=null;this[le]=T>-1?T:-1;this[ue]="h1";this[Qe]=null;this[Ce]=!v?null:{openStreams:0,maxConcurrentStreams:G!=null?G:100};this[he]=`${this[R].hostname}${this[R].port?`:${this[R].port}`:""}`;this[_]=[];this[q]=0;this[V]=0}get pipelining(){return this[j]}set pipelining(e){this[j]=e;resume(this,true)}get[v](){return this[_].length-this[V]}get[L](){return this[V]-this[q]}get[G](){return this[_].length-this[q]}get[H](){return!!this[Z]&&!this[O]&&!this[Z].destroyed}get[S](){const e=this[Z];return e&&(e[b]||e[M]||e[N])||this[G]>=(this[j]||1)||this[v]>0}[T](e){connect(this);this.once("connect",e)}[ce](e,A){const t=e.origin||this[R].origin;const r=this[ue]==="h2"?c[Be](t,e,A):c[de](t,e,A);this[_].push(r);if(this[U]){}else if(i.bodyLength(r.body)==null&&i.isIterable(r.body)){this[U]=1;process.nextTick(resume,this)}else{resume(this,true)}if(this[U]&&this[P]!==2&&this[S]){this[P]=2}return this[P]<2}async[ie](){return new Promise((e=>{if(!this[G]){e(null)}else{this[Fe]=e}}))}async[ae](e){return new Promise((A=>{const t=this[_].splice(this[V]);for(let A=0;A<t.length;A++){const r=t[A];errorRequest(this,r,e)}const callback=()=>{if(this[Fe]){this[Fe]();this[Fe]=null}A()};if(this[Qe]!=null){i.destroy(this[Qe],e);this[Qe]=null;this[Ce]=null}if(!this[Z]){queueMicrotask(callback)}else{i.destroy(this[Z].on("close",callback),e)}resume(this)}))}}function onHttp2SessionError(e){r(e.code!=="ERR_TLS_CERT_ALTNAME_INVALID");this[Z][W]=e;onError(this[D],e)}function onHttp2FrameError(e,A,t){const r=new I(`HTTP/2: "frameError" received - type ${e}, code ${A}`);if(t===0){this[Z][W]=r;onError(this[D],r)}}function onHttp2SessionEnd(){i.destroy(this,new B("other side closed"));i.destroy(this[Z],new B("other side closed"))}function onHTTP2GoAway(e){const A=this[D];const t=new I(`HTTP/2: "GOAWAY" frame received with code ${e}`);A[Z]=null;A[Qe]=null;if(A.destroyed){r(this[v]===0);const e=A[_].splice(A[q]);for(let A=0;A<e.length;A++){const r=e[A];errorRequest(this,r,t)}}else if(A[L]>0){const e=A[_][A[q]];A[_][A[q]++]=null;errorRequest(A,e,t)}A[V]=A[q];r(A[L]===0);A.emit("disconnect",A[R],[A],t);resume(A)}const Ne=t(2824);const Ue=t(4415);const Le=Buffer.alloc(0);async function lazyllhttp(){const e=process.env.JEST_WORKER_ID?t(3870):undefined;let A;try{A=await WebAssembly.compile(Buffer.from(t(3434),"base64"))}catch(r){A=await WebAssembly.compile(Buffer.from(e||t(3870),"base64"))}return await WebAssembly.instantiate(A,{env:{wasm_on_url:(e,A,t)=>0,wasm_on_status:(e,A,t)=>{r.strictEqual(Me.ptr,e);const s=A-Oe+_e.byteOffset;return Me.onStatus(new Se(_e.buffer,s,t))||0},wasm_on_message_begin:e=>{r.strictEqual(Me.ptr,e);return Me.onMessageBegin()||0},wasm_on_header_field:(e,A,t)=>{r.strictEqual(Me.ptr,e);const s=A-Oe+_e.byteOffset;return Me.onHeaderField(new Se(_e.buffer,s,t))||0},wasm_on_header_value:(e,A,t)=>{r.strictEqual(Me.ptr,e);const s=A-Oe+_e.byteOffset;return Me.onHeaderValue(new Se(_e.buffer,s,t))||0},wasm_on_headers_complete:(e,A,t,s)=>{r.strictEqual(Me.ptr,e);return Me.onHeadersComplete(A,Boolean(t),Boolean(s))||0},wasm_on_body:(e,A,t)=>{r.strictEqual(Me.ptr,e);const s=A-Oe+_e.byteOffset;return Me.onBody(new Se(_e.buffer,s,t))||0},wasm_on_message_complete:e=>{r.strictEqual(Me.ptr,e);return Me.onMessageComplete()||0}}})}let ve=null;let Ge=lazyllhttp();Ge.catch();let Me=null;let _e=null;let He=0;let Oe=null;const Pe=1;const Ye=2;const Je=3;class Parser{constructor(e,A,{exports:t}){r(Number.isFinite(e[K])&&e[K]>0);this.llhttp=t;this.ptr=this.llhttp.llhttp_alloc(Ne.TYPE.RESPONSE);this.client=e;this.socket=A;this.timeout=null;this.timeoutValue=null;this.timeoutType=null;this.statusCode=null;this.statusText="";this.upgrade=false;this.headers=[];this.headersSize=0;this.headersMaxSize=e[K];this.shouldKeepAlive=false;this.paused=false;this.resume=this.resume.bind(this);this.bytesRead=0;this.keepAlive="";this.contentLength="";this.connection="";this.maxResponseSize=e[le]}setTimeout(e,A){this.timeoutType=A;if(e!==this.timeoutValue){a.clearTimeout(this.timeout);if(e){this.timeout=a.setTimeout(onParserTimeout,e,this);if(this.timeout.unref){this.timeout.unref()}}else{this.timeout=null}this.timeoutValue=e}else if(this.timeout){if(this.timeout.refresh){this.timeout.refresh()}}}resume(){if(this.socket.destroyed||!this.paused){return}r(this.ptr!=null);r(Me==null);this.llhttp.llhttp_resume(this.ptr);r(this.timeoutType===Ye);if(this.timeout){if(this.timeout.refresh){this.timeout.refresh()}}this.paused=false;this.execute(this.socket.read()||Le);this.readMore()}readMore(){while(!this.paused&&this.ptr){const e=this.socket.read();if(e===null){break}this.execute(e)}}execute(e){r(this.ptr!=null);r(Me==null);r(!this.paused);const{socket:A,llhttp:t}=this;if(e.length>He){if(Oe){t.free(Oe)}He=Math.ceil(e.length/4096)*4096;Oe=t.malloc(He)}new Uint8Array(t.memory.buffer,Oe,He).set(e);try{let r;try{_e=e;Me=this;r=t.llhttp_execute(this.ptr,Oe,e.length)}catch(e){throw e}finally{Me=null;_e=null}const s=t.llhttp_get_error_pos(this.ptr)-Oe;if(r===Ne.ERROR.PAUSED_UPGRADE){this.onUpgrade(e.slice(s))}else if(r===Ne.ERROR.PAUSED){this.paused=true;A.unshift(e.slice(s))}else if(r!==Ne.ERROR.OK){const A=t.llhttp_get_error_reason(this.ptr);let o="";if(A){const e=new Uint8Array(t.memory.buffer,A).indexOf(0);o="Response does not match the HTTP/1.1 protocol ("+Buffer.from(t.memory.buffer,A,e).toString()+")"}throw new p(o,Ne.ERROR[r],e.slice(s))}}catch(e){i.destroy(A,e)}}destroy(){r(this.ptr!=null);r(Me==null);this.llhttp.llhttp_free(this.ptr);this.ptr=null;a.clearTimeout(this.timeout);this.timeout=null;this.timeoutValue=null;this.timeoutType=null;this.paused=false}onStatus(e){this.statusText=e.toString()}onMessageBegin(){const{socket:e,client:A}=this;if(e.destroyed){return-1}const t=A[_][A[q]];if(!t){return-1}}onHeaderField(e){const A=this.headers.length;if((A&1)===0){this.headers.push(e)}else{this.headers[A-1]=Buffer.concat([this.headers[A-1],e])}this.trackHeader(e.length)}onHeaderValue(e){let A=this.headers.length;if((A&1)===1){this.headers.push(e);A+=1}else{this.headers[A-1]=Buffer.concat([this.headers[A-1],e])}const t=this.headers[A-2];if(t.length===10&&t.toString().toLowerCase()==="keep-alive"){this.keepAlive+=e.toString()}else if(t.length===10&&t.toString().toLowerCase()==="connection"){this.connection+=e.toString()}else if(t.length===14&&t.toString().toLowerCase()==="content-length"){this.contentLength+=e.toString()}this.trackHeader(e.length)}trackHeader(e){this.headersSize+=e;if(this.headersSize>=this.headersMaxSize){i.destroy(this.socket,new C)}}onUpgrade(e){const{upgrade:A,client:t,socket:s,headers:o,statusCode:n}=this;r(A);const a=t[_][t[q]];r(a);r(!s.destroyed);r(s===t[Z]);r(!this.paused);r(a.upgrade||a.method==="CONNECT");this.statusCode=null;this.statusText="";this.shouldKeepAlive=null;r(this.headers.length%2===0);this.headers=[];this.headersSize=0;s.unshift(e);s[F].destroy();s[F]=null;s[D]=null;s[W]=null;s.removeListener("error",onSocketError).removeListener("readable",onSocketReadable).removeListener("end",onSocketEnd).removeListener("close",onSocketClose);t[Z]=null;t[_][t[q]++]=null;t.emit("disconnect",t[R],[t],new I("upgrade"));try{a.onUpgrade(n,o,s)}catch(e){i.destroy(s,e)}resume(t)}onHeadersComplete(e,A,t){const{client:s,socket:o,headers:n,statusText:a}=this;if(o.destroyed){return-1}const c=s[_][s[q]];if(!c){return-1}r(!this.upgrade);r(this.statusCode<200);if(e===100){i.destroy(o,new B("bad response",i.getSocketInfo(o)));return-1}if(A&&!c.upgrade){i.destroy(o,new B("bad upgrade",i.getSocketInfo(o)));return-1}r.strictEqual(this.timeoutType,Pe);this.statusCode=e;this.shouldKeepAlive=t||c.method==="HEAD"&&!o[b]&&this.connection.toLowerCase()==="keep-alive";if(this.statusCode>=200){const e=c.bodyTimeout!=null?c.bodyTimeout:s[Ae];this.setTimeout(e,Ye)}else if(this.timeout){if(this.timeout.refresh){this.timeout.refresh()}}if(c.method==="CONNECT"){r(s[L]===1);this.upgrade=true;return 2}if(A){r(s[L]===1);this.upgrade=true;return 2}r(this.headers.length%2===0);this.headers=[];this.headersSize=0;if(this.shouldKeepAlive&&s[j]){const e=this.keepAlive?i.parseKeepAliveTimeout(this.keepAlive):null;if(e!=null){const A=Math.min(e-s[$],s[z]);if(A<=0){o[b]=true}else{s[X]=A}}else{s[X]=s[J]}}else{o[b]=true}const g=c.onHeaders(e,n,this.resume,a)===false;if(c.aborted){return-1}if(c.method==="HEAD"){return 1}if(e<200){return 1}if(o[N]){o[N]=false;resume(s)}return g?Ne.ERROR.PAUSED:0}onBody(e){const{client:A,socket:t,statusCode:s,maxResponseSize:o}=this;if(t.destroyed){return-1}const n=A[_][A[q]];r(n);r.strictEqual(this.timeoutType,Ye);if(this.timeout){if(this.timeout.refresh){this.timeout.refresh()}}r(s>=200);if(o>-1&&this.bytesRead+e.length>o){i.destroy(t,new m);return-1}this.bytesRead+=e.length;if(n.onData(e)===false){return Ne.ERROR.PAUSED}}onMessageComplete(){const{client:e,socket:A,statusCode:t,upgrade:s,headers:o,contentLength:n,bytesRead:a,shouldKeepAlive:c}=this;if(A.destroyed&&(!t||c)){return-1}if(s){return}const g=e[_][e[q]];r(g);r(t>=100);this.statusCode=null;this.statusText="";this.bytesRead=0;this.contentLength="";this.keepAlive="";this.connection="";r(this.headers.length%2===0);this.headers=[];this.headersSize=0;if(t<200){return}if(g.method!=="HEAD"&&n&&a!==parseInt(n,10)){i.destroy(A,new l);return-1}g.onComplete(o);e[_][e[q]++]=null;if(A[M]){r.strictEqual(e[L],0);i.destroy(A,new I("reset"));return Ne.ERROR.PAUSED}else if(!c){i.destroy(A,new I("reset"));return Ne.ERROR.PAUSED}else if(A[b]&&e[L]===0){i.destroy(A,new I("reset"));return Ne.ERROR.PAUSED}else if(e[j]===1){setImmediate(resume,e)}else{resume(e)}}}function onParserTimeout(e){const{socket:A,timeoutType:t,client:s}=e;if(t===Pe){if(!A[M]||A.writableNeedDrain||s[L]>1){r(!e.paused,"cannot be paused while waiting for headers");i.destroy(A,new Q)}}else if(t===Ye){if(!e.paused){i.destroy(A,new d)}}else if(t===Je){r(s[L]===0&&s[X]);i.destroy(A,new I("socket idle timeout"))}}function onSocketReadable(){const{[F]:e}=this;if(e){e.readMore()}}function onSocketError(e){const{[D]:A,[F]:t}=this;r(e.code!=="ERR_TLS_CERT_ALTNAME_INVALID");if(A[ue]!=="h2"){if(e.code==="ECONNRESET"&&t.statusCode&&!t.shouldKeepAlive){t.onMessageComplete();return}}this[W]=e;onError(this[D],e)}function onError(e,A){if(e[L]===0&&A.code!=="UND_ERR_INFO"&&A.code!=="UND_ERR_SOCKET"){r(e[V]===e[q]);const t=e[_].splice(e[q]);for(let r=0;r<t.length;r++){const s=t[r];errorRequest(e,s,A)}r(e[G]===0)}}function onSocketEnd(){const{[F]:e,[D]:A}=this;if(A[ue]!=="h2"){if(e.statusCode&&!e.shouldKeepAlive){e.onMessageComplete();return}}i.destroy(this,new B("other side closed",i.getSocketInfo(this)))}function onSocketClose(){const{[D]:e,[F]:A}=this;if(e[ue]==="h1"&&A){if(!this[W]&&A.statusCode&&!A.shouldKeepAlive){A.onMessageComplete()}this[F].destroy();this[F]=null}const t=this[W]||new B("closed",i.getSocketInfo(this));e[Z]=null;if(e.destroyed){r(e[v]===0);const A=e[_].splice(e[q]);for(let r=0;r<A.length;r++){const s=A[r];errorRequest(e,s,t)}}else if(e[L]>0&&t.code!=="UND_ERR_INFO"){const A=e[_][e[q]];e[_][e[q]++]=null;errorRequest(e,A,t)}e[V]=e[q];r(e[L]===0);e.emit("disconnect",e[R],[e],t);resume(e)}async function connect(e){r(!e[O]);r(!e[Z]);let{host:A,hostname:t,protocol:o,port:n}=e[R];if(t[0]==="["){const e=t.indexOf("]");r(e!==-1);const A=t.substring(1,e);r(s.isIP(A));t=A}e[O]=true;if(Te.beforeConnect.hasSubscribers){Te.beforeConnect.publish({connectParams:{host:A,hostname:t,protocol:o,port:n,servername:e[k],localAddress:e[Ee]},connector:e[re]})}try{const s=await new Promise(((r,s)=>{e[re]({host:A,hostname:t,protocol:o,port:n,servername:e[k],localAddress:e[Ee]},((e,A)=>{if(e){s(e)}else{r(A)}}))}));if(e.destroyed){i.destroy(s.on("error",(()=>{})),new y);return}e[O]=false;r(s);const a=s.alpnProtocol==="h2";if(a){if(!De){De=true;process.emitWarning("H2 support is experimental, expect them to change at any time.",{code:"UNDICI-H2"})}const A=pe.connect(e[R],{createConnection:()=>s,peerMaxConcurrentStreams:e[Ce].maxConcurrentStreams});e[ue]="h2";A[D]=e;A[Z]=s;A.on("error",onHttp2SessionError);A.on("frameError",onHttp2FrameError);A.on("end",onHttp2SessionEnd);A.on("goaway",onHTTP2GoAway);A.on("close",onSocketClose);A.unref();e[Qe]=A;s[Qe]=A}else{if(!ve){ve=await Ge;Ge=null}s[Y]=false;s[M]=false;s[b]=false;s[N]=false;s[F]=new Parser(e,s,ve)}s[ne]=0;s[oe]=e[oe];s[D]=e;s[W]=null;s.on("error",onSocketError).on("readable",onSocketReadable).on("end",onSocketEnd).on("close",onSocketClose);e[Z]=s;if(Te.connected.hasSubscribers){Te.connected.publish({connectParams:{host:A,hostname:t,protocol:o,port:n,servername:e[k],localAddress:e[Ee]},connector:e[re],socket:s})}e.emit("connect",e[R],[e])}catch(s){if(e.destroyed){return}e[O]=false;if(Te.connectError.hasSubscribers){Te.connectError.publish({connectParams:{host:A,hostname:t,protocol:o,port:n,servername:e[k],localAddress:e[Ee]},connector:e[re],error:s})}if(s.code==="ERR_TLS_CERT_ALTNAME_INVALID"){r(e[L]===0);while(e[v]>0&&e[_][e[V]].servername===e[k]){const A=e[_][e[V]++];errorRequest(e,A,s)}}else{onError(e,s)}e.emit("connectionError",e[R],[e],s)}resume(e)}function emitDrain(e){e[P]=0;e.emit("drain",e[R],[e])}function resume(e,A){if(e[U]===2){return}e[U]=2;_resume(e,A);e[U]=0;if(e[q]>256){e[_].splice(0,e[q]);e[V]-=e[q];e[q]=0}}function _resume(e,A){while(true){if(e.destroyed){r(e[v]===0);return}if(e[Fe]&&!e[G]){e[Fe]();e[Fe]=null;return}const t=e[Z];if(t&&!t.destroyed&&t.alpnProtocol!=="h2"){if(e[G]===0){if(!t[Y]&&t.unref){t.unref();t[Y]=true}}else if(t[Y]&&t.ref){t.ref();t[Y]=false}if(e[G]===0){if(t[F].timeoutType!==Je){t[F].setTimeout(e[X],Je)}}else if(e[L]>0&&t[F].statusCode<200){if(t[F].timeoutType!==Pe){const A=e[_][e[q]];const r=A.headersTimeout!=null?A.headersTimeout:e[ee];t[F].setTimeout(r,Pe)}}}if(e[S]){e[P]=2}else if(e[P]===2){if(A){e[P]=1;process.nextTick(emitDrain,e)}else{emitDrain(e)}continue}if(e[v]===0){return}if(e[L]>=(e[j]||1)){return}const s=e[_][e[V]];if(e[R].protocol==="https:"&&e[k]!==s.servername){if(e[L]>0){return}e[k]=s.servername;if(t&&t.servername!==s.servername){i.destroy(t,new I("servername changed"));return}}if(e[O]){return}if(!t&&!e[Qe]){connect(e);return}if(t.destroyed||t[M]||t[b]||t[N]){return}if(e[L]>0&&!s.idempotent){return}if(e[L]>0&&(s.upgrade||s.method==="CONNECT")){return}if(e[L]>0&&i.bodyLength(s.body)!==0&&(i.isStream(s.body)||i.isAsyncIterable(s.body))){return}if(!s.aborted&&write(e,s)){e[V]++}else{e[_].splice(e[V],1)}}}function shouldSendContentLength(e){return e!=="GET"&&e!=="HEAD"&&e!=="OPTIONS"&&e!=="TRACE"&&e!=="CONNECT"}function write(e,A){if(e[ue]==="h2"){writeH2(e,e[Qe],A);return}const{body:t,method:s,path:o,host:n,upgrade:a,headers:c,blocking:g,reset:l}=A;const u=s==="PUT"||s==="POST"||s==="PATCH";if(t&&typeof t.read==="function"){t.read(0)}const Q=i.bodyLength(t);let C=Q;if(C===null){C=A.contentLength}if(C===0&&!u){C=null}if(shouldSendContentLength(s)&&C>0&&A.contentLength!==null&&A.contentLength!==C){if(e[te]){errorRequest(e,A,new E);return false}process.emitWarning(new E)}const B=e[Z];try{A.onConnect((t=>{if(A.aborted||A.completed){return}errorRequest(e,A,t||new h);i.destroy(B,new I("aborted"))}))}catch(t){errorRequest(e,A,t)}if(A.aborted){return false}if(s==="HEAD"){B[b]=true}if(a||s==="CONNECT"){B[b]=true}if(l!=null){B[b]=l}if(e[oe]&&B[ne]++>=e[oe]){B[b]=true}if(g){B[N]=true}let d=`${s} ${o} HTTP/1.1\r\n`;if(typeof n==="string"){d+=`host: ${n}\r\n`}else{d+=e[x]}if(a){d+=`connection: upgrade\r\nupgrade: ${a}\r\n`}else if(e[j]&&!B[b]){d+="connection: keep-alive\r\n"}else{d+="connection: close\r\n"}if(c){d+=c}if(Te.sendHeaders.hasSubscribers){Te.sendHeaders.publish({request:A,headers:d,socket:B})}if(!t||Q===0){if(C===0){B.write(`${d}content-length: 0\r\n\r\n`,"latin1")}else{r(C===null,"no body must not have content length");B.write(`${d}\r\n`,"latin1")}A.onRequestSent()}else if(i.isBuffer(t)){r(C===t.byteLength,"buffer body must have content length");B.cork();B.write(`${d}content-length: ${C}\r\n\r\n`,"latin1");B.write(t);B.uncork();A.onBodySent(t);A.onRequestSent();if(!u){B[b]=true}}else if(i.isBlobLike(t)){if(typeof t.stream==="function"){writeIterable({body:t.stream(),client:e,request:A,socket:B,contentLength:C,header:d,expectsPayload:u})}else{writeBlob({body:t,client:e,request:A,socket:B,contentLength:C,header:d,expectsPayload:u})}}else if(i.isStream(t)){writeStream({body:t,client:e,request:A,socket:B,contentLength:C,header:d,expectsPayload:u})}else if(i.isIterable(t)){writeIterable({body:t,client:e,request:A,socket:B,contentLength:C,header:d,expectsPayload:u})}else{r(false)}return true}function writeH2(e,A,t){const{body:s,method:o,path:n,host:a,upgrade:g,expectContinue:l,signal:u,headers:Q}=t;let C;if(typeof Q==="string")C=c[Ie](Q.trim());else C=Q;if(g){errorRequest(e,t,new Error("Upgrade not supported for H2"));return false}try{t.onConnect((A=>{if(t.aborted||t.completed){return}errorRequest(e,t,A||new h)}))}catch(A){errorRequest(e,t,A)}if(t.aborted){return false}let B;const d=e[Ce];C[fe]=a||e[he];C[me]=o;if(o==="CONNECT"){A.ref();B=A.request(C,{endStream:false,signal:u});if(B.id&&!B.pending){t.onUpgrade(null,null,B);++d.openStreams}else{B.once("ready",(()=>{t.onUpgrade(null,null,B);++d.openStreams}))}B.once("close",(()=>{d.openStreams-=1;if(d.openStreams===0)A.unref()}));return true}C[ye]=n;C[we]="https";const p=o==="PUT"||o==="POST"||o==="PATCH";if(s&&typeof s.read==="function"){s.read(0)}let m=i.bodyLength(s);if(m==null){m=t.contentLength}if(m===0||!p){m=null}if(shouldSendContentLength(o)&&m>0&&t.contentLength!=null&&t.contentLength!==m){if(e[te]){errorRequest(e,t,new E);return false}process.emitWarning(new E)}if(m!=null){r(s,"no body must not have content length");C[Re]=`${m}`}A.ref();const y=o==="GET"||o==="HEAD";if(l){C[be]="100-continue";B=A.request(C,{endStream:y,signal:u});B.once("continue",writeBodyH2)}else{B=A.request(C,{endStream:y,signal:u});writeBodyH2()}++d.openStreams;B.once("response",(e=>{const{[ke]:A,...r}=e;if(t.onHeaders(Number(A),r,B.resume.bind(B),"")===false){B.pause()}}));B.once("end",(()=>{t.onComplete([])}));B.on("data",(e=>{if(t.onData(e)===false){B.pause()}}));B.once("close",(()=>{d.openStreams-=1;if(d.openStreams===0){A.unref()}}));B.once("error",(function(A){if(e[Qe]&&!e[Qe].destroyed&&!this.closed&&!this.destroyed){d.streams-=1;i.destroy(B,A)}}));B.once("frameError",((A,r)=>{const s=new I(`HTTP/2: "frameError" received - type ${A}, code ${r}`);errorRequest(e,t,s);if(e[Qe]&&!e[Qe].destroyed&&!this.closed&&!this.destroyed){d.streams-=1;i.destroy(B,s)}}));return true;function writeBodyH2(){if(!s){t.onRequestSent()}else if(i.isBuffer(s)){r(m===s.byteLength,"buffer body must have content length");B.cork();B.write(s);B.uncork();B.end();t.onBodySent(s);t.onRequestSent()}else if(i.isBlobLike(s)){if(typeof s.stream==="function"){writeIterable({client:e,request:t,contentLength:m,h2stream:B,expectsPayload:p,body:s.stream(),socket:e[Z],header:""})}else{writeBlob({body:s,client:e,request:t,contentLength:m,expectsPayload:p,h2stream:B,header:"",socket:e[Z]})}}else if(i.isStream(s)){writeStream({body:s,client:e,request:t,contentLength:m,expectsPayload:p,socket:e[Z],h2stream:B,header:""})}else if(i.isIterable(s)){writeIterable({body:s,client:e,request:t,contentLength:m,expectsPayload:p,header:"",h2stream:B,socket:e[Z]})}else{r(false)}}}function writeStream({h2stream:e,body:A,client:t,request:s,socket:o,contentLength:a,header:c,expectsPayload:g}){r(a!==0||t[L]===0,"stream body cannot be pipelined");if(t[ue]==="h2"){const u=n(A,e,(t=>{if(t){i.destroy(A,t);i.destroy(e,t)}else{s.onRequestSent()}}));u.on("data",onPipeData);u.once("end",(()=>{u.removeListener("data",onPipeData);i.destroy(u)}));function onPipeData(e){s.onBodySent(e)}return}let E=false;const l=new AsyncWriter({socket:o,request:s,contentLength:a,client:t,expectsPayload:g,header:c});const onData=function(e){if(E){return}try{if(!l.write(e)&&this.pause){this.pause()}}catch(e){i.destroy(this,e)}};const onDrain=function(){if(E){return}if(A.resume){A.resume()}};const onAbort=function(){if(E){return}const e=new h;queueMicrotask((()=>onFinished(e)))};const onFinished=function(e){if(E){return}E=true;r(o.destroyed||o[M]&&t[L]<=1);o.off("drain",onDrain).off("error",onFinished);A.removeListener("data",onData).removeListener("end",onFinished).removeListener("error",onFinished).removeListener("close",onAbort);if(!e){try{l.end()}catch(A){e=A}}l.destroy(e);if(e&&(e.code!=="UND_ERR_INFO"||e.message!=="reset")){i.destroy(A,e)}else{i.destroy(A)}};A.on("data",onData).on("end",onFinished).on("error",onFinished).on("close",onAbort);if(A.resume){A.resume()}o.on("drain",onDrain).on("error",onFinished)}async function writeBlob({h2stream:e,body:A,client:t,request:s,socket:o,contentLength:n,header:a,expectsPayload:c}){r(n===A.size,"blob body must have content length");const g=t[ue]==="h2";try{if(n!=null&&n!==A.size){throw new E}const r=Buffer.from(await A.arrayBuffer());if(g){e.cork();e.write(r);e.uncork()}else{o.cork();o.write(`${a}content-length: ${n}\r\n\r\n`,"latin1");o.write(r);o.uncork()}s.onBodySent(r);s.onRequestSent();if(!c){o[b]=true}resume(t)}catch(A){i.destroy(g?e:o,A)}}async function writeIterable({h2stream:e,body:A,client:t,request:s,socket:o,contentLength:n,header:i,expectsPayload:a}){r(n!==0||t[L]===0,"iterator body cannot be pipelined");let c=null;function onDrain(){if(c){const e=c;c=null;e()}}const waitForDrain=()=>new Promise(((e,A)=>{r(c===null);if(o[W]){A(o[W])}else{c=e}}));if(t[ue]==="h2"){e.on("close",onDrain).on("drain",onDrain);try{for await(const t of A){if(o[W]){throw o[W]}const A=e.write(t);s.onBodySent(t);if(!A){await waitForDrain()}}}catch(A){e.destroy(A)}finally{s.onRequestSent();e.end();e.off("close",onDrain).off("drain",onDrain)}return}o.on("close",onDrain).on("drain",onDrain);const g=new AsyncWriter({socket:o,request:s,contentLength:n,client:t,expectsPayload:a,header:i});try{for await(const e of A){if(o[W]){throw o[W]}if(!g.write(e)){await waitForDrain()}}g.end()}catch(e){g.destroy(e)}finally{o.off("close",onDrain).off("drain",onDrain)}}class AsyncWriter{constructor({socket:e,request:A,contentLength:t,client:r,expectsPayload:s,header:o}){this.socket=e;this.request=A;this.contentLength=t;this.client=r;this.bytesWritten=0;this.expectsPayload=s;this.header=o;e[M]=true}write(e){const{socket:A,request:t,contentLength:r,client:s,bytesWritten:o,expectsPayload:n,header:i}=this;if(A[W]){throw A[W]}if(A.destroyed){return false}const a=Buffer.byteLength(e);if(!a){return true}if(r!==null&&o+a>r){if(s[te]){throw new E}process.emitWarning(new E)}A.cork();if(o===0){if(!n){A[b]=true}if(r===null){A.write(`${i}transfer-encoding: chunked\r\n`,"latin1")}else{A.write(`${i}content-length: ${r}\r\n\r\n`,"latin1")}}if(r===null){A.write(`\r\n${a.toString(16)}\r\n`,"latin1")}this.bytesWritten+=a;const c=A.write(e);A.uncork();t.onBodySent(e);if(!c){if(A[F].timeout&&A[F].timeoutType===Pe){if(A[F].timeout.refresh){A[F].timeout.refresh()}}}return c}end(){const{socket:e,contentLength:A,client:t,bytesWritten:r,expectsPayload:s,header:o,request:n}=this;n.onRequestSent();e[M]=false;if(e[W]){throw e[W]}if(e.destroyed){return}if(r===0){if(s){e.write(`${o}content-length: 0\r\n\r\n`,"latin1")}else{e.write(`${o}\r\n`,"latin1")}}else if(A===null){e.write("\r\n0\r\n\r\n","latin1")}if(A!==null&&r!==A){if(t[te]){throw new E}else{process.emitWarning(new E)}}if(e[F].timeout&&e[F].timeoutType===Pe){if(e[F].timeout.refresh){e[F].timeout.refresh()}}resume(t)}destroy(e){const{socket:A,client:t}=this;A[M]=false;if(e){r(t[L]<=1,"pipeline should only contain this request");i.destroy(A,e)}}}function errorRequest(e,A,t){try{A.onError(t);r(A.aborted)}catch(t){e.emit("error",t)}}e.exports=Client},3194:(e,A,t)=>{const{kConnected:r,kSize:s}=t(6443);class CompatWeakRef{constructor(e){this.value=e}deref(){return this.value[r]===0&&this.value[s]===0?undefined:this.value}}class CompatFinalizer{constructor(e){this.finalizer=e}register(e,A){if(e.on){e.on("disconnect",(()=>{if(e[r]===0&&e[s]===0){this.finalizer(A)}}))}}}e.exports=function(){if(process.env.NODE_V8_COVERAGE){return{WeakRef:CompatWeakRef,FinalizationRegistry:CompatFinalizer}}return{WeakRef:global.WeakRef||CompatWeakRef,FinalizationRegistry:global.FinalizationRegistry||CompatFinalizer}}},9237:e=>{const A=1024;const t=4096;e.exports={maxAttributeValueSize:A,maxNameValuePairSize:t}},3168:(e,A,t)=>{const{parseSetCookie:r}=t(8915);const{stringify:s}=t(3834);const{webidl:o}=t(4222);const{Headers:n}=t(6349);function getCookies(e){o.argumentLengthCheck(arguments,1,{header:"getCookies"});o.brandCheck(e,n,{strict:false});const A=e.get("cookie");const t={};if(!A){return t}for(const e of A.split(";")){const[A,...r]=e.split("=");t[A.trim()]=r.join("=")}return t}function deleteCookie(e,A,t){o.argumentLengthCheck(arguments,2,{header:"deleteCookie"});o.brandCheck(e,n,{strict:false});A=o.converters.DOMString(A);t=o.converters.DeleteCookieAttributes(t);setCookie(e,{name:A,value:"",expires:new Date(0),...t})}function getSetCookies(e){o.argumentLengthCheck(arguments,1,{header:"getSetCookies"});o.brandCheck(e,n,{strict:false});const A=e.getSetCookie();if(!A){return[]}return A.map((e=>r(e)))}function setCookie(e,A){o.argumentLengthCheck(arguments,2,{header:"setCookie"});o.brandCheck(e,n,{strict:false});A=o.converters.Cookie(A);const t=s(A);if(t){e.append("Set-Cookie",s(A))}}o.converters.DeleteCookieAttributes=o.dictionaryConverter([{converter:o.nullableConverter(o.converters.DOMString),key:"path",defaultValue:null},{converter:o.nullableConverter(o.converters.DOMString),key:"domain",defaultValue:null}]);o.converters.Cookie=o.dictionaryConverter([{converter:o.converters.DOMString,key:"name"},{converter:o.converters.DOMString,key:"value"},{converter:o.nullableConverter((e=>{if(typeof e==="number"){return o.converters["unsigned long long"](e)}return new Date(e)})),key:"expires",defaultValue:null},{converter:o.nullableConverter(o.converters["long long"]),key:"maxAge",defaultValue:null},{converter:o.nullableConverter(o.converters.DOMString),key:"domain",defaultValue:null},{converter:o.nullableConverter(o.converters.DOMString),key:"path",defaultValue:null},{converter:o.nullableConverter(o.converters.boolean),key:"secure",defaultValue:null},{converter:o.nullableConverter(o.converters.boolean),key:"httpOnly",defaultValue:null},{converter:o.converters.USVString,key:"sameSite",allowedValues:["Strict","Lax","None"]},{converter:o.sequenceConverter(o.converters.DOMString),key:"unparsed",defaultValue:[]}]);e.exports={getCookies:getCookies,deleteCookie:deleteCookie,getSetCookies:getSetCookies,setCookie:setCookie}},8915:(e,A,t)=>{const{maxNameValuePairSize:r,maxAttributeValueSize:s}=t(9237);const{isCTLExcludingHtab:o}=t(3834);const{collectASequenceOfCodePointsFast:n}=t(4322);const i=t(2613);function parseSetCookie(e){if(o(e)){return null}let A="";let t="";let s="";let i="";if(e.includes(";")){const r={position:0};A=n(";",e,r);t=e.slice(r.position)}else{A=e}if(!A.includes("=")){i=A}else{const e={position:0};s=n("=",A,e);i=A.slice(e.position+1)}s=s.trim();i=i.trim();if(s.length+i.length>r){return null}return{name:s,value:i,...parseUnparsedAttributes(t)}}function parseUnparsedAttributes(e,A={}){if(e.length===0){return A}i(e[0]===";");e=e.slice(1);let t="";if(e.includes(";")){t=n(";",e,{position:0});e=e.slice(t.length)}else{t=e;e=""}let r="";let o="";if(t.includes("=")){const e={position:0};r=n("=",t,e);o=t.slice(e.position+1)}else{r=t}r=r.trim();o=o.trim();if(o.length>s){return parseUnparsedAttributes(e,A)}const a=r.toLowerCase();if(a==="expires"){const e=new Date(o);A.expires=e}else if(a==="max-age"){const t=o.charCodeAt(0);if((t<48||t>57)&&o[0]!=="-"){return parseUnparsedAttributes(e,A)}if(!/^\d+$/.test(o)){return parseUnparsedAttributes(e,A)}const r=Number(o);A.maxAge=r}else if(a==="domain"){let e=o;if(e[0]==="."){e=e.slice(1)}e=e.toLowerCase();A.domain=e}else if(a==="path"){let e="";if(o.length===0||o[0]!=="/"){e="/"}else{e=o}A.path=e}else if(a==="secure"){A.secure=true}else if(a==="httponly"){A.httpOnly=true}else if(a==="samesite"){let e="Default";const t=o.toLowerCase();if(t.includes("none")){e="None"}if(t.includes("strict")){e="Strict"}if(t.includes("lax")){e="Lax"}A.sameSite=e}else{A.unparsed??=[];A.unparsed.push(`${r}=${o}`)}return parseUnparsedAttributes(e,A)}e.exports={parseSetCookie:parseSetCookie,parseUnparsedAttributes:parseUnparsedAttributes}},3834:e=>{function isCTLExcludingHtab(e){if(e.length===0){return false}for(const A of e){const e=A.charCodeAt(0);if(e>=0||e<=8||(e>=10||e<=31)||e===127){return false}}}function validateCookieName(e){for(const A of e){const e=A.charCodeAt(0);if(e<=32||e>127||A==="("||A===")"||A===">"||A==="<"||A==="@"||A===","||A===";"||A===":"||A==="\\"||A==='"'||A==="/"||A==="["||A==="]"||A==="?"||A==="="||A==="{"||A==="}"){throw new Error("Invalid cookie name")}}}function validateCookieValue(e){for(const A of e){const e=A.charCodeAt(0);if(e<33||e===34||e===44||e===59||e===92||e>126){throw new Error("Invalid header value")}}}function validateCookiePath(e){for(const A of e){const e=A.charCodeAt(0);if(e<33||A===";"){throw new Error("Invalid cookie path")}}}function validateCookieDomain(e){if(e.startsWith("-")||e.endsWith(".")||e.endsWith("-")){throw new Error("Invalid cookie domain")}}function toIMFDate(e){if(typeof e==="number"){e=new Date(e)}const A=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"];const t=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];const r=A[e.getUTCDay()];const s=e.getUTCDate().toString().padStart(2,"0");const o=t[e.getUTCMonth()];const n=e.getUTCFullYear();const i=e.getUTCHours().toString().padStart(2,"0");const a=e.getUTCMinutes().toString().padStart(2,"0");const c=e.getUTCSeconds().toString().padStart(2,"0");return`${r}, ${s} ${o} ${n} ${i}:${a}:${c} GMT`}function validateCookieMaxAge(e){if(e<0){throw new Error("Invalid cookie max-age")}}function stringify(e){if(e.name.length===0){return null}validateCookieName(e.name);validateCookieValue(e.value);const A=[`${e.name}=${e.value}`];if(e.name.startsWith("__Secure-")){e.secure=true}if(e.name.startsWith("__Host-")){e.secure=true;e.domain=null;e.path="/"}if(e.secure){A.push("Secure")}if(e.httpOnly){A.push("HttpOnly")}if(typeof e.maxAge==="number"){validateCookieMaxAge(e.maxAge);A.push(`Max-Age=${e.maxAge}`)}if(e.domain){validateCookieDomain(e.domain);A.push(`Domain=${e.domain}`)}if(e.path){validateCookiePath(e.path);A.push(`Path=${e.path}`)}if(e.expires&&e.expires.toString()!=="Invalid Date"){A.push(`Expires=${toIMFDate(e.expires)}`)}if(e.sameSite){A.push(`SameSite=${e.sameSite}`)}for(const t of e.unparsed){if(!t.includes("=")){throw new Error("Invalid unparsed")}const[e,...r]=t.split("=");A.push(`${e.trim()}=${r.join("=")}`)}return A.join("; ")}e.exports={isCTLExcludingHtab:isCTLExcludingHtab,validateCookieName:validateCookieName,validateCookiePath:validateCookiePath,validateCookieValue:validateCookieValue,toIMFDate:toIMFDate,stringify:stringify}},9136:(e,A,t)=>{const r=t(9278);const s=t(2613);const o=t(3440);const{InvalidArgumentError:n,ConnectTimeoutError:i}=t(8707);let a;let c;if(global.FinalizationRegistry&&!process.env.NODE_V8_COVERAGE){c=class WeakSessionCache{constructor(e){this._maxCachedSessions=e;this._sessionCache=new Map;this._sessionRegistry=new global.FinalizationRegistry((e=>{if(this._sessionCache.size<this._maxCachedSessions){return}const A=this._sessionCache.get(e);if(A!==undefined&&A.deref()===undefined){this._sessionCache.delete(e)}}))}get(e){const A=this._sessionCache.get(e);return A?A.deref():null}set(e,A){if(this._maxCachedSessions===0){return}this._sessionCache.set(e,new WeakRef(A));this._sessionRegistry.register(A,e)}}}else{c=class SimpleSessionCache{constructor(e){this._maxCachedSessions=e;this._sessionCache=new Map}get(e){return this._sessionCache.get(e)}set(e,A){if(this._maxCachedSessions===0){return}if(this._sessionCache.size>=this._maxCachedSessions){const{value:e}=this._sessionCache.keys().next();this._sessionCache.delete(e)}this._sessionCache.set(e,A)}}}function buildConnector({allowH2:e,maxCachedSessions:A,socketPath:i,timeout:g,...E}){if(A!=null&&(!Number.isInteger(A)||A<0)){throw new n("maxCachedSessions must be a positive integer or zero")}const l={path:i,...E};const u=new c(A==null?100:A);g=g==null?1e4:g;e=e!=null?e:false;return function connect({hostname:A,host:n,protocol:i,port:c,servername:E,localAddress:h,httpSocket:Q},C){let B;if(i==="https:"){if(!a){a=t(4756)}E=E||l.servername||o.getServerName(n)||null;const r=E||A;const i=u.get(r)||null;s(r);B=a.connect({highWaterMark:16384,...l,servername:E,session:i,localAddress:h,ALPNProtocols:e?["http/1.1","h2"]:["http/1.1"],socket:Q,port:c||443,host:A});B.on("session",(function(e){u.set(r,e)}))}else{s(!Q,"httpSocket can only be sent on TLS update");B=r.connect({highWaterMark:64*1024,...l,localAddress:h,port:c||80,host:A})}if(l.keepAlive==null||l.keepAlive){const e=l.keepAliveInitialDelay===undefined?6e4:l.keepAliveInitialDelay;B.setKeepAlive(true,e)}const I=setupTimeout((()=>onConnectTimeout(B)),g);B.setNoDelay(true).once(i==="https:"?"secureConnect":"connect",(function(){I();if(C){const e=C;C=null;e(null,this)}})).on("error",(function(e){I();if(C){const A=C;C=null;A(e)}}));return B}}function setupTimeout(e,A){if(!A){return()=>{}}let t=null;let r=null;const s=setTimeout((()=>{t=setImmediate((()=>{if(process.platform==="win32"){r=setImmediate((()=>e()))}else{e()}}))}),A);return()=>{clearTimeout(s);clearImmediate(t);clearImmediate(r)}}function onConnectTimeout(e){o.destroy(e,new i)}e.exports=buildConnector},735:e=>{const A={};const t=["Accept","Accept-Encoding","Accept-Language","Accept-Ranges","Access-Control-Allow-Credentials","Access-Control-Allow-Headers","Access-Control-Allow-Methods","Access-Control-Allow-Origin","Access-Control-Expose-Headers","Access-Control-Max-Age","Access-Control-Request-Headers","Access-Control-Request-Method","Age","Allow","Alt-Svc","Alt-Used","Authorization","Cache-Control","Clear-Site-Data","Connection","Content-Disposition","Content-Encoding","Content-Language","Content-Length","Content-Location","Content-Range","Content-Security-Policy","Content-Security-Policy-Report-Only","Content-Type","Cookie","Cross-Origin-Embedder-Policy","Cross-Origin-Opener-Policy","Cross-Origin-Resource-Policy","Date","Device-Memory","Downlink","ECT","ETag","Expect","Expect-CT","Expires","Forwarded","From","Host","If-Match","If-Modified-Since","If-None-Match","If-Range","If-Unmodified-Since","Keep-Alive","Last-Modified","Link","Location","Max-Forwards","Origin","Permissions-Policy","Pragma","Proxy-Authenticate","Proxy-Authorization","RTT","Range","Referer","Referrer-Policy","Refresh","Retry-After","Sec-WebSocket-Accept","Sec-WebSocket-Extensions","Sec-WebSocket-Key","Sec-WebSocket-Protocol","Sec-WebSocket-Version","Server","Server-Timing","Service-Worker-Allowed","Service-Worker-Navigation-Preload","Set-Cookie","SourceMap","Strict-Transport-Security","Supports-Loading-Mode","TE","Timing-Allow-Origin","Trailer","Transfer-Encoding","Upgrade","Upgrade-Insecure-Requests","User-Agent","Vary","Via","WWW-Authenticate","X-Content-Type-Options","X-DNS-Prefetch-Control","X-Frame-Options","X-Permitted-Cross-Domain-Policies","X-Powered-By","X-Requested-With","X-XSS-Protection"];for(let e=0;e<t.length;++e){const r=t[e];const s=r.toLowerCase();A[r]=A[s]=s}Object.setPrototypeOf(A,null);e.exports={wellknownHeaderNames:t,headerNameLowerCasedRecord:A}},8707:e=>{class UndiciError extends Error{constructor(e){super(e);this.name="UndiciError";this.code="UND_ERR"}}class ConnectTimeoutError extends UndiciError{constructor(e){super(e);Error.captureStackTrace(this,ConnectTimeoutError);this.name="ConnectTimeoutError";this.message=e||"Connect Timeout Error";this.code="UND_ERR_CONNECT_TIMEOUT"}}class HeadersTimeoutError extends UndiciError{constructor(e){super(e);Error.captureStackTrace(this,HeadersTimeoutError);this.name="HeadersTimeoutError";this.message=e||"Headers Timeout Error";this.code="UND_ERR_HEADERS_TIMEOUT"}}class HeadersOverflowError extends UndiciError{constructor(e){super(e);Error.captureStackTrace(this,HeadersOverflowError);this.name="HeadersOverflowError";this.message=e||"Headers Overflow Error";this.code="UND_ERR_HEADERS_OVERFLOW"}}class BodyTimeoutError extends UndiciError{constructor(e){super(e);Error.captureStackTrace(this,BodyTimeoutError);this.name="BodyTimeoutError";this.message=e||"Body Timeout Error";this.code="UND_ERR_BODY_TIMEOUT"}}class ResponseStatusCodeError extends UndiciError{constructor(e,A,t,r){super(e);Error.captureStackTrace(this,ResponseStatusCodeError);this.name="ResponseStatusCodeError";this.message=e||"Response Status Code Error";this.code="UND_ERR_RESPONSE_STATUS_CODE";this.body=r;this.status=A;this.statusCode=A;this.headers=t}}class InvalidArgumentError extends UndiciError{constructor(e){super(e);Error.captureStackTrace(this,InvalidArgumentError);this.name="InvalidArgumentError";this.message=e||"Invalid Argument Error";this.code="UND_ERR_INVALID_ARG"}}class InvalidReturnValueError extends UndiciError{constructor(e){super(e);Error.captureStackTrace(this,InvalidReturnValueError);this.name="InvalidReturnValueError";this.message=e||"Invalid Return Value Error";this.code="UND_ERR_INVALID_RETURN_VALUE"}}class RequestAbortedError extends UndiciError{constructor(e){super(e);Error.captureStackTrace(this,RequestAbortedError);this.name="AbortError";this.message=e||"Request aborted";this.code="UND_ERR_ABORTED"}}class InformationalError extends UndiciError{constructor(e){super(e);Error.captureStackTrace(this,InformationalError);this.name="InformationalError";this.message=e||"Request information";this.code="UND_ERR_INFO"}}class RequestContentLengthMismatchError extends UndiciError{constructor(e){super(e);Error.captureStackTrace(this,RequestContentLengthMismatchError);this.name="RequestContentLengthMismatchError";this.message=e||"Request body length does not match content-length header";this.code="UND_ERR_REQ_CONTENT_LENGTH_MISMATCH"}}class ResponseContentLengthMismatchError extends UndiciError{constructor(e){super(e);Error.captureStackTrace(this,ResponseContentLengthMismatchError);this.name="ResponseContentLengthMismatchError";this.message=e||"Response body length does not match content-length header";this.code="UND_ERR_RES_CONTENT_LENGTH_MISMATCH"}}class ClientDestroyedError extends UndiciError{constructor(e){super(e);Error.captureStackTrace(this,ClientDestroyedError);this.name="ClientDestroyedError";this.message=e||"The client is destroyed";this.code="UND_ERR_DESTROYED"}}class ClientClosedError extends UndiciError{constructor(e){super(e);Error.captureStackTrace(this,ClientClosedError);this.name="ClientClosedError";this.message=e||"The client is closed";this.code="UND_ERR_CLOSED"}}class SocketError extends UndiciError{constructor(e,A){super(e);Error.captureStackTrace(this,SocketError);this.name="SocketError";this.message=e||"Socket error";this.code="UND_ERR_SOCKET";this.socket=A}}class NotSupportedError extends UndiciError{constructor(e){super(e);Error.captureStackTrace(this,NotSupportedError);this.name="NotSupportedError";this.message=e||"Not supported error";this.code="UND_ERR_NOT_SUPPORTED"}}class BalancedPoolMissingUpstreamError extends UndiciError{constructor(e){super(e);Error.captureStackTrace(this,NotSupportedError);this.name="MissingUpstreamError";this.message=e||"No upstream has been added to the BalancedPool";this.code="UND_ERR_BPL_MISSING_UPSTREAM"}}class HTTPParserError extends Error{constructor(e,A,t){super(e);Error.captureStackTrace(this,HTTPParserError);this.name="HTTPParserError";this.code=A?`HPE_${A}`:undefined;this.data=t?t.toString():undefined}}class ResponseExceededMaxSizeError extends UndiciError{constructor(e){super(e);Error.captureStackTrace(this,ResponseExceededMaxSizeError);this.name="ResponseExceededMaxSizeError";this.message=e||"Response content exceeded max size";this.code="UND_ERR_RES_EXCEEDED_MAX_SIZE"}}class RequestRetryError extends UndiciError{constructor(e,A,{headers:t,data:r}){super(e);Error.captureStackTrace(this,RequestRetryError);this.name="RequestRetryError";this.message=e||"Request retry error";this.code="UND_ERR_REQ_RETRY";this.statusCode=A;this.data=r;this.headers=t}}e.exports={HTTPParserError:HTTPParserError,UndiciError:UndiciError,HeadersTimeoutError:HeadersTimeoutError,HeadersOverflowError:HeadersOverflowError,BodyTimeoutError:BodyTimeoutError,RequestContentLengthMismatchError:RequestContentLengthMismatchError,ConnectTimeoutError:ConnectTimeoutError,ResponseStatusCodeError:ResponseStatusCodeError,InvalidArgumentError:InvalidArgumentError,InvalidReturnValueError:InvalidReturnValueError,RequestAbortedError:RequestAbortedError,ClientDestroyedError:ClientDestroyedError,ClientClosedError:ClientClosedError,InformationalError:InformationalError,SocketError:SocketError,NotSupportedError:NotSupportedError,ResponseContentLengthMismatchError:ResponseContentLengthMismatchError,BalancedPoolMissingUpstreamError:BalancedPoolMissingUpstreamError,ResponseExceededMaxSizeError:ResponseExceededMaxSizeError,RequestRetryError:RequestRetryError}},4655:(e,A,t)=>{const{InvalidArgumentError:r,NotSupportedError:s}=t(8707);const o=t(2613);const{kHTTP2BuildRequest:n,kHTTP2CopyHeaders:i,kHTTP1BuildRequest:a}=t(6443);const c=t(3440);const g=/^[\^_`a-zA-Z\-0-9!#$%&'*+.|~]+$/;const E=/[^\t\x20-\x7e\x80-\xff]/;const l=/[^\u0021-\u00ff]/;const u=Symbol("handler");const h={};let Q;try{const e=t(1637);h.create=e.channel("undici:request:create");h.bodySent=e.channel("undici:request:bodySent");h.headers=e.channel("undici:request:headers");h.trailers=e.channel("undici:request:trailers");h.error=e.channel("undici:request:error")}catch{h.create={hasSubscribers:false};h.bodySent={hasSubscribers:false};h.headers={hasSubscribers:false};h.trailers={hasSubscribers:false};h.error={hasSubscribers:false}}class Request{constructor(e,{path:A,method:s,body:o,headers:n,query:i,idempotent:a,blocking:E,upgrade:C,headersTimeout:B,bodyTimeout:I,reset:d,throwOnError:p,expectContinue:m},y){if(typeof A!=="string"){throw new r("path must be a string")}else if(A[0]!=="/"&&!(A.startsWith("http://")||A.startsWith("https://"))&&s!=="CONNECT"){throw new r("path must be an absolute URL or start with a slash")}else if(l.exec(A)!==null){throw new r("invalid request path")}if(typeof s!=="string"){throw new r("method must be a string")}else if(g.exec(s)===null){throw new r("invalid request method")}if(C&&typeof C!=="string"){throw new r("upgrade must be a string")}if(B!=null&&(!Number.isFinite(B)||B<0)){throw new r("invalid headersTimeout")}if(I!=null&&(!Number.isFinite(I)||I<0)){throw new r("invalid bodyTimeout")}if(d!=null&&typeof d!=="boolean"){throw new r("invalid reset")}if(m!=null&&typeof m!=="boolean"){throw new r("invalid expectContinue")}this.headersTimeout=B;this.bodyTimeout=I;this.throwOnError=p===true;this.method=s;this.abort=null;if(o==null){this.body=null}else if(c.isStream(o)){this.body=o;const e=this.body._readableState;if(!e||!e.autoDestroy){this.endHandler=function autoDestroy(){c.destroy(this)};this.body.on("end",this.endHandler)}this.errorHandler=e=>{if(this.abort){this.abort(e)}else{this.error=e}};this.body.on("error",this.errorHandler)}else if(c.isBuffer(o)){this.body=o.byteLength?o:null}else if(ArrayBuffer.isView(o)){this.body=o.buffer.byteLength?Buffer.from(o.buffer,o.byteOffset,o.byteLength):null}else if(o instanceof ArrayBuffer){this.body=o.byteLength?Buffer.from(o):null}else if(typeof o==="string"){this.body=o.length?Buffer.from(o):null}else if(c.isFormDataLike(o)||c.isIterable(o)||c.isBlobLike(o)){this.body=o}else{throw new r("body must be a string, a Buffer, a Readable stream, an iterable, or an async iterable")}this.completed=false;this.aborted=false;this.upgrade=C||null;this.path=i?c.buildURL(A,i):A;this.origin=e;this.idempotent=a==null?s==="HEAD"||s==="GET":a;this.blocking=E==null?false:E;this.reset=d==null?null:d;this.host=null;this.contentLength=null;this.contentType=null;this.headers="";this.expectContinue=m!=null?m:false;if(Array.isArray(n)){if(n.length%2!==0){throw new r("headers array must be even")}for(let e=0;e<n.length;e+=2){processHeader(this,n[e],n[e+1])}}else if(n&&typeof n==="object"){const e=Object.keys(n);for(let A=0;A<e.length;A++){const t=e[A];processHeader(this,t,n[t])}}else if(n!=null){throw new r("headers must be an object or an array")}if(c.isFormDataLike(this.body)){if(c.nodeMajor<16||c.nodeMajor===16&&c.nodeMinor<8){throw new r("Form-Data bodies are only supported in node v16.8 and newer.")}if(!Q){Q=t(8923).extractBody}const[e,A]=Q(o);if(this.contentType==null){this.contentType=A;this.headers+=`content-type: ${A}\r\n`}this.body=e.stream;this.contentLength=e.length}else if(c.isBlobLike(o)&&this.contentType==null&&o.type){this.contentType=o.type;this.headers+=`content-type: ${o.type}\r\n`}c.validateHandler(y,s,C);this.servername=c.getServerName(this.host);this[u]=y;if(h.create.hasSubscribers){h.create.publish({request:this})}}onBodySent(e){if(this[u].onBodySent){try{return this[u].onBodySent(e)}catch(e){this.abort(e)}}}onRequestSent(){if(h.bodySent.hasSubscribers){h.bodySent.publish({request:this})}if(this[u].onRequestSent){try{return this[u].onRequestSent()}catch(e){this.abort(e)}}}onConnect(e){o(!this.aborted);o(!this.completed);if(this.error){e(this.error)}else{this.abort=e;return this[u].onConnect(e)}}onHeaders(e,A,t,r){o(!this.aborted);o(!this.completed);if(h.headers.hasSubscribers){h.headers.publish({request:this,response:{statusCode:e,headers:A,statusText:r}})}try{return this[u].onHeaders(e,A,t,r)}catch(e){this.abort(e)}}onData(e){o(!this.aborted);o(!this.completed);try{return this[u].onData(e)}catch(e){this.abort(e);return false}}onUpgrade(e,A,t){o(!this.aborted);o(!this.completed);return this[u].onUpgrade(e,A,t)}onComplete(e){this.onFinally();o(!this.aborted);this.completed=true;if(h.trailers.hasSubscribers){h.trailers.publish({request:this,trailers:e})}try{return this[u].onComplete(e)}catch(e){this.onError(e)}}onError(e){this.onFinally();if(h.error.hasSubscribers){h.error.publish({request:this,error:e})}if(this.aborted){return}this.aborted=true;return this[u].onError(e)}onFinally(){if(this.errorHandler){this.body.off("error",this.errorHandler);this.errorHandler=null}if(this.endHandler){this.body.off("end",this.endHandler);this.endHandler=null}}addHeader(e,A){processHeader(this,e,A);return this}static[a](e,A,t){return new Request(e,A,t)}static[n](e,A,t){const s=A.headers;A={...A,headers:null};const o=new Request(e,A,t);o.headers={};if(Array.isArray(s)){if(s.length%2!==0){throw new r("headers array must be even")}for(let e=0;e<s.length;e+=2){processHeader(o,s[e],s[e+1],true)}}else if(s&&typeof s==="object"){const e=Object.keys(s);for(let A=0;A<e.length;A++){const t=e[A];processHeader(o,t,s[t],true)}}else if(s!=null){throw new r("headers must be an object or an array")}return o}static[i](e){const A=e.split("\r\n");const t={};for(const e of A){const[A,r]=e.split(": ");if(r==null||r.length===0)continue;if(t[A])t[A]+=`,${r}`;else t[A]=r}return t}}function processHeaderValue(e,A,t){if(A&&typeof A==="object"){throw new r(`invalid ${e} header`)}A=A!=null?`${A}`:"";if(E.exec(A)!==null){throw new r(`invalid ${e} header`)}return t?A:`${e}: ${A}\r\n`}function processHeader(e,A,t,o=false){if(t&&(typeof t==="object"&&!Array.isArray(t))){throw new r(`invalid ${A} header`)}else if(t===undefined){return}if(e.host===null&&A.length===4&&A.toLowerCase()==="host"){if(E.exec(t)!==null){throw new r(`invalid ${A} header`)}e.host=t}else if(e.contentLength===null&&A.length===14&&A.toLowerCase()==="content-length"){e.contentLength=parseInt(t,10);if(!Number.isFinite(e.contentLength)){throw new r("invalid content-length header")}}else if(e.contentType===null&&A.length===12&&A.toLowerCase()==="content-type"){e.contentType=t;if(o)e.headers[A]=processHeaderValue(A,t,o);else e.headers+=processHeaderValue(A,t)}else if(A.length===17&&A.toLowerCase()==="transfer-encoding"){throw new r("invalid transfer-encoding header")}else if(A.length===10&&A.toLowerCase()==="connection"){const A=typeof t==="string"?t.toLowerCase():null;if(A!=="close"&&A!=="keep-alive"){throw new r("invalid connection header")}else if(A==="close"){e.reset=true}}else if(A.length===10&&A.toLowerCase()==="keep-alive"){throw new r("invalid keep-alive header")}else if(A.length===7&&A.toLowerCase()==="upgrade"){throw new r("invalid upgrade header")}else if(A.length===6&&A.toLowerCase()==="expect"){throw new s("expect header not supported")}else if(g.exec(A)===null){throw new r("invalid header key")}else{if(Array.isArray(t)){for(let r=0;r<t.length;r++){if(o){if(e.headers[A])e.headers[A]+=`,${processHeaderValue(A,t[r],o)}`;else e.headers[A]=processHeaderValue(A,t[r],o)}else{e.headers+=processHeaderValue(A,t[r])}}}else{if(o)e.headers[A]=processHeaderValue(A,t,o);else e.headers+=processHeaderValue(A,t)}}}e.exports=Request},6443:e=>{e.exports={kClose:Symbol("close"),kDestroy:Symbol("destroy"),kDispatch:Symbol("dispatch"),kUrl:Symbol("url"),kWriting:Symbol("writing"),kResuming:Symbol("resuming"),kQueue:Symbol("queue"),kConnect:Symbol("connect"),kConnecting:Symbol("connecting"),kHeadersList:Symbol("headers list"),kKeepAliveDefaultTimeout:Symbol("default keep alive timeout"),kKeepAliveMaxTimeout:Symbol("max keep alive timeout"),kKeepAliveTimeoutThreshold:Symbol("keep alive timeout threshold"),kKeepAliveTimeoutValue:Symbol("keep alive timeout"),kKeepAlive:Symbol("keep alive"),kHeadersTimeout:Symbol("headers timeout"),kBodyTimeout:Symbol("body timeout"),kServerName:Symbol("server name"),kLocalAddress:Symbol("local address"),kHost:Symbol("host"),kNoRef:Symbol("no ref"),kBodyUsed:Symbol("used"),kRunning:Symbol("running"),kBlocking:Symbol("blocking"),kPending:Symbol("pending"),kSize:Symbol("size"),kBusy:Symbol("busy"),kQueued:Symbol("queued"),kFree:Symbol("free"),kConnected:Symbol("connected"),kClosed:Symbol("closed"),kNeedDrain:Symbol("need drain"),kReset:Symbol("reset"),kDestroyed:Symbol.for("nodejs.stream.destroyed"),kMaxHeadersSize:Symbol("max headers size"),kRunningIdx:Symbol("running index"),kPendingIdx:Symbol("pending index"),kError:Symbol("error"),kClients:Symbol("clients"),kClient:Symbol("client"),kParser:Symbol("parser"),kOnDestroyed:Symbol("destroy callbacks"),kPipelining:Symbol("pipelining"),kSocket:Symbol("socket"),kHostHeader:Symbol("host header"),kConnector:Symbol("connector"),kStrictContentLength:Symbol("strict content length"),kMaxRedirections:Symbol("maxRedirections"),kMaxRequests:Symbol("maxRequestsPerClient"),kProxy:Symbol("proxy agent options"),kCounter:Symbol("socket request counter"),kInterceptors:Symbol("dispatch interceptors"),kMaxResponseSize:Symbol("max response size"),kHTTP2Session:Symbol("http2Session"),kHTTP2SessionState:Symbol("http2Session state"),kHTTP2BuildRequest:Symbol("http2 build request"),kHTTP1BuildRequest:Symbol("http1 build request"),kHTTP2CopyHeaders:Symbol("http2 copy headers"),kHTTPConnVersion:Symbol("http connection version"),kRetryHandlerDefaultRetry:Symbol("retry agent default retry"),kConstruct:Symbol("constructable")}},3440:(e,A,t)=>{const r=t(2613);const{kDestroyed:s,kBodyUsed:o}=t(6443);const{IncomingMessage:n}=t(8611);const i=t(2203);const a=t(9278);const{InvalidArgumentError:c}=t(8707);const{Blob:g}=t(181);const E=t(9023);const{stringify:l}=t(3480);const{headerNameLowerCasedRecord:u}=t(735);const[h,Q]=process.versions.node.split(".").map((e=>Number(e)));function nop(){}function isStream(e){return e&&typeof e==="object"&&typeof e.pipe==="function"&&typeof e.on==="function"}function isBlobLike(e){return g&&e instanceof g||e&&typeof e==="object"&&(typeof e.stream==="function"||typeof e.arrayBuffer==="function")&&/^(Blob|File)$/.test(e[Symbol.toStringTag])}function buildURL(e,A){if(e.includes("?")||e.includes("#")){throw new Error('Query params cannot be passed when url already contains "?" or "#".')}const t=l(A);if(t){e+="?"+t}return e}function parseURL(e){if(typeof e==="string"){e=new URL(e);if(!/^https?:/.test(e.origin||e.protocol)){throw new c("Invalid URL protocol: the URL must start with `http:` or `https:`.")}return e}if(!e||typeof e!=="object"){throw new c("Invalid URL: The URL argument must be a non-null object.")}if(!/^https?:/.test(e.origin||e.protocol)){throw new c("Invalid URL protocol: the URL must start with `http:` or `https:`.")}if(!(e instanceof URL)){if(e.port!=null&&e.port!==""&&!Number.isFinite(parseInt(e.port))){throw new c("Invalid URL: port must be a valid integer or a string representation of an integer.")}if(e.path!=null&&typeof e.path!=="string"){throw new c("Invalid URL path: the path must be a string or null/undefined.")}if(e.pathname!=null&&typeof e.pathname!=="string"){throw new c("Invalid URL pathname: the pathname must be a string or null/undefined.")}if(e.hostname!=null&&typeof e.hostname!=="string"){throw new c("Invalid URL hostname: the hostname must be a string or null/undefined.")}if(e.origin!=null&&typeof e.origin!=="string"){throw new c("Invalid URL origin: the origin must be a string or null/undefined.")}const A=e.port!=null?e.port:e.protocol==="https:"?443:80;let t=e.origin!=null?e.origin:`${e.protocol}//${e.hostname}:${A}`;let r=e.path!=null?e.path:`${e.pathname||""}${e.search||""}`;if(t.endsWith("/")){t=t.substring(0,t.length-1)}if(r&&!r.startsWith("/")){r=`/${r}`}e=new URL(t+r)}return e}function parseOrigin(e){e=parseURL(e);if(e.pathname!=="/"||e.search||e.hash){throw new c("invalid url")}return e}function getHostname(e){if(e[0]==="["){const A=e.indexOf("]");r(A!==-1);return e.substring(1,A)}const A=e.indexOf(":");if(A===-1)return e;return e.substring(0,A)}function getServerName(e){if(!e){return null}r.strictEqual(typeof e,"string");const A=getHostname(e);if(a.isIP(A)){return""}return A}function deepClone(e){return JSON.parse(JSON.stringify(e))}function isAsyncIterable(e){return!!(e!=null&&typeof e[Symbol.asyncIterator]==="function")}function isIterable(e){return!!(e!=null&&(typeof e[Symbol.iterator]==="function"||typeof e[Symbol.asyncIterator]==="function"))}function bodyLength(e){if(e==null){return 0}else if(isStream(e)){const A=e._readableState;return A&&A.objectMode===false&&A.ended===true&&Number.isFinite(A.length)?A.length:null}else if(isBlobLike(e)){return e.size!=null?e.size:null}else if(isBuffer(e)){return e.byteLength}return null}function isDestroyed(e){return!e||!!(e.destroyed||e[s])}function isReadableAborted(e){const A=e&&e._readableState;return isDestroyed(e)&&A&&!A.endEmitted}function destroy(e,A){if(e==null||!isStream(e)||isDestroyed(e)){return}if(typeof e.destroy==="function"){if(Object.getPrototypeOf(e).constructor===n){e.socket=null}e.destroy(A)}else if(A){process.nextTick(((e,A)=>{e.emit("error",A)}),e,A)}if(e.destroyed!==true){e[s]=true}}const C=/timeout=(\d+)/;function parseKeepAliveTimeout(e){const A=e.toString().match(C);return A?parseInt(A[1],10)*1e3:null}function headerNameToString(e){return u[e]||e.toLowerCase()}function parseHeaders(e,A={}){if(!Array.isArray(e))return e;for(let t=0;t<e.length;t+=2){const r=e[t].toString().toLowerCase();let s=A[r];if(!s){if(Array.isArray(e[t+1])){A[r]=e[t+1].map((e=>e.toString("utf8")))}else{A[r]=e[t+1].toString("utf8")}}else{if(!Array.isArray(s)){s=[s];A[r]=s}s.push(e[t+1].toString("utf8"))}}if("content-length"in A&&"content-disposition"in A){A["content-disposition"]=Buffer.from(A["content-disposition"]).toString("latin1")}return A}function parseRawHeaders(e){const A=[];let t=false;let r=-1;for(let s=0;s<e.length;s+=2){const o=e[s+0].toString();const n=e[s+1].toString("utf8");if(o.length===14&&(o==="content-length"||o.toLowerCase()==="content-length")){A.push(o,n);t=true}else if(o.length===19&&(o==="content-disposition"||o.toLowerCase()==="content-disposition")){r=A.push(o,n)-1}else{A.push(o,n)}}if(t&&r!==-1){A[r]=Buffer.from(A[r]).toString("latin1")}return A}function isBuffer(e){return e instanceof Uint8Array||Buffer.isBuffer(e)}function validateHandler(e,A,t){if(!e||typeof e!=="object"){throw new c("handler must be an object")}if(typeof e.onConnect!=="function"){throw new c("invalid onConnect method")}if(typeof e.onError!=="function"){throw new c("invalid onError method")}if(typeof e.onBodySent!=="function"&&e.onBodySent!==undefined){throw new c("invalid onBodySent method")}if(t||A==="CONNECT"){if(typeof e.onUpgrade!=="function"){throw new c("invalid onUpgrade method")}}else{if(typeof e.onHeaders!=="function"){throw new c("invalid onHeaders method")}if(typeof e.onData!=="function"){throw new c("invalid onData method")}if(typeof e.onComplete!=="function"){throw new c("invalid onComplete method")}}}function isDisturbed(e){return!!(e&&(i.isDisturbed?i.isDisturbed(e)||e[o]:e[o]||e.readableDidRead||e._readableState&&e._readableState.dataEmitted||isReadableAborted(e)))}function isErrored(e){return!!(e&&(i.isErrored?i.isErrored(e):/state: 'errored'/.test(E.inspect(e))))}function isReadable(e){return!!(e&&(i.isReadable?i.isReadable(e):/state: 'readable'/.test(E.inspect(e))))}function getSocketInfo(e){return{localAddress:e.localAddress,localPort:e.localPort,remoteAddress:e.remoteAddress,remotePort:e.remotePort,remoteFamily:e.remoteFamily,timeout:e.timeout,bytesWritten:e.bytesWritten,bytesRead:e.bytesRead}}async function*convertIterableToBuffer(e){for await(const A of e){yield Buffer.isBuffer(A)?A:Buffer.from(A)}}let B;function ReadableStreamFrom(e){if(!B){B=t(3774).ReadableStream}if(B.from){return B.from(convertIterableToBuffer(e))}let A;return new B({async start(){A=e[Symbol.asyncIterator]()},async pull(e){const{done:t,value:r}=await A.next();if(t){queueMicrotask((()=>{e.close()}))}else{const A=Buffer.isBuffer(r)?r:Buffer.from(r);e.enqueue(new Uint8Array(A))}return e.desiredSize>0},async cancel(e){await A.return()}},0)}function isFormDataLike(e){return e&&typeof e==="object"&&typeof e.append==="function"&&typeof e.delete==="function"&&typeof e.get==="function"&&typeof e.getAll==="function"&&typeof e.has==="function"&&typeof e.set==="function"&&e[Symbol.toStringTag]==="FormData"}function throwIfAborted(e){if(!e){return}if(typeof e.throwIfAborted==="function"){e.throwIfAborted()}else{if(e.aborted){const e=new Error("The operation was aborted");e.name="AbortError";throw e}}}function addAbortListener(e,A){if("addEventListener"in e){e.addEventListener("abort",A,{once:true});return()=>e.removeEventListener("abort",A)}e.addListener("abort",A);return()=>e.removeListener("abort",A)}const I=!!String.prototype.toWellFormed;function toUSVString(e){if(I){return`${e}`.toWellFormed()}else if(E.toUSVString){return E.toUSVString(e)}return`${e}`}function parseRangeHeader(e){if(e==null||e==="")return{start:0,end:null,size:null};const A=e?e.match(/^bytes (\d+)-(\d+)\/(\d+)?$/):null;return A?{start:parseInt(A[1]),end:A[2]?parseInt(A[2]):null,size:A[3]?parseInt(A[3]):null}:null}const d=Object.create(null);d.enumerable=true;e.exports={kEnumerableProperty:d,nop:nop,isDisturbed:isDisturbed,isErrored:isErrored,isReadable:isReadable,toUSVString:toUSVString,isReadableAborted:isReadableAborted,isBlobLike:isBlobLike,parseOrigin:parseOrigin,parseURL:parseURL,getServerName:getServerName,isStream:isStream,isIterable:isIterable,isAsyncIterable:isAsyncIterable,isDestroyed:isDestroyed,headerNameToString:headerNameToString,parseRawHeaders:parseRawHeaders,parseHeaders:parseHeaders,parseKeepAliveTimeout:parseKeepAliveTimeout,destroy:destroy,bodyLength:bodyLength,deepClone:deepClone,ReadableStreamFrom:ReadableStreamFrom,isBuffer:isBuffer,validateHandler:validateHandler,getSocketInfo:getSocketInfo,isFormDataLike:isFormDataLike,buildURL:buildURL,throwIfAborted:throwIfAborted,addAbortListener:addAbortListener,parseRangeHeader:parseRangeHeader,nodeMajor:h,nodeMinor:Q,nodeHasAutoSelectFamily:h>18||h===18&&Q>=13,safeHTTPMethods:["GET","HEAD","OPTIONS","TRACE"]}},1:(e,A,t)=>{const r=t(992);const{ClientDestroyedError:s,ClientClosedError:o,InvalidArgumentError:n}=t(8707);const{kDestroy:i,kClose:a,kDispatch:c,kInterceptors:g}=t(6443);const E=Symbol("destroyed");const l=Symbol("closed");const u=Symbol("onDestroyed");const h=Symbol("onClosed");const Q=Symbol("Intercepted Dispatch");class DispatcherBase extends r{constructor(){super();this[E]=false;this[u]=null;this[l]=false;this[h]=[]}get destroyed(){return this[E]}get closed(){return this[l]}get interceptors(){return this[g]}set interceptors(e){if(e){for(let A=e.length-1;A>=0;A--){const e=this[g][A];if(typeof e!=="function"){throw new n("interceptor must be an function")}}}this[g]=e}close(e){if(e===undefined){return new Promise(((e,A)=>{this.close(((t,r)=>t?A(t):e(r)))}))}if(typeof e!=="function"){throw new n("invalid callback")}if(this[E]){queueMicrotask((()=>e(new s,null)));return}if(this[l]){if(this[h]){this[h].push(e)}else{queueMicrotask((()=>e(null,null)))}return}this[l]=true;this[h].push(e);const onClosed=()=>{const e=this[h];this[h]=null;for(let A=0;A<e.length;A++){e[A](null,null)}};this[a]().then((()=>this.destroy())).then((()=>{queueMicrotask(onClosed)}))}destroy(e,A){if(typeof e==="function"){A=e;e=null}if(A===undefined){return new Promise(((A,t)=>{this.destroy(e,((e,r)=>e?t(e):A(r)))}))}if(typeof A!=="function"){throw new n("invalid callback")}if(this[E]){if(this[u]){this[u].push(A)}else{queueMicrotask((()=>A(null,null)))}return}if(!e){e=new s}this[E]=true;this[u]=this[u]||[];this[u].push(A);const onDestroyed=()=>{const e=this[u];this[u]=null;for(let A=0;A<e.length;A++){e[A](null,null)}};this[i](e).then((()=>{queueMicrotask(onDestroyed)}))}[Q](e,A){if(!this[g]||this[g].length===0){this[Q]=this[c];return this[c](e,A)}let t=this[c].bind(this);for(let e=this[g].length-1;e>=0;e--){t=this[g][e](t)}this[Q]=t;return t(e,A)}dispatch(e,A){if(!A||typeof A!=="object"){throw new n("handler must be an object")}try{if(!e||typeof e!=="object"){throw new n("opts must be an object.")}if(this[E]||this[u]){throw new s}if(this[l]){throw new o}return this[Q](e,A)}catch(e){if(typeof A.onError!=="function"){throw new n("invalid onError method")}A.onError(e);return false}}}e.exports=DispatcherBase},992:(e,A,t)=>{const r=t(4434);class Dispatcher extends r{dispatch(){throw new Error("not implemented")}close(){throw new Error("not implemented")}destroy(){throw new Error("not implemented")}}e.exports=Dispatcher},8923:(e,A,t)=>{const r=t(9581);const s=t(3440);const{ReadableStreamFrom:o,isBlobLike:n,isReadableStreamLike:i,readableStreamClose:a,createDeferredPromise:c,fullyReadBody:g}=t(5523);const{FormData:E}=t(3073);const{kState:l}=t(9710);const{webidl:u}=t(4222);const{DOMException:h,structuredClone:Q}=t(7326);const{Blob:C,File:B}=t(181);const{kBodyUsed:I}=t(6443);const d=t(2613);const{isErrored:p}=t(3440);const{isUint8Array:m,isArrayBuffer:y}=t(8253);const{File:w}=t(3041);const{parseMIMEType:R,serializeAMimeType:b}=t(4322);let k;try{const e=t(7598);k=A=>e.randomInt(0,A)}catch{k=e=>Math.floor(Math.random(e))}let D=globalThis.ReadableStream;const S=B??w;const F=new TextEncoder;const T=new TextDecoder;function extractBody(e,A=false){if(!D){D=t(3774).ReadableStream}let r=null;if(e instanceof D){r=e}else if(n(e)){r=e.stream()}else{r=new D({async pull(e){e.enqueue(typeof g==="string"?F.encode(g):g);queueMicrotask((()=>a(e)))},start(){},type:undefined})}d(i(r));let c=null;let g=null;let E=null;let l=null;if(typeof e==="string"){g=e;l="text/plain;charset=UTF-8"}else if(e instanceof URLSearchParams){g=e.toString();l="application/x-www-form-urlencoded;charset=UTF-8"}else if(y(e)){g=new Uint8Array(e.slice())}else if(ArrayBuffer.isView(e)){g=new Uint8Array(e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength))}else if(s.isFormDataLike(e)){const A=`----formdata-undici-0${`${k(1e11)}`.padStart(11,"0")}`;const t=`--${A}\r\nContent-Disposition: form-data` -/*! formdata-polyfill. MIT License. Jimmy Wärting <https://jimmy.warting.se/opensource> */;const escape=e=>e.replace(/\n/g,"%0A").replace(/\r/g,"%0D").replace(/"/g,"%22");const normalizeLinefeeds=e=>e.replace(/\r?\n|\r/g,"\r\n");const r=[];const s=new Uint8Array([13,10]);E=0;let o=false;for(const[A,n]of e){if(typeof n==="string"){const e=F.encode(t+`; name="${escape(normalizeLinefeeds(A))}"`+`\r\n\r\n${normalizeLinefeeds(n)}\r\n`);r.push(e);E+=e.byteLength}else{const e=F.encode(`${t}; name="${escape(normalizeLinefeeds(A))}"`+(n.name?`; filename="${escape(n.name)}"`:"")+"\r\n"+`Content-Type: ${n.type||"application/octet-stream"}\r\n\r\n`);r.push(e,n,s);if(typeof n.size==="number"){E+=e.byteLength+n.size+s.byteLength}else{o=true}}}const n=F.encode(`--${A}--`);r.push(n);E+=n.byteLength;if(o){E=null}g=e;c=async function*(){for(const e of r){if(e.stream){yield*e.stream()}else{yield e}}};l="multipart/form-data; boundary="+A}else if(n(e)){g=e;E=e.size;if(e.type){l=e.type}}else if(typeof e[Symbol.asyncIterator]==="function"){if(A){throw new TypeError("keepalive")}if(s.isDisturbed(e)||e.locked){throw new TypeError("Response body object should not be disturbed or locked")}r=e instanceof D?e:o(e)}if(typeof g==="string"||s.isBuffer(g)){E=Buffer.byteLength(g)}if(c!=null){let A;r=new D({async start(){A=c(e)[Symbol.asyncIterator]()},async pull(e){const{value:t,done:s}=await A.next();if(s){queueMicrotask((()=>{e.close()}))}else{if(!p(r)){e.enqueue(new Uint8Array(t))}}return e.desiredSize>0},async cancel(e){await A.return()},type:undefined})}const u={stream:r,source:g,length:E};return[u,l]}function safelyExtractBody(e,A=false){if(!D){D=t(3774).ReadableStream}if(e instanceof D){d(!s.isDisturbed(e),"The body has already been consumed.");d(!e.locked,"The stream is locked.")}return extractBody(e,A)}function cloneBody(e){const[A,t]=e.stream.tee();const r=Q(t,{transfer:[t]});const[,s]=r.tee();e.stream=A;return{stream:s,length:e.length,source:e.source}}async function*consumeBody(e){if(e){if(m(e)){yield e}else{const A=e.stream;if(s.isDisturbed(A)){throw new TypeError("The body has already been consumed.")}if(A.locked){throw new TypeError("The stream is locked.")}A[I]=true;yield*A}}}function throwIfAborted(e){if(e.aborted){throw new h("The operation was aborted.","AbortError")}}function bodyMixinMethods(e){const A={blob(){return specConsumeBody(this,(e=>{let A=bodyMimeType(this);if(A==="failure"){A=""}else if(A){A=b(A)}return new C([e],{type:A})}),e)},arrayBuffer(){return specConsumeBody(this,(e=>new Uint8Array(e).buffer),e)},text(){return specConsumeBody(this,utf8DecodeBytes,e)},json(){return specConsumeBody(this,parseJSONFromBytes,e)},async formData(){u.brandCheck(this,e);throwIfAborted(this[l]);const A=this.headers.get("Content-Type");if(/multipart\/form-data/.test(A)){const e={};for(const[A,t]of this.headers)e[A.toLowerCase()]=t;const A=new E;let t;try{t=new r({headers:e,preservePath:true})}catch(e){throw new h(`${e}`,"AbortError")}t.on("field",((e,t)=>{A.append(e,t)}));t.on("file",((e,t,r,s,o)=>{const n=[];if(s==="base64"||s.toLowerCase()==="base64"){let s="";t.on("data",(e=>{s+=e.toString().replace(/[\r\n]/gm,"");const A=s.length-s.length%4;n.push(Buffer.from(s.slice(0,A),"base64"));s=s.slice(A)}));t.on("end",(()=>{n.push(Buffer.from(s,"base64"));A.append(e,new S(n,r,{type:o}))}))}else{t.on("data",(e=>{n.push(e)}));t.on("end",(()=>{A.append(e,new S(n,r,{type:o}))}))}}));const s=new Promise(((e,A)=>{t.on("finish",e);t.on("error",(e=>A(new TypeError(e))))}));if(this.body!==null)for await(const e of consumeBody(this[l].body))t.write(e);t.end();await s;return A}else if(/application\/x-www-form-urlencoded/.test(A)){let e;try{let A="";const t=new TextDecoder("utf-8",{ignoreBOM:true});for await(const e of consumeBody(this[l].body)){if(!m(e)){throw new TypeError("Expected Uint8Array chunk")}A+=t.decode(e,{stream:true})}A+=t.decode();e=new URLSearchParams(A)}catch(e){throw Object.assign(new TypeError,{cause:e})}const A=new E;for(const[t,r]of e){A.append(t,r)}return A}else{await Promise.resolve();throwIfAborted(this[l]);throw u.errors.exception({header:`${e.name}.formData`,message:"Could not parse content as FormData."})}}};return A}function mixinBody(e){Object.assign(e.prototype,bodyMixinMethods(e))}async function specConsumeBody(e,A,t){u.brandCheck(e,t);throwIfAborted(e[l]);if(bodyUnusable(e[l].body)){throw new TypeError("Body is unusable")}const r=c();const errorSteps=e=>r.reject(e);const successSteps=e=>{try{r.resolve(A(e))}catch(e){errorSteps(e)}};if(e[l].body==null){successSteps(new Uint8Array);return r.promise}await g(e[l].body,successSteps,errorSteps);return r.promise}function bodyUnusable(e){return e!=null&&(e.stream.locked||s.isDisturbed(e.stream))}function utf8DecodeBytes(e){if(e.length===0){return""}if(e[0]===239&&e[1]===187&&e[2]===191){e=e.subarray(3)}const A=T.decode(e);return A}function parseJSONFromBytes(e){return JSON.parse(utf8DecodeBytes(e))}function bodyMimeType(e){const{headersList:A}=e[l];const t=A.get("content-type");if(t===null){return"failure"}return R(t)}e.exports={extractBody:extractBody,safelyExtractBody:safelyExtractBody,cloneBody:cloneBody,mixinBody:mixinBody}},7326:(e,A,t)=>{const{MessageChannel:r,receiveMessageOnPort:s}=t(8167);const o=["GET","HEAD","POST"];const n=new Set(o);const i=[101,204,205,304];const a=[301,302,303,307,308];const c=new Set(a);const g=["1","7","9","11","13","15","17","19","20","21","22","23","25","37","42","43","53","69","77","79","87","95","101","102","103","104","109","110","111","113","115","117","119","123","135","137","139","143","161","179","389","427","465","512","513","514","515","526","530","531","532","540","548","554","556","563","587","601","636","989","990","993","995","1719","1720","1723","2049","3659","4045","5060","5061","6000","6566","6665","6666","6667","6668","6669","6697","10080"];const E=new Set(g);const l=["","no-referrer","no-referrer-when-downgrade","same-origin","origin","strict-origin","origin-when-cross-origin","strict-origin-when-cross-origin","unsafe-url"];const u=new Set(l);const h=["follow","manual","error"];const Q=["GET","HEAD","OPTIONS","TRACE"];const C=new Set(Q);const B=["navigate","same-origin","no-cors","cors"];const I=["omit","same-origin","include"];const d=["default","no-store","reload","no-cache","force-cache","only-if-cached"];const p=["content-encoding","content-language","content-location","content-type","content-length"];const m=["half"];const y=["CONNECT","TRACE","TRACK"];const w=new Set(y);const R=["audio","audioworklet","font","image","manifest","paintworklet","script","style","track","video","xslt",""];const b=new Set(R);const k=globalThis.DOMException??(()=>{try{atob("~")}catch(e){return Object.getPrototypeOf(e).constructor}})();let D;const S=globalThis.structuredClone??function structuredClone(e,A=undefined){if(arguments.length===0){throw new TypeError("missing argument")}if(!D){D=new r}D.port1.unref();D.port2.unref();D.port1.postMessage(e,A?.transfer);return s(D.port2).message};e.exports={DOMException:k,structuredClone:S,subresource:R,forbiddenMethods:y,requestBodyHeader:p,referrerPolicy:l,requestRedirect:h,requestMode:B,requestCredentials:I,requestCache:d,redirectStatus:a,corsSafeListedMethods:o,nullBodyStatus:i,safeMethods:Q,badPorts:g,requestDuplex:m,subresourceSet:b,badPortsSet:E,redirectStatusSet:c,corsSafeListedMethodsSet:n,safeMethodsSet:C,forbiddenMethodsSet:w,referrerPolicySet:u}},4322:(e,A,t)=>{const r=t(2613);const{atob:s}=t(181);const{isomorphicDecode:o}=t(5523);const n=new TextEncoder;const i=/^[!#$%&'*+-.^_|~A-Za-z0-9]+$/;const a=/(\u000A|\u000D|\u0009|\u0020)/;const c=/[\u0009|\u0020-\u007E|\u0080-\u00FF]/;function dataURLProcessor(e){r(e.protocol==="data:");let A=URLSerializer(e,true);A=A.slice(5);const t={position:0};let s=collectASequenceOfCodePointsFast(",",A,t);const n=s.length;s=removeASCIIWhitespace(s,true,true);if(t.position>=A.length){return"failure"}t.position++;const i=A.slice(n+1);let a=stringPercentDecode(i);if(/;(\u0020){0,}base64$/i.test(s)){const e=o(a);a=forgivingBase64(e);if(a==="failure"){return"failure"}s=s.slice(0,-6);s=s.replace(/(\u0020)+$/,"");s=s.slice(0,-1)}if(s.startsWith(";")){s="text/plain"+s}let c=parseMIMEType(s);if(c==="failure"){c=parseMIMEType("text/plain;charset=US-ASCII")}return{mimeType:c,body:a}}function URLSerializer(e,A=false){if(!A){return e.href}const t=e.href;const r=e.hash.length;return r===0?t:t.substring(0,t.length-r)}function collectASequenceOfCodePoints(e,A,t){let r="";while(t.position<A.length&&e(A[t.position])){r+=A[t.position];t.position++}return r}function collectASequenceOfCodePointsFast(e,A,t){const r=A.indexOf(e,t.position);const s=t.position;if(r===-1){t.position=A.length;return A.slice(s)}t.position=r;return A.slice(s,t.position)}function stringPercentDecode(e){const A=n.encode(e);return percentDecode(A)}function percentDecode(e){const A=[];for(let t=0;t<e.length;t++){const r=e[t];if(r!==37){A.push(r)}else if(r===37&&!/^[0-9A-Fa-f]{2}$/i.test(String.fromCharCode(e[t+1],e[t+2]))){A.push(37)}else{const r=String.fromCharCode(e[t+1],e[t+2]);const s=Number.parseInt(r,16);A.push(s);t+=2}}return Uint8Array.from(A)}function parseMIMEType(e){e=removeHTTPWhitespace(e,true,true);const A={position:0};const t=collectASequenceOfCodePointsFast("/",e,A);if(t.length===0||!i.test(t)){return"failure"}if(A.position>e.length){return"failure"}A.position++;let r=collectASequenceOfCodePointsFast(";",e,A);r=removeHTTPWhitespace(r,false,true);if(r.length===0||!i.test(r)){return"failure"}const s=t.toLowerCase();const o=r.toLowerCase();const n={type:s,subtype:o,parameters:new Map,essence:`${s}/${o}`};while(A.position<e.length){A.position++;collectASequenceOfCodePoints((e=>a.test(e)),e,A);let t=collectASequenceOfCodePoints((e=>e!==";"&&e!=="="),e,A);t=t.toLowerCase();if(A.position<e.length){if(e[A.position]===";"){continue}A.position++}if(A.position>e.length){break}let r=null;if(e[A.position]==='"'){r=collectAnHTTPQuotedString(e,A,true);collectASequenceOfCodePointsFast(";",e,A)}else{r=collectASequenceOfCodePointsFast(";",e,A);r=removeHTTPWhitespace(r,false,true);if(r.length===0){continue}}if(t.length!==0&&i.test(t)&&(r.length===0||c.test(r))&&!n.parameters.has(t)){n.parameters.set(t,r)}}return n}function forgivingBase64(e){e=e.replace(/[\u0009\u000A\u000C\u000D\u0020]/g,"");if(e.length%4===0){e=e.replace(/=?=$/,"")}if(e.length%4===1){return"failure"}if(/[^+/0-9A-Za-z]/.test(e)){return"failure"}const A=s(e);const t=new Uint8Array(A.length);for(let e=0;e<A.length;e++){t[e]=A.charCodeAt(e)}return t}function collectAnHTTPQuotedString(e,A,t){const s=A.position;let o="";r(e[A.position]==='"');A.position++;while(true){o+=collectASequenceOfCodePoints((e=>e!=='"'&&e!=="\\"),e,A);if(A.position>=e.length){break}const t=e[A.position];A.position++;if(t==="\\"){if(A.position>=e.length){o+="\\";break}o+=e[A.position];A.position++}else{r(t==='"');break}}if(t){return o}return e.slice(s,A.position)}function serializeAMimeType(e){r(e!=="failure");const{parameters:A,essence:t}=e;let s=t;for(let[e,t]of A.entries()){s+=";";s+=e;s+="=";if(!i.test(t)){t=t.replace(/(\\|")/g,"\\$1");t='"'+t;t+='"'}s+=t}return s}function isHTTPWhiteSpace(e){return e==="\r"||e==="\n"||e==="\t"||e===" "}function removeHTTPWhitespace(e,A=true,t=true){let r=0;let s=e.length-1;if(A){for(;r<e.length&&isHTTPWhiteSpace(e[r]);r++);}if(t){for(;s>0&&isHTTPWhiteSpace(e[s]);s--);}return e.slice(r,s+1)}function isASCIIWhitespace(e){return e==="\r"||e==="\n"||e==="\t"||e==="\f"||e===" "}function removeASCIIWhitespace(e,A=true,t=true){let r=0;let s=e.length-1;if(A){for(;r<e.length&&isASCIIWhitespace(e[r]);r++);}if(t){for(;s>0&&isASCIIWhitespace(e[s]);s--);}return e.slice(r,s+1)}e.exports={dataURLProcessor:dataURLProcessor,URLSerializer:URLSerializer,collectASequenceOfCodePoints:collectASequenceOfCodePoints,collectASequenceOfCodePointsFast:collectASequenceOfCodePointsFast,stringPercentDecode:stringPercentDecode,parseMIMEType:parseMIMEType,collectAnHTTPQuotedString:collectAnHTTPQuotedString,serializeAMimeType:serializeAMimeType}},3041:(e,A,t)=>{const{Blob:r,File:s}=t(181);const{types:o}=t(9023);const{kState:n}=t(9710);const{isBlobLike:i}=t(5523);const{webidl:a}=t(4222);const{parseMIMEType:c,serializeAMimeType:g}=t(4322);const{kEnumerableProperty:E}=t(3440);const l=new TextEncoder;class File extends r{constructor(e,A,t={}){a.argumentLengthCheck(arguments,2,{header:"File constructor"});e=a.converters["sequence<BlobPart>"](e);A=a.converters.USVString(A);t=a.converters.FilePropertyBag(t);const r=A;let s=t.type;let o;e:{if(s){s=c(s);if(s==="failure"){s="";break e}s=g(s).toLowerCase()}o=t.lastModified}super(processBlobParts(e,t),{type:s});this[n]={name:r,lastModified:o,type:s}}get name(){a.brandCheck(this,File);return this[n].name}get lastModified(){a.brandCheck(this,File);return this[n].lastModified}get type(){a.brandCheck(this,File);return this[n].type}}class FileLike{constructor(e,A,t={}){const r=A;const s=t.type;const o=t.lastModified??Date.now();this[n]={blobLike:e,name:r,type:s,lastModified:o}}stream(...e){a.brandCheck(this,FileLike);return this[n].blobLike.stream(...e)}arrayBuffer(...e){a.brandCheck(this,FileLike);return this[n].blobLike.arrayBuffer(...e)}slice(...e){a.brandCheck(this,FileLike);return this[n].blobLike.slice(...e)}text(...e){a.brandCheck(this,FileLike);return this[n].blobLike.text(...e)}get size(){a.brandCheck(this,FileLike);return this[n].blobLike.size}get type(){a.brandCheck(this,FileLike);return this[n].blobLike.type}get name(){a.brandCheck(this,FileLike);return this[n].name}get lastModified(){a.brandCheck(this,FileLike);return this[n].lastModified}get[Symbol.toStringTag](){return"File"}}Object.defineProperties(File.prototype,{[Symbol.toStringTag]:{value:"File",configurable:true},name:E,lastModified:E});a.converters.Blob=a.interfaceConverter(r);a.converters.BlobPart=function(e,A){if(a.util.Type(e)==="Object"){if(i(e)){return a.converters.Blob(e,{strict:false})}if(ArrayBuffer.isView(e)||o.isAnyArrayBuffer(e)){return a.converters.BufferSource(e,A)}}return a.converters.USVString(e,A)};a.converters["sequence<BlobPart>"]=a.sequenceConverter(a.converters.BlobPart);a.converters.FilePropertyBag=a.dictionaryConverter([{key:"lastModified",converter:a.converters["long long"],get defaultValue(){return Date.now()}},{key:"type",converter:a.converters.DOMString,defaultValue:""},{key:"endings",converter:e=>{e=a.converters.DOMString(e);e=e.toLowerCase();if(e!=="native"){e="transparent"}return e},defaultValue:"transparent"}]);function processBlobParts(e,A){const t=[];for(const r of e){if(typeof r==="string"){let e=r;if(A.endings==="native"){e=convertLineEndingsNative(e)}t.push(l.encode(e))}else if(o.isAnyArrayBuffer(r)||o.isTypedArray(r)){if(!r.buffer){t.push(new Uint8Array(r))}else{t.push(new Uint8Array(r.buffer,r.byteOffset,r.byteLength))}}else if(i(r)){t.push(r)}}return t}function convertLineEndingsNative(e){let A="\n";if(process.platform==="win32"){A="\r\n"}return e.replace(/\r?\n/g,A)}function isFileLike(e){return s&&e instanceof s||e instanceof File||e&&(typeof e.stream==="function"||typeof e.arrayBuffer==="function")&&e[Symbol.toStringTag]==="File"}e.exports={File:File,FileLike:FileLike,isFileLike:isFileLike}},3073:(e,A,t)=>{const{isBlobLike:r,toUSVString:s,makeIterator:o}=t(5523);const{kState:n}=t(9710);const{File:i,FileLike:a,isFileLike:c}=t(3041);const{webidl:g}=t(4222);const{Blob:E,File:l}=t(181);const u=l??i;class FormData{constructor(e){if(e!==undefined){throw g.errors.conversionFailed({prefix:"FormData constructor",argument:"Argument 1",types:["undefined"]})}this[n]=[]}append(e,A,t=undefined){g.brandCheck(this,FormData);g.argumentLengthCheck(arguments,2,{header:"FormData.append"});if(arguments.length===3&&!r(A)){throw new TypeError("Failed to execute 'append' on 'FormData': parameter 2 is not of type 'Blob'")}e=g.converters.USVString(e);A=r(A)?g.converters.Blob(A,{strict:false}):g.converters.USVString(A);t=arguments.length===3?g.converters.USVString(t):undefined;const s=makeEntry(e,A,t);this[n].push(s)}delete(e){g.brandCheck(this,FormData);g.argumentLengthCheck(arguments,1,{header:"FormData.delete"});e=g.converters.USVString(e);this[n]=this[n].filter((A=>A.name!==e))}get(e){g.brandCheck(this,FormData);g.argumentLengthCheck(arguments,1,{header:"FormData.get"});e=g.converters.USVString(e);const A=this[n].findIndex((A=>A.name===e));if(A===-1){return null}return this[n][A].value}getAll(e){g.brandCheck(this,FormData);g.argumentLengthCheck(arguments,1,{header:"FormData.getAll"});e=g.converters.USVString(e);return this[n].filter((A=>A.name===e)).map((e=>e.value))}has(e){g.brandCheck(this,FormData);g.argumentLengthCheck(arguments,1,{header:"FormData.has"});e=g.converters.USVString(e);return this[n].findIndex((A=>A.name===e))!==-1}set(e,A,t=undefined){g.brandCheck(this,FormData);g.argumentLengthCheck(arguments,2,{header:"FormData.set"});if(arguments.length===3&&!r(A)){throw new TypeError("Failed to execute 'set' on 'FormData': parameter 2 is not of type 'Blob'")}e=g.converters.USVString(e);A=r(A)?g.converters.Blob(A,{strict:false}):g.converters.USVString(A);t=arguments.length===3?s(t):undefined;const o=makeEntry(e,A,t);const i=this[n].findIndex((A=>A.name===e));if(i!==-1){this[n]=[...this[n].slice(0,i),o,...this[n].slice(i+1).filter((A=>A.name!==e))]}else{this[n].push(o)}}entries(){g.brandCheck(this,FormData);return o((()=>this[n].map((e=>[e.name,e.value]))),"FormData","key+value")}keys(){g.brandCheck(this,FormData);return o((()=>this[n].map((e=>[e.name,e.value]))),"FormData","key")}values(){g.brandCheck(this,FormData);return o((()=>this[n].map((e=>[e.name,e.value]))),"FormData","value")}forEach(e,A=globalThis){g.brandCheck(this,FormData);g.argumentLengthCheck(arguments,1,{header:"FormData.forEach"});if(typeof e!=="function"){throw new TypeError("Failed to execute 'forEach' on 'FormData': parameter 1 is not of type 'Function'.")}for(const[t,r]of this){e.apply(A,[r,t,this])}}}FormData.prototype[Symbol.iterator]=FormData.prototype.entries;Object.defineProperties(FormData.prototype,{[Symbol.toStringTag]:{value:"FormData",configurable:true}});function makeEntry(e,A,t){e=Buffer.from(e).toString("utf8");if(typeof A==="string"){A=Buffer.from(A).toString("utf8")}else{if(!c(A)){A=A instanceof E?new u([A],"blob",{type:A.type}):new a(A,"blob",{type:A.type})}if(t!==undefined){const e={type:A.type,lastModified:A.lastModified};A=l&&A instanceof l||A instanceof i?new u([A],t,e):new a(A,t,e)}}return{name:e,value:A}}e.exports={FormData:FormData}},5628:e=>{const A=Symbol.for("undici.globalOrigin.1");function getGlobalOrigin(){return globalThis[A]}function setGlobalOrigin(e){if(e===undefined){Object.defineProperty(globalThis,A,{value:undefined,writable:true,enumerable:false,configurable:false});return}const t=new URL(e);if(t.protocol!=="http:"&&t.protocol!=="https:"){throw new TypeError(`Only http & https urls are allowed, received ${t.protocol}`)}Object.defineProperty(globalThis,A,{value:t,writable:true,enumerable:false,configurable:false})}e.exports={getGlobalOrigin:getGlobalOrigin,setGlobalOrigin:setGlobalOrigin}},6349:(e,A,t)=>{const{kHeadersList:r,kConstruct:s}=t(6443);const{kGuard:o}=t(9710);const{kEnumerableProperty:n}=t(3440);const{makeIterator:i,isValidHeaderName:a,isValidHeaderValue:c}=t(5523);const g=t(9023);const{webidl:E}=t(4222);const l=t(2613);const u=Symbol("headers map");const h=Symbol("headers map sorted");function isHTTPWhiteSpaceCharCode(e){return e===10||e===13||e===9||e===32}function headerValueNormalize(e){let A=0;let t=e.length;while(t>A&&isHTTPWhiteSpaceCharCode(e.charCodeAt(t-1)))--t;while(t>A&&isHTTPWhiteSpaceCharCode(e.charCodeAt(A)))++A;return A===0&&t===e.length?e:e.substring(A,t)}function fill(e,A){if(Array.isArray(A)){for(let t=0;t<A.length;++t){const r=A[t];if(r.length!==2){throw E.errors.exception({header:"Headers constructor",message:`expected name/value pair to be length 2, found ${r.length}.`})}appendHeader(e,r[0],r[1])}}else if(typeof A==="object"&&A!==null){const t=Object.keys(A);for(let r=0;r<t.length;++r){appendHeader(e,t[r],A[t[r]])}}else{throw E.errors.conversionFailed({prefix:"Headers constructor",argument:"Argument 1",types:["sequence<sequence<ByteString>>","record<ByteString, ByteString>"]})}}function appendHeader(e,A,t){t=headerValueNormalize(t);if(!a(A)){throw E.errors.invalidArgument({prefix:"Headers.append",value:A,type:"header name"})}else if(!c(t)){throw E.errors.invalidArgument({prefix:"Headers.append",value:t,type:"header value"})}if(e[o]==="immutable"){throw new TypeError("immutable")}else if(e[o]==="request-no-cors"){}return e[r].append(A,t)}class HeadersList{cookies=null;constructor(e){if(e instanceof HeadersList){this[u]=new Map(e[u]);this[h]=e[h];this.cookies=e.cookies===null?null:[...e.cookies]}else{this[u]=new Map(e);this[h]=null}}contains(e){e=e.toLowerCase();return this[u].has(e)}clear(){this[u].clear();this[h]=null;this.cookies=null}append(e,A){this[h]=null;const t=e.toLowerCase();const r=this[u].get(t);if(r){const e=t==="cookie"?"; ":", ";this[u].set(t,{name:r.name,value:`${r.value}${e}${A}`})}else{this[u].set(t,{name:e,value:A})}if(t==="set-cookie"){this.cookies??=[];this.cookies.push(A)}}set(e,A){this[h]=null;const t=e.toLowerCase();if(t==="set-cookie"){this.cookies=[A]}this[u].set(t,{name:e,value:A})}delete(e){this[h]=null;e=e.toLowerCase();if(e==="set-cookie"){this.cookies=null}this[u].delete(e)}get(e){const A=this[u].get(e.toLowerCase());return A===undefined?null:A.value}*[Symbol.iterator](){for(const[e,{value:A}]of this[u]){yield[e,A]}}get entries(){const e={};if(this[u].size){for(const{name:A,value:t}of this[u].values()){e[A]=t}}return e}}class Headers{constructor(e=undefined){if(e===s){return}this[r]=new HeadersList;this[o]="none";if(e!==undefined){e=E.converters.HeadersInit(e);fill(this,e)}}append(e,A){E.brandCheck(this,Headers);E.argumentLengthCheck(arguments,2,{header:"Headers.append"});e=E.converters.ByteString(e);A=E.converters.ByteString(A);return appendHeader(this,e,A)}delete(e){E.brandCheck(this,Headers);E.argumentLengthCheck(arguments,1,{header:"Headers.delete"});e=E.converters.ByteString(e);if(!a(e)){throw E.errors.invalidArgument({prefix:"Headers.delete",value:e,type:"header name"})}if(this[o]==="immutable"){throw new TypeError("immutable")}else if(this[o]==="request-no-cors"){}if(!this[r].contains(e)){return}this[r].delete(e)}get(e){E.brandCheck(this,Headers);E.argumentLengthCheck(arguments,1,{header:"Headers.get"});e=E.converters.ByteString(e);if(!a(e)){throw E.errors.invalidArgument({prefix:"Headers.get",value:e,type:"header name"})}return this[r].get(e)}has(e){E.brandCheck(this,Headers);E.argumentLengthCheck(arguments,1,{header:"Headers.has"});e=E.converters.ByteString(e);if(!a(e)){throw E.errors.invalidArgument({prefix:"Headers.has",value:e,type:"header name"})}return this[r].contains(e)}set(e,A){E.brandCheck(this,Headers);E.argumentLengthCheck(arguments,2,{header:"Headers.set"});e=E.converters.ByteString(e);A=E.converters.ByteString(A);A=headerValueNormalize(A);if(!a(e)){throw E.errors.invalidArgument({prefix:"Headers.set",value:e,type:"header name"})}else if(!c(A)){throw E.errors.invalidArgument({prefix:"Headers.set",value:A,type:"header value"})}if(this[o]==="immutable"){throw new TypeError("immutable")}else if(this[o]==="request-no-cors"){}this[r].set(e,A)}getSetCookie(){E.brandCheck(this,Headers);const e=this[r].cookies;if(e){return[...e]}return[]}get[h](){if(this[r][h]){return this[r][h]}const e=[];const A=[...this[r]].sort(((e,A)=>e[0]<A[0]?-1:1));const t=this[r].cookies;for(let r=0;r<A.length;++r){const[s,o]=A[r];if(s==="set-cookie"){for(let A=0;A<t.length;++A){e.push([s,t[A]])}}else{l(o!==null);e.push([s,o])}}this[r][h]=e;return e}keys(){E.brandCheck(this,Headers);if(this[o]==="immutable"){const e=this[h];return i((()=>e),"Headers","key")}return i((()=>[...this[h].values()]),"Headers","key")}values(){E.brandCheck(this,Headers);if(this[o]==="immutable"){const e=this[h];return i((()=>e),"Headers","value")}return i((()=>[...this[h].values()]),"Headers","value")}entries(){E.brandCheck(this,Headers);if(this[o]==="immutable"){const e=this[h];return i((()=>e),"Headers","key+value")}return i((()=>[...this[h].values()]),"Headers","key+value")}forEach(e,A=globalThis){E.brandCheck(this,Headers);E.argumentLengthCheck(arguments,1,{header:"Headers.forEach"});if(typeof e!=="function"){throw new TypeError("Failed to execute 'forEach' on 'Headers': parameter 1 is not of type 'Function'.")}for(const[t,r]of this){e.apply(A,[r,t,this])}}[Symbol.for("nodejs.util.inspect.custom")](){E.brandCheck(this,Headers);return this[r]}}Headers.prototype[Symbol.iterator]=Headers.prototype.entries;Object.defineProperties(Headers.prototype,{append:n,delete:n,get:n,has:n,set:n,getSetCookie:n,keys:n,values:n,entries:n,forEach:n,[Symbol.iterator]:{enumerable:false},[Symbol.toStringTag]:{value:"Headers",configurable:true},[g.inspect.custom]:{enumerable:false}});E.converters.HeadersInit=function(e){if(E.util.Type(e)==="Object"){if(e[Symbol.iterator]){return E.converters["sequence<sequence<ByteString>>"](e)}return E.converters["record<ByteString, ByteString>"](e)}throw E.errors.conversionFailed({prefix:"Headers constructor",argument:"Argument 1",types:["sequence<sequence<ByteString>>","record<ByteString, ByteString>"]})};e.exports={fill:fill,Headers:Headers,HeadersList:HeadersList}},2315:(e,A,t)=>{const{Response:r,makeNetworkError:s,makeAppropriateNetworkError:o,filterResponse:n,makeResponse:i}=t(8676);const{Headers:a}=t(6349);const{Request:c,makeRequest:g}=t(5194);const E=t(3106);const{bytesMatch:l,makePolicyContainer:u,clonePolicyContainer:h,requestBadPort:Q,TAOCheck:C,appendRequestOriginHeader:B,responseLocationURL:I,requestCurrentURL:d,setRequestReferrerPolicyOnRedirect:p,tryUpgradeRequestToAPotentiallyTrustworthyURL:m,createOpaqueTimingInfo:y,appendFetchMetadata:w,corsCheck:R,crossOriginResourcePolicyCheck:b,determineRequestsReferrer:k,coarsenedSharedCurrentTime:D,createDeferredPromise:S,isBlobLike:F,sameOrigin:T,isCancelled:N,isAborted:U,isErrorLike:L,fullyReadBody:v,readableStreamClose:G,isomorphicEncode:M,urlIsLocal:_,urlIsHttpHttpsScheme:H,urlHasHttpsScheme:O}=t(5523);const{kState:P,kHeaders:Y,kGuard:J,kRealm:x}=t(9710);const V=t(2613);const{safelyExtractBody:q}=t(8923);const{redirectStatusSet:W,nullBodyStatus:j,safeMethodsSet:Z,requestBodyHeader:X,subresourceSet:K,DOMException:z}=t(7326);const{kHeadersList:$}=t(6443);const ee=t(4434);const{Readable:Ae,pipeline:te}=t(2203);const{addAbortListener:re,isErrored:se,isReadable:oe,nodeMajor:ne,nodeMinor:ie}=t(3440);const{dataURLProcessor:ae,serializeAMimeType:ce}=t(4322);const{TransformStream:ge}=t(3774);const{getGlobalDispatcher:Ee}=t(2581);const{webidl:le}=t(4222);const{STATUS_CODES:ue}=t(8611);const he=["GET","HEAD"];let Qe;let Ce=globalThis.ReadableStream;class Fetch extends ee{constructor(e){super();this.dispatcher=e;this.connection=null;this.dump=false;this.state="ongoing";this.setMaxListeners(21)}terminate(e){if(this.state!=="ongoing"){return}this.state="terminated";this.connection?.destroy(e);this.emit("terminated",e)}abort(e){if(this.state!=="ongoing"){return}this.state="aborted";if(!e){e=new z("The operation was aborted.","AbortError")}this.serializedAbortReason=e;this.connection?.destroy(e);this.emit("terminated",e)}}function fetch(e,A={}){le.argumentLengthCheck(arguments,1,{header:"globalThis.fetch"});const t=S();let s;try{s=new c(e,A)}catch(e){t.reject(e);return t.promise}const o=s[P];if(s.signal.aborted){abortFetch(t,o,null,s.signal.reason);return t.promise}const n=o.client.globalObject;if(n?.constructor?.name==="ServiceWorkerGlobalScope"){o.serviceWorkers="none"}let i=null;const a=null;let g=false;let E=null;re(s.signal,(()=>{g=true;V(E!=null);E.abort(s.signal.reason);abortFetch(t,o,i,s.signal.reason)}));const handleFetchDone=e=>finalizeAndReportTiming(e,"fetch");const processResponse=e=>{if(g){return Promise.resolve()}if(e.aborted){abortFetch(t,o,i,E.serializedAbortReason);return Promise.resolve()}if(e.type==="error"){t.reject(Object.assign(new TypeError("fetch failed"),{cause:e.error}));return Promise.resolve()}i=new r;i[P]=e;i[x]=a;i[Y][$]=e.headersList;i[Y][J]="immutable";i[Y][x]=a;t.resolve(i)};E=fetching({request:o,processResponseEndOfBody:handleFetchDone,processResponse:processResponse,dispatcher:A.dispatcher??Ee()});return t.promise}function finalizeAndReportTiming(e,A="other"){if(e.type==="error"&&e.aborted){return}if(!e.urlList?.length){return}const t=e.urlList[0];let r=e.timingInfo;let s=e.cacheState;if(!H(t)){return}if(r===null){return}if(!e.timingAllowPassed){r=y({startTime:r.startTime});s=""}r.endTime=D();e.timingInfo=r;markResourceTiming(r,t,A,globalThis,s)}function markResourceTiming(e,A,t,r,s){if(ne>18||ne===18&&ie>=2){performance.markResourceTiming(e,A.href,t,r,s)}}function abortFetch(e,A,t,r){if(!r){r=new z("The operation was aborted.","AbortError")}e.reject(r);if(A.body!=null&&oe(A.body?.stream)){A.body.stream.cancel(r).catch((e=>{if(e.code==="ERR_INVALID_STATE"){return}throw e}))}if(t==null){return}const s=t[P];if(s.body!=null&&oe(s.body?.stream)){s.body.stream.cancel(r).catch((e=>{if(e.code==="ERR_INVALID_STATE"){return}throw e}))}}function fetching({request:e,processRequestBodyChunkLength:A,processRequestEndOfBody:t,processResponse:r,processResponseEndOfBody:s,processResponseConsumeBody:o,useParallelQueue:n=false,dispatcher:i}){let a=null;let c=false;if(e.client!=null){a=e.client.globalObject;c=e.client.crossOriginIsolatedCapability}const g=D(c);const E=y({startTime:g});const l={controller:new Fetch(i),request:e,timingInfo:E,processRequestBodyChunkLength:A,processRequestEndOfBody:t,processResponse:r,processResponseConsumeBody:o,processResponseEndOfBody:s,taskDestination:a,crossOriginIsolatedCapability:c};V(!e.body||e.body.stream);if(e.window==="client"){e.window=e.client?.globalObject?.constructor?.name==="Window"?e.client:"no-window"}if(e.origin==="client"){e.origin=e.client?.origin}if(e.policyContainer==="client"){if(e.client!=null){e.policyContainer=h(e.client.policyContainer)}else{e.policyContainer=u()}}if(!e.headersList.contains("accept")){const A="*/*";e.headersList.append("accept",A)}if(!e.headersList.contains("accept-language")){e.headersList.append("accept-language","*")}if(e.priority===null){}if(K.has(e.destination)){}mainFetch(l).catch((e=>{l.controller.terminate(e)}));return l.controller}async function mainFetch(e,A=false){const t=e.request;let r=null;if(t.localURLsOnly&&!_(d(t))){r=s("local URLs only")}m(t);if(Q(t)==="blocked"){r=s("bad port")}if(t.referrerPolicy===""){t.referrerPolicy=t.policyContainer.referrerPolicy}if(t.referrer!=="no-referrer"){t.referrer=k(t)}if(r===null){r=await(async()=>{const A=d(t);if(T(A,t.url)&&t.responseTainting==="basic"||A.protocol==="data:"||(t.mode==="navigate"||t.mode==="websocket")){t.responseTainting="basic";return await schemeFetch(e)}if(t.mode==="same-origin"){return s('request mode cannot be "same-origin"')}if(t.mode==="no-cors"){if(t.redirect!=="follow"){return s('redirect mode cannot be "follow" for "no-cors" request')}t.responseTainting="opaque";return await schemeFetch(e)}if(!H(d(t))){return s("URL scheme must be a HTTP(S) scheme")}t.responseTainting="cors";return await httpFetch(e)})()}if(A){return r}if(r.status!==0&&!r.internalResponse){if(t.responseTainting==="cors"){}if(t.responseTainting==="basic"){r=n(r,"basic")}else if(t.responseTainting==="cors"){r=n(r,"cors")}else if(t.responseTainting==="opaque"){r=n(r,"opaque")}else{V(false)}}let o=r.status===0?r:r.internalResponse;if(o.urlList.length===0){o.urlList.push(...t.urlList)}if(!t.timingAllowFailed){r.timingAllowPassed=true}if(r.type==="opaque"&&o.status===206&&o.rangeRequested&&!t.headers.contains("range")){r=o=s()}if(r.status!==0&&(t.method==="HEAD"||t.method==="CONNECT"||j.includes(o.status))){o.body=null;e.controller.dump=true}if(t.integrity){const processBodyError=A=>fetchFinale(e,s(A));if(t.responseTainting==="opaque"||r.body==null){processBodyError(r.error);return}const processBody=A=>{if(!l(A,t.integrity)){processBodyError("integrity mismatch");return}r.body=q(A)[0];fetchFinale(e,r)};await v(r.body,processBody,processBodyError)}else{fetchFinale(e,r)}}function schemeFetch(e){if(N(e)&&e.request.redirectCount===0){return Promise.resolve(o(e))}const{request:A}=e;const{protocol:r}=d(A);switch(r){case"about:":{return Promise.resolve(s("about scheme is not supported"))}case"blob:":{if(!Qe){Qe=t(181).resolveObjectURL}const e=d(A);if(e.search.length!==0){return Promise.resolve(s("NetworkError when attempting to fetch resource."))}const r=Qe(e.toString());if(A.method!=="GET"||!F(r)){return Promise.resolve(s("invalid method"))}const o=q(r);const n=o[0];const a=M(`${n.length}`);const c=o[1]??"";const g=i({statusText:"OK",headersList:[["content-length",{name:"Content-Length",value:a}],["content-type",{name:"Content-Type",value:c}]]});g.body=n;return Promise.resolve(g)}case"data:":{const e=d(A);const t=ae(e);if(t==="failure"){return Promise.resolve(s("failed to fetch the data URL"))}const r=ce(t.mimeType);return Promise.resolve(i({statusText:"OK",headersList:[["content-type",{name:"Content-Type",value:r}]],body:q(t.body)[0]}))}case"file:":{return Promise.resolve(s("not implemented... yet..."))}case"http:":case"https:":{return httpFetch(e).catch((e=>s(e)))}default:{return Promise.resolve(s("unknown scheme"))}}}function finalizeResponse(e,A){e.request.done=true;if(e.processResponseDone!=null){queueMicrotask((()=>e.processResponseDone(A)))}}function fetchFinale(e,A){if(A.type==="error"){A.urlList=[e.request.urlList[0]];A.timingInfo=y({startTime:e.timingInfo.startTime})}const processResponseEndOfBody=()=>{e.request.done=true;if(e.processResponseEndOfBody!=null){queueMicrotask((()=>e.processResponseEndOfBody(A)))}};if(e.processResponse!=null){queueMicrotask((()=>e.processResponse(A)))}if(A.body==null){processResponseEndOfBody()}else{const identityTransformAlgorithm=(e,A)=>{A.enqueue(e)};const e=new ge({start(){},transform:identityTransformAlgorithm,flush:processResponseEndOfBody},{size(){return 1}},{size(){return 1}});A.body={stream:A.body.stream.pipeThrough(e)}}if(e.processResponseConsumeBody!=null){const processBody=t=>e.processResponseConsumeBody(A,t);const processBodyError=t=>e.processResponseConsumeBody(A,t);if(A.body==null){queueMicrotask((()=>processBody(null)))}else{return v(A.body,processBody,processBodyError)}return Promise.resolve()}}async function httpFetch(e){const A=e.request;let t=null;let r=null;const o=e.timingInfo;if(A.serviceWorkers==="all"){}if(t===null){if(A.redirect==="follow"){A.serviceWorkers="none"}r=t=await httpNetworkOrCacheFetch(e);if(A.responseTainting==="cors"&&R(A,t)==="failure"){return s("cors failure")}if(C(A,t)==="failure"){A.timingAllowFailed=true}}if((A.responseTainting==="opaque"||t.type==="opaque")&&b(A.origin,A.client,A.destination,r)==="blocked"){return s("blocked")}if(W.has(r.status)){if(A.redirect!=="manual"){e.controller.connection.destroy()}if(A.redirect==="error"){t=s("unexpected redirect")}else if(A.redirect==="manual"){t=r}else if(A.redirect==="follow"){t=await httpRedirectFetch(e,t)}else{V(false)}}t.timingInfo=o;return t}function httpRedirectFetch(e,A){const t=e.request;const r=A.internalResponse?A.internalResponse:A;let o;try{o=I(r,d(t).hash);if(o==null){return A}}catch(e){return Promise.resolve(s(e))}if(!H(o)){return Promise.resolve(s("URL scheme must be a HTTP(S) scheme"))}if(t.redirectCount===20){return Promise.resolve(s("redirect count exceeded"))}t.redirectCount+=1;if(t.mode==="cors"&&(o.username||o.password)&&!T(t,o)){return Promise.resolve(s('cross origin not allowed for request mode "cors"'))}if(t.responseTainting==="cors"&&(o.username||o.password)){return Promise.resolve(s('URL cannot contain credentials for request mode "cors"'))}if(r.status!==303&&t.body!=null&&t.body.source==null){return Promise.resolve(s())}if([301,302].includes(r.status)&&t.method==="POST"||r.status===303&&!he.includes(t.method)){t.method="GET";t.body=null;for(const e of X){t.headersList.delete(e)}}if(!T(d(t),o)){t.headersList.delete("authorization");t.headersList.delete("proxy-authorization",true);t.headersList.delete("cookie");t.headersList.delete("host")}if(t.body!=null){V(t.body.source!=null);t.body=q(t.body.source)[0]}const n=e.timingInfo;n.redirectEndTime=n.postRedirectStartTime=D(e.crossOriginIsolatedCapability);if(n.redirectStartTime===0){n.redirectStartTime=n.startTime}t.urlList.push(o);p(t,r);return mainFetch(e,true)}async function httpNetworkOrCacheFetch(e,A=false,t=false){const r=e.request;let n=null;let i=null;let a=null;const c=null;const E=false;if(r.window==="no-window"&&r.redirect==="error"){n=e;i=r}else{i=g(r);n={...e};n.request=i}const l=r.credentials==="include"||r.credentials==="same-origin"&&r.responseTainting==="basic";const u=i.body?i.body.length:null;let h=null;if(i.body==null&&["POST","PUT"].includes(i.method)){h="0"}if(u!=null){h=M(`${u}`)}if(h!=null){i.headersList.append("content-length",h)}if(u!=null&&i.keepalive){}if(i.referrer instanceof URL){i.headersList.append("referer",M(i.referrer.href))}B(i);w(i);if(!i.headersList.contains("user-agent")){i.headersList.append("user-agent",typeof esbuildDetection==="undefined"?"undici":"node")}if(i.cache==="default"&&(i.headersList.contains("if-modified-since")||i.headersList.contains("if-none-match")||i.headersList.contains("if-unmodified-since")||i.headersList.contains("if-match")||i.headersList.contains("if-range"))){i.cache="no-store"}if(i.cache==="no-cache"&&!i.preventNoCacheCacheControlHeaderModification&&!i.headersList.contains("cache-control")){i.headersList.append("cache-control","max-age=0")}if(i.cache==="no-store"||i.cache==="reload"){if(!i.headersList.contains("pragma")){i.headersList.append("pragma","no-cache")}if(!i.headersList.contains("cache-control")){i.headersList.append("cache-control","no-cache")}}if(i.headersList.contains("range")){i.headersList.append("accept-encoding","identity")}if(!i.headersList.contains("accept-encoding")){if(O(d(i))){i.headersList.append("accept-encoding","br, gzip, deflate")}else{i.headersList.append("accept-encoding","gzip, deflate")}}i.headersList.delete("host");if(l){}if(c==null){i.cache="no-store"}if(i.mode!=="no-store"&&i.mode!=="reload"){}if(a==null){if(i.mode==="only-if-cached"){return s("only if cached")}const e=await httpNetworkFetch(n,l,t);if(!Z.has(i.method)&&e.status>=200&&e.status<=399){}if(E&&e.status===304){}if(a==null){a=e}}a.urlList=[...i.urlList];if(i.headersList.contains("range")){a.rangeRequested=true}a.requestIncludesCredentials=l;if(a.status===407){if(r.window==="no-window"){return s()}if(N(e)){return o(e)}return s("proxy authentication required")}if(a.status===421&&!t&&(r.body==null||r.body.source!=null)){if(N(e)){return o(e)}e.controller.connection.destroy();a=await httpNetworkOrCacheFetch(e,A,true)}if(A){}return a}async function httpNetworkFetch(e,A=false,r=false){V(!e.controller.connection||e.controller.connection.destroyed);e.controller.connection={abort:null,destroyed:false,destroy(e){if(!this.destroyed){this.destroyed=true;this.abort?.(e??new z("The operation was aborted.","AbortError"))}}};const n=e.request;let c=null;const g=e.timingInfo;const l=null;if(l==null){n.cache="no-store"}const u=r?"yes":"no";if(n.mode==="websocket"){}else{}let h=null;if(n.body==null&&e.processRequestEndOfBody){queueMicrotask((()=>e.processRequestEndOfBody()))}else if(n.body!=null){const processBodyChunk=async function*(A){if(N(e)){return}yield A;e.processRequestBodyChunkLength?.(A.byteLength)};const processEndOfBody=()=>{if(N(e)){return}if(e.processRequestEndOfBody){e.processRequestEndOfBody()}};const processBodyError=A=>{if(N(e)){return}if(A.name==="AbortError"){e.controller.abort()}else{e.controller.terminate(A)}};h=async function*(){try{for await(const e of n.body.stream){yield*processBodyChunk(e)}processEndOfBody()}catch(e){processBodyError(e)}}()}try{const{body:A,status:t,statusText:r,headersList:s,socket:o}=await dispatch({body:h});if(o){c=i({status:t,statusText:r,headersList:s,socket:o})}else{const o=A[Symbol.asyncIterator]();e.controller.next=()=>o.next();c=i({status:t,statusText:r,headersList:s})}}catch(A){if(A.name==="AbortError"){e.controller.connection.destroy();return o(e,A)}return s(A)}const pullAlgorithm=()=>{e.controller.resume()};const cancelAlgorithm=A=>{e.controller.abort(A)};if(!Ce){Ce=t(3774).ReadableStream}const Q=new Ce({async start(A){e.controller.controller=A},async pull(e){await pullAlgorithm(e)},async cancel(e){await cancelAlgorithm(e)}},{highWaterMark:0,size(){return 1}});c.body={stream:Q};e.controller.on("terminated",onAborted);e.controller.resume=async()=>{while(true){let A;let t;try{const{done:t,value:r}=await e.controller.next();if(U(e)){break}A=t?undefined:r}catch(r){if(e.controller.ended&&!g.encodedBodySize){A=undefined}else{A=r;t=true}}if(A===undefined){G(e.controller.controller);finalizeResponse(e,c);return}g.decodedBodySize+=A?.byteLength??0;if(t){e.controller.terminate(A);return}e.controller.controller.enqueue(new Uint8Array(A));if(se(Q)){e.controller.terminate();return}if(!e.controller.controller.desiredSize){return}}};function onAborted(A){if(U(e)){c.aborted=true;if(oe(Q)){e.controller.controller.error(e.controller.serializedAbortReason)}}else{if(oe(Q)){e.controller.controller.error(new TypeError("terminated",{cause:L(A)?A:undefined}))}}e.controller.connection.destroy()}return c;async function dispatch({body:A}){const t=d(n);const r=e.controller.dispatcher;return new Promise(((s,o)=>r.dispatch({path:t.pathname+t.search,origin:t.origin,method:n.method,body:e.controller.dispatcher.isMockActive?n.body&&(n.body.source||n.body.stream):A,headers:n.headersList.entries,maxRedirections:0,upgrade:n.mode==="websocket"?"websocket":undefined},{body:null,abort:null,onConnect(A){const{connection:t}=e.controller;if(t.destroyed){A(new z("The operation was aborted.","AbortError"))}else{e.controller.on("terminated",A);this.abort=t.abort=A}},onHeaders(e,A,t,r){if(e<200){return}let o=[];let i="";const c=new a;if(Array.isArray(A)){for(let e=0;e<A.length;e+=2){const t=A[e+0].toString("latin1");const r=A[e+1].toString("latin1");if(t.toLowerCase()==="content-encoding"){o=r.toLowerCase().split(",").map((e=>e.trim()))}else if(t.toLowerCase()==="location"){i=r}c[$].append(t,r)}}else{const e=Object.keys(A);for(const t of e){const e=A[t];if(t.toLowerCase()==="content-encoding"){o=e.toLowerCase().split(",").map((e=>e.trim())).reverse()}else if(t.toLowerCase()==="location"){i=e}c[$].append(t,e)}}this.body=new Ae({read:t});const g=[];const l=n.redirect==="follow"&&i&&W.has(e);if(n.method!=="HEAD"&&n.method!=="CONNECT"&&!j.includes(e)&&!l){for(const e of o){if(e==="x-gzip"||e==="gzip"){g.push(E.createGunzip({flush:E.constants.Z_SYNC_FLUSH,finishFlush:E.constants.Z_SYNC_FLUSH}))}else if(e==="deflate"){g.push(E.createInflate())}else if(e==="br"){g.push(E.createBrotliDecompress())}else{g.length=0;break}}}s({status:e,statusText:r,headersList:c[$],body:g.length?te(this.body,...g,(()=>{})):this.body.on("error",(()=>{}))});return true},onData(A){if(e.controller.dump){return}const t=A;g.encodedBodySize+=t.byteLength;return this.body.push(t)},onComplete(){if(this.abort){e.controller.off("terminated",this.abort)}e.controller.ended=true;this.body.push(null)},onError(A){if(this.abort){e.controller.off("terminated",this.abort)}this.body?.destroy(A);e.controller.terminate(A);o(A)},onUpgrade(e,A,t){if(e!==101){return}const r=new a;for(let e=0;e<A.length;e+=2){const t=A[e+0].toString("latin1");const s=A[e+1].toString("latin1");r[$].append(t,s)}s({status:e,statusText:ue[e],headersList:r[$],socket:t});return true}})))}}e.exports={fetch:fetch,Fetch:Fetch,fetching:fetching,finalizeAndReportTiming:finalizeAndReportTiming}},5194:(e,A,t)=>{const{extractBody:r,mixinBody:s,cloneBody:o}=t(8923);const{Headers:n,fill:i,HeadersList:a}=t(6349);const{FinalizationRegistry:c}=t(3194)();const g=t(3440);const{isValidHTTPToken:E,sameOrigin:l,normalizeMethod:u,makePolicyContainer:h,normalizeMethodRecord:Q}=t(5523);const{forbiddenMethodsSet:C,corsSafeListedMethodsSet:B,referrerPolicy:I,requestRedirect:d,requestMode:p,requestCredentials:m,requestCache:y,requestDuplex:w}=t(7326);const{kEnumerableProperty:R}=g;const{kHeaders:b,kSignal:k,kState:D,kGuard:S,kRealm:F}=t(9710);const{webidl:T}=t(4222);const{getGlobalOrigin:N}=t(5628);const{URLSerializer:U}=t(4322);const{kHeadersList:L,kConstruct:v}=t(6443);const G=t(2613);const{getMaxListeners:M,setMaxListeners:_,getEventListeners:H,defaultMaxListeners:O}=t(4434);let P=globalThis.TransformStream;const Y=Symbol("abortController");const J=new c((({signal:e,abort:A})=>{e.removeEventListener("abort",A)}));class Request{constructor(e,A={}){if(e===v){return}T.argumentLengthCheck(arguments,1,{header:"Request constructor"});e=T.converters.RequestInfo(e);A=T.converters.RequestInit(A);this[F]={settingsObject:{baseUrl:N(),get origin(){return this.baseUrl?.origin},policyContainer:h()}};let s=null;let o=null;const c=this[F].settingsObject.baseUrl;let I=null;if(typeof e==="string"){let A;try{A=new URL(e,c)}catch(A){throw new TypeError("Failed to parse URL from "+e,{cause:A})}if(A.username||A.password){throw new TypeError("Request cannot be constructed from a URL that includes credentials: "+e)}s=makeRequest({urlList:[A]});o="cors"}else{G(e instanceof Request);s=e[D];I=e[k]}const d=this[F].settingsObject.origin;let p="client";if(s.window?.constructor?.name==="EnvironmentSettingsObject"&&l(s.window,d)){p=s.window}if(A.window!=null){throw new TypeError(`'window' option '${p}' must be null`)}if("window"in A){p="no-window"}s=makeRequest({method:s.method,headersList:s.headersList,unsafeRequest:s.unsafeRequest,client:this[F].settingsObject,window:p,priority:s.priority,origin:s.origin,referrer:s.referrer,referrerPolicy:s.referrerPolicy,mode:s.mode,credentials:s.credentials,cache:s.cache,redirect:s.redirect,integrity:s.integrity,keepalive:s.keepalive,reloadNavigation:s.reloadNavigation,historyNavigation:s.historyNavigation,urlList:[...s.urlList]});const m=Object.keys(A).length!==0;if(m){if(s.mode==="navigate"){s.mode="same-origin"}s.reloadNavigation=false;s.historyNavigation=false;s.origin="client";s.referrer="client";s.referrerPolicy="";s.url=s.urlList[s.urlList.length-1];s.urlList=[s.url]}if(A.referrer!==undefined){const e=A.referrer;if(e===""){s.referrer="no-referrer"}else{let A;try{A=new URL(e,c)}catch(A){throw new TypeError(`Referrer "${e}" is not a valid URL.`,{cause:A})}if(A.protocol==="about:"&&A.hostname==="client"||d&&!l(A,this[F].settingsObject.baseUrl)){s.referrer="client"}else{s.referrer=A}}}if(A.referrerPolicy!==undefined){s.referrerPolicy=A.referrerPolicy}let y;if(A.mode!==undefined){y=A.mode}else{y=o}if(y==="navigate"){throw T.errors.exception({header:"Request constructor",message:"invalid request mode navigate."})}if(y!=null){s.mode=y}if(A.credentials!==undefined){s.credentials=A.credentials}if(A.cache!==undefined){s.cache=A.cache}if(s.cache==="only-if-cached"&&s.mode!=="same-origin"){throw new TypeError("'only-if-cached' can be set only with 'same-origin' mode")}if(A.redirect!==undefined){s.redirect=A.redirect}if(A.integrity!=null){s.integrity=String(A.integrity)}if(A.keepalive!==undefined){s.keepalive=Boolean(A.keepalive)}if(A.method!==undefined){let e=A.method;if(!E(e)){throw new TypeError(`'${e}' is not a valid HTTP method.`)}if(C.has(e.toUpperCase())){throw new TypeError(`'${e}' HTTP method is unsupported.`)}e=Q[e]??u(e);s.method=e}if(A.signal!==undefined){I=A.signal}this[D]=s;const w=new AbortController;this[k]=w.signal;this[k][F]=this[F];if(I!=null){if(!I||typeof I.aborted!=="boolean"||typeof I.addEventListener!=="function"){throw new TypeError("Failed to construct 'Request': member signal is not of type AbortSignal.")}if(I.aborted){w.abort(I.reason)}else{this[Y]=w;const e=new WeakRef(w);const abort=function(){const A=e.deref();if(A!==undefined){A.abort(this.reason)}};try{if(typeof M==="function"&&M(I)===O){_(100,I)}else if(H(I,"abort").length>=O){_(100,I)}}catch{}g.addAbortListener(I,abort);J.register(w,{signal:I,abort:abort})}}this[b]=new n(v);this[b][L]=s.headersList;this[b][S]="request";this[b][F]=this[F];if(y==="no-cors"){if(!B.has(s.method)){throw new TypeError(`'${s.method} is unsupported in no-cors mode.`)}this[b][S]="request-no-cors"}if(m){const e=this[b][L];const t=A.headers!==undefined?A.headers:new a(e);e.clear();if(t instanceof a){for(const[A,r]of t){e.append(A,r)}e.cookies=t.cookies}else{i(this[b],t)}}const R=e instanceof Request?e[D].body:null;if((A.body!=null||R!=null)&&(s.method==="GET"||s.method==="HEAD")){throw new TypeError("Request with GET/HEAD method cannot have body.")}let U=null;if(A.body!=null){const[e,t]=r(A.body,s.keepalive);U=e;if(t&&!this[b][L].contains("content-type")){this[b].append("content-type",t)}}const x=U??R;if(x!=null&&x.source==null){if(U!=null&&A.duplex==null){throw new TypeError("RequestInit: duplex option is required when sending a body.")}if(s.mode!=="same-origin"&&s.mode!=="cors"){throw new TypeError('If request is made from ReadableStream, mode should be "same-origin" or "cors"')}s.useCORSPreflightFlag=true}let V=x;if(U==null&&R!=null){if(g.isDisturbed(R.stream)||R.stream.locked){throw new TypeError("Cannot construct a Request with a Request object that has already been used.")}if(!P){P=t(3774).TransformStream}const e=new P;R.stream.pipeThrough(e);V={source:R.source,length:R.length,stream:e.readable}}this[D].body=V}get method(){T.brandCheck(this,Request);return this[D].method}get url(){T.brandCheck(this,Request);return U(this[D].url)}get headers(){T.brandCheck(this,Request);return this[b]}get destination(){T.brandCheck(this,Request);return this[D].destination}get referrer(){T.brandCheck(this,Request);if(this[D].referrer==="no-referrer"){return""}if(this[D].referrer==="client"){return"about:client"}return this[D].referrer.toString()}get referrerPolicy(){T.brandCheck(this,Request);return this[D].referrerPolicy}get mode(){T.brandCheck(this,Request);return this[D].mode}get credentials(){return this[D].credentials}get cache(){T.brandCheck(this,Request);return this[D].cache}get redirect(){T.brandCheck(this,Request);return this[D].redirect}get integrity(){T.brandCheck(this,Request);return this[D].integrity}get keepalive(){T.brandCheck(this,Request);return this[D].keepalive}get isReloadNavigation(){T.brandCheck(this,Request);return this[D].reloadNavigation}get isHistoryNavigation(){T.brandCheck(this,Request);return this[D].historyNavigation}get signal(){T.brandCheck(this,Request);return this[k]}get body(){T.brandCheck(this,Request);return this[D].body?this[D].body.stream:null}get bodyUsed(){T.brandCheck(this,Request);return!!this[D].body&&g.isDisturbed(this[D].body.stream)}get duplex(){T.brandCheck(this,Request);return"half"}clone(){T.brandCheck(this,Request);if(this.bodyUsed||this.body?.locked){throw new TypeError("unusable")}const e=cloneRequest(this[D]);const A=new Request(v);A[D]=e;A[F]=this[F];A[b]=new n(v);A[b][L]=e.headersList;A[b][S]=this[b][S];A[b][F]=this[b][F];const t=new AbortController;if(this.signal.aborted){t.abort(this.signal.reason)}else{g.addAbortListener(this.signal,(()=>{t.abort(this.signal.reason)}))}A[k]=t.signal;return A}}s(Request);function makeRequest(e){const A={method:"GET",localURLsOnly:false,unsafeRequest:false,body:null,client:null,reservedClient:null,replacesClientId:"",window:"client",keepalive:false,serviceWorkers:"all",initiator:"",destination:"",priority:null,origin:"client",policyContainer:"client",referrer:"client",referrerPolicy:"",mode:"no-cors",useCORSPreflightFlag:false,credentials:"same-origin",useCredentials:false,cache:"default",redirect:"follow",integrity:"",cryptoGraphicsNonceMetadata:"",parserMetadata:"",reloadNavigation:false,historyNavigation:false,userActivation:false,taintedOrigin:false,redirectCount:0,responseTainting:"basic",preventNoCacheCacheControlHeaderModification:false,done:false,timingAllowFailed:false,...e,headersList:e.headersList?new a(e.headersList):new a};A.url=A.urlList[0];return A}function cloneRequest(e){const A=makeRequest({...e,body:null});if(e.body!=null){A.body=o(e.body)}return A}Object.defineProperties(Request.prototype,{method:R,url:R,headers:R,redirect:R,clone:R,signal:R,duplex:R,destination:R,body:R,bodyUsed:R,isHistoryNavigation:R,isReloadNavigation:R,keepalive:R,integrity:R,cache:R,credentials:R,attribute:R,referrerPolicy:R,referrer:R,mode:R,[Symbol.toStringTag]:{value:"Request",configurable:true}});T.converters.Request=T.interfaceConverter(Request);T.converters.RequestInfo=function(e){if(typeof e==="string"){return T.converters.USVString(e)}if(e instanceof Request){return T.converters.Request(e)}return T.converters.USVString(e)};T.converters.AbortSignal=T.interfaceConverter(AbortSignal);T.converters.RequestInit=T.dictionaryConverter([{key:"method",converter:T.converters.ByteString},{key:"headers",converter:T.converters.HeadersInit},{key:"body",converter:T.nullableConverter(T.converters.BodyInit)},{key:"referrer",converter:T.converters.USVString},{key:"referrerPolicy",converter:T.converters.DOMString,allowedValues:I},{key:"mode",converter:T.converters.DOMString,allowedValues:p},{key:"credentials",converter:T.converters.DOMString,allowedValues:m},{key:"cache",converter:T.converters.DOMString,allowedValues:y},{key:"redirect",converter:T.converters.DOMString,allowedValues:d},{key:"integrity",converter:T.converters.DOMString},{key:"keepalive",converter:T.converters.boolean},{key:"signal",converter:T.nullableConverter((e=>T.converters.AbortSignal(e,{strict:false})))},{key:"window",converter:T.converters.any},{key:"duplex",converter:T.converters.DOMString,allowedValues:w}]);e.exports={Request:Request,makeRequest:makeRequest}},8676:(e,A,t)=>{const{Headers:r,HeadersList:s,fill:o}=t(6349);const{extractBody:n,cloneBody:i,mixinBody:a}=t(8923);const c=t(3440);const{kEnumerableProperty:g}=c;const{isValidReasonPhrase:E,isCancelled:l,isAborted:u,isBlobLike:h,serializeJavascriptValueToJSONString:Q,isErrorLike:C,isomorphicEncode:B}=t(5523);const{redirectStatusSet:I,nullBodyStatus:d,DOMException:p}=t(7326);const{kState:m,kHeaders:y,kGuard:w,kRealm:R}=t(9710);const{webidl:b}=t(4222);const{FormData:k}=t(3073);const{getGlobalOrigin:D}=t(5628);const{URLSerializer:S}=t(4322);const{kHeadersList:F,kConstruct:T}=t(6443);const N=t(2613);const{types:U}=t(9023);const L=globalThis.ReadableStream||t(3774).ReadableStream;const v=new TextEncoder("utf-8");class Response{static error(){const e={settingsObject:{}};const A=new Response;A[m]=makeNetworkError();A[R]=e;A[y][F]=A[m].headersList;A[y][w]="immutable";A[y][R]=e;return A}static json(e,A={}){b.argumentLengthCheck(arguments,1,{header:"Response.json"});if(A!==null){A=b.converters.ResponseInit(A)}const t=v.encode(Q(e));const r=n(t);const s={settingsObject:{}};const o=new Response;o[R]=s;o[y][w]="response";o[y][R]=s;initializeResponse(o,A,{body:r[0],type:"application/json"});return o}static redirect(e,A=302){const t={settingsObject:{}};b.argumentLengthCheck(arguments,1,{header:"Response.redirect"});e=b.converters.USVString(e);A=b.converters["unsigned short"](A);let r;try{r=new URL(e,D())}catch(A){throw Object.assign(new TypeError("Failed to parse URL from "+e),{cause:A})}if(!I.has(A)){throw new RangeError("Invalid status code "+A)}const s=new Response;s[R]=t;s[y][w]="immutable";s[y][R]=t;s[m].status=A;const o=B(S(r));s[m].headersList.append("location",o);return s}constructor(e=null,A={}){if(e!==null){e=b.converters.BodyInit(e)}A=b.converters.ResponseInit(A);this[R]={settingsObject:{}};this[m]=makeResponse({});this[y]=new r(T);this[y][w]="response";this[y][F]=this[m].headersList;this[y][R]=this[R];let t=null;if(e!=null){const[A,r]=n(e);t={body:A,type:r}}initializeResponse(this,A,t)}get type(){b.brandCheck(this,Response);return this[m].type}get url(){b.brandCheck(this,Response);const e=this[m].urlList;const A=e[e.length-1]??null;if(A===null){return""}return S(A,true)}get redirected(){b.brandCheck(this,Response);return this[m].urlList.length>1}get status(){b.brandCheck(this,Response);return this[m].status}get ok(){b.brandCheck(this,Response);return this[m].status>=200&&this[m].status<=299}get statusText(){b.brandCheck(this,Response);return this[m].statusText}get headers(){b.brandCheck(this,Response);return this[y]}get body(){b.brandCheck(this,Response);return this[m].body?this[m].body.stream:null}get bodyUsed(){b.brandCheck(this,Response);return!!this[m].body&&c.isDisturbed(this[m].body.stream)}clone(){b.brandCheck(this,Response);if(this.bodyUsed||this.body&&this.body.locked){throw b.errors.exception({header:"Response.clone",message:"Body has already been consumed."})}const e=cloneResponse(this[m]);const A=new Response;A[m]=e;A[R]=this[R];A[y][F]=e.headersList;A[y][w]=this[y][w];A[y][R]=this[y][R];return A}}a(Response);Object.defineProperties(Response.prototype,{type:g,url:g,status:g,ok:g,redirected:g,statusText:g,headers:g,clone:g,body:g,bodyUsed:g,[Symbol.toStringTag]:{value:"Response",configurable:true}});Object.defineProperties(Response,{json:g,redirect:g,error:g});function cloneResponse(e){if(e.internalResponse){return filterResponse(cloneResponse(e.internalResponse),e.type)}const A=makeResponse({...e,body:null});if(e.body!=null){A.body=i(e.body)}return A}function makeResponse(e){return{aborted:false,rangeRequested:false,timingAllowPassed:false,requestIncludesCredentials:false,type:"default",status:200,timingInfo:null,cacheState:"",statusText:"",...e,headersList:e.headersList?new s(e.headersList):new s,urlList:e.urlList?[...e.urlList]:[]}}function makeNetworkError(e){const A=C(e);return makeResponse({type:"error",status:0,error:A?e:new Error(e?String(e):e),aborted:e&&e.name==="AbortError"})}function makeFilteredResponse(e,A){A={internalResponse:e,...A};return new Proxy(e,{get(e,t){return t in A?A[t]:e[t]},set(e,t,r){N(!(t in A));e[t]=r;return true}})}function filterResponse(e,A){if(A==="basic"){return makeFilteredResponse(e,{type:"basic",headersList:e.headersList})}else if(A==="cors"){return makeFilteredResponse(e,{type:"cors",headersList:e.headersList})}else if(A==="opaque"){return makeFilteredResponse(e,{type:"opaque",urlList:Object.freeze([]),status:0,statusText:"",body:null})}else if(A==="opaqueredirect"){return makeFilteredResponse(e,{type:"opaqueredirect",status:0,statusText:"",headersList:[],body:null})}else{N(false)}}function makeAppropriateNetworkError(e,A=null){N(l(e));return u(e)?makeNetworkError(Object.assign(new p("The operation was aborted.","AbortError"),{cause:A})):makeNetworkError(Object.assign(new p("Request was cancelled."),{cause:A}))}function initializeResponse(e,A,t){if(A.status!==null&&(A.status<200||A.status>599)){throw new RangeError('init["status"] must be in the range of 200 to 599, inclusive.')}if("statusText"in A&&A.statusText!=null){if(!E(String(A.statusText))){throw new TypeError("Invalid statusText")}}if("status"in A&&A.status!=null){e[m].status=A.status}if("statusText"in A&&A.statusText!=null){e[m].statusText=A.statusText}if("headers"in A&&A.headers!=null){o(e[y],A.headers)}if(t){if(d.includes(e.status)){throw b.errors.exception({header:"Response constructor",message:"Invalid response status code "+e.status})}e[m].body=t.body;if(t.type!=null&&!e[m].headersList.contains("Content-Type")){e[m].headersList.append("content-type",t.type)}}}b.converters.ReadableStream=b.interfaceConverter(L);b.converters.FormData=b.interfaceConverter(k);b.converters.URLSearchParams=b.interfaceConverter(URLSearchParams);b.converters.XMLHttpRequestBodyInit=function(e){if(typeof e==="string"){return b.converters.USVString(e)}if(h(e)){return b.converters.Blob(e,{strict:false})}if(U.isArrayBuffer(e)||U.isTypedArray(e)||U.isDataView(e)){return b.converters.BufferSource(e)}if(c.isFormDataLike(e)){return b.converters.FormData(e,{strict:false})}if(e instanceof URLSearchParams){return b.converters.URLSearchParams(e)}return b.converters.DOMString(e)};b.converters.BodyInit=function(e){if(e instanceof L){return b.converters.ReadableStream(e)}if(e?.[Symbol.asyncIterator]){return e}return b.converters.XMLHttpRequestBodyInit(e)};b.converters.ResponseInit=b.dictionaryConverter([{key:"status",converter:b.converters["unsigned short"],defaultValue:200},{key:"statusText",converter:b.converters.ByteString,defaultValue:""},{key:"headers",converter:b.converters.HeadersInit}]);e.exports={makeNetworkError:makeNetworkError,makeResponse:makeResponse,makeAppropriateNetworkError:makeAppropriateNetworkError,filterResponse:filterResponse,Response:Response,cloneResponse:cloneResponse}},9710:e=>{e.exports={kUrl:Symbol("url"),kHeaders:Symbol("headers"),kSignal:Symbol("signal"),kState:Symbol("state"),kGuard:Symbol("guard"),kRealm:Symbol("realm")}},5523:(e,A,t)=>{const{redirectStatusSet:r,referrerPolicySet:s,badPortsSet:o}=t(7326);const{getGlobalOrigin:n}=t(5628);const{performance:i}=t(2987);const{isBlobLike:a,toUSVString:c,ReadableStreamFrom:g}=t(3440);const E=t(2613);const{isUint8Array:l}=t(8253);let u=[];let h;try{h=t(6982);const e=["sha256","sha384","sha512"];u=h.getHashes().filter((A=>e.includes(A)))}catch{}function responseURL(e){const A=e.urlList;const t=A.length;return t===0?null:A[t-1].toString()}function responseLocationURL(e,A){if(!r.has(e.status)){return null}let t=e.headersList.get("location");if(t!==null&&isValidHeaderValue(t)){t=new URL(t,responseURL(e))}if(t&&!t.hash){t.hash=A}return t}function requestCurrentURL(e){return e.urlList[e.urlList.length-1]}function requestBadPort(e){const A=requestCurrentURL(e);if(urlIsHttpHttpsScheme(A)&&o.has(A.port)){return"blocked"}return"allowed"}function isErrorLike(e){return e instanceof Error||(e?.constructor?.name==="Error"||e?.constructor?.name==="DOMException")}function isValidReasonPhrase(e){for(let A=0;A<e.length;++A){const t=e.charCodeAt(A);if(!(t===9||t>=32&&t<=126||t>=128&&t<=255)){return false}}return true}function isTokenCharCode(e){switch(e){case 34:case 40:case 41:case 44:case 47:case 58:case 59:case 60:case 61:case 62:case 63:case 64:case 91:case 92:case 93:case 123:case 125:return false;default:return e>=33&&e<=126}}function isValidHTTPToken(e){if(e.length===0){return false}for(let A=0;A<e.length;++A){if(!isTokenCharCode(e.charCodeAt(A))){return false}}return true}function isValidHeaderName(e){return isValidHTTPToken(e)}function isValidHeaderValue(e){if(e.startsWith("\t")||e.startsWith(" ")||e.endsWith("\t")||e.endsWith(" ")){return false}if(e.includes("\0")||e.includes("\r")||e.includes("\n")){return false}return true}function setRequestReferrerPolicyOnRedirect(e,A){const{headersList:t}=A;const r=(t.get("referrer-policy")??"").split(",");let o="";if(r.length>0){for(let e=r.length;e!==0;e--){const A=r[e-1].trim();if(s.has(A)){o=A;break}}}if(o!==""){e.referrerPolicy=o}}function crossOriginResourcePolicyCheck(){return"allowed"}function corsCheck(){return"success"}function TAOCheck(){return"success"}function appendFetchMetadata(e){let A=null;A=e.mode;e.headersList.set("sec-fetch-mode",A)}function appendRequestOriginHeader(e){let A=e.origin;if(e.responseTainting==="cors"||e.mode==="websocket"){if(A){e.headersList.append("origin",A)}}else if(e.method!=="GET"&&e.method!=="HEAD"){switch(e.referrerPolicy){case"no-referrer":A=null;break;case"no-referrer-when-downgrade":case"strict-origin":case"strict-origin-when-cross-origin":if(e.origin&&urlHasHttpsScheme(e.origin)&&!urlHasHttpsScheme(requestCurrentURL(e))){A=null}break;case"same-origin":if(!sameOrigin(e,requestCurrentURL(e))){A=null}break;default:}if(A){e.headersList.append("origin",A)}}}function coarsenedSharedCurrentTime(e){return i.now()}function createOpaqueTimingInfo(e){return{startTime:e.startTime??0,redirectStartTime:0,redirectEndTime:0,postRedirectStartTime:e.startTime??0,finalServiceWorkerStartTime:0,finalNetworkResponseStartTime:0,finalNetworkRequestStartTime:0,endTime:0,encodedBodySize:0,decodedBodySize:0,finalConnectionTimingInfo:null}}function makePolicyContainer(){return{referrerPolicy:"strict-origin-when-cross-origin"}}function clonePolicyContainer(e){return{referrerPolicy:e.referrerPolicy}}function determineRequestsReferrer(e){const A=e.referrerPolicy;E(A);let t=null;if(e.referrer==="client"){const e=n();if(!e||e.origin==="null"){return"no-referrer"}t=new URL(e)}else if(e.referrer instanceof URL){t=e.referrer}let r=stripURLForReferrer(t);const s=stripURLForReferrer(t,true);if(r.toString().length>4096){r=s}const o=sameOrigin(e,r);const i=isURLPotentiallyTrustworthy(r)&&!isURLPotentiallyTrustworthy(e.url);switch(A){case"origin":return s!=null?s:stripURLForReferrer(t,true);case"unsafe-url":return r;case"same-origin":return o?s:"no-referrer";case"origin-when-cross-origin":return o?r:s;case"strict-origin-when-cross-origin":{const A=requestCurrentURL(e);if(sameOrigin(r,A)){return r}if(isURLPotentiallyTrustworthy(r)&&!isURLPotentiallyTrustworthy(A)){return"no-referrer"}return s}case"strict-origin":case"no-referrer-when-downgrade":default:return i?"no-referrer":s}}function stripURLForReferrer(e,A){E(e instanceof URL);if(e.protocol==="file:"||e.protocol==="about:"||e.protocol==="blank:"){return"no-referrer"}e.username="";e.password="";e.hash="";if(A){e.pathname="";e.search=""}return e}function isURLPotentiallyTrustworthy(e){if(!(e instanceof URL)){return false}if(e.href==="about:blank"||e.href==="about:srcdoc"){return true}if(e.protocol==="data:")return true;if(e.protocol==="file:")return true;return isOriginPotentiallyTrustworthy(e.origin);function isOriginPotentiallyTrustworthy(e){if(e==null||e==="null")return false;const A=new URL(e);if(A.protocol==="https:"||A.protocol==="wss:"){return true}if(/^127(?:\.[0-9]+){0,2}\.[0-9]+$|^\[(?:0*:)*?:?0*1\]$/.test(A.hostname)||(A.hostname==="localhost"||A.hostname.includes("localhost."))||A.hostname.endsWith(".localhost")){return true}return false}}function bytesMatch(e,A){if(h===undefined){return true}const t=parseMetadata(A);if(t==="no metadata"){return true}if(t.length===0){return true}const r=getStrongestMetadata(t);const s=filterMetadataListByAlgorithm(t,r);for(const A of s){const t=A.algo;const r=A.hash;let s=h.createHash(t).update(e).digest("base64");if(s[s.length-1]==="="){if(s[s.length-2]==="="){s=s.slice(0,-2)}else{s=s.slice(0,-1)}}if(compareBase64Mixed(s,r)){return true}}return false}const Q=/(?<algo>sha256|sha384|sha512)-((?<hash>[A-Za-z0-9+/]+|[A-Za-z0-9_-]+)={0,2}(?:\s|$)( +[!-~]*)?)?/i;function parseMetadata(e){const A=[];let t=true;for(const r of e.split(" ")){t=false;const e=Q.exec(r);if(e===null||e.groups===undefined||e.groups.algo===undefined){continue}const s=e.groups.algo.toLowerCase();if(u.includes(s)){A.push(e.groups)}}if(t===true){return"no metadata"}return A}function getStrongestMetadata(e){let A=e[0].algo;if(A[3]==="5"){return A}for(let t=1;t<e.length;++t){const r=e[t];if(r.algo[3]==="5"){A="sha512";break}else if(A[3]==="3"){continue}else if(r.algo[3]==="3"){A="sha384"}}return A}function filterMetadataListByAlgorithm(e,A){if(e.length===1){return e}let t=0;for(let r=0;r<e.length;++r){if(e[r].algo===A){e[t++]=e[r]}}e.length=t;return e}function compareBase64Mixed(e,A){if(e.length!==A.length){return false}for(let t=0;t<e.length;++t){if(e[t]!==A[t]){if(e[t]==="+"&&A[t]==="-"||e[t]==="/"&&A[t]==="_"){continue}return false}}return true}function tryUpgradeRequestToAPotentiallyTrustworthyURL(e){}function sameOrigin(e,A){if(e.origin===A.origin&&e.origin==="null"){return true}if(e.protocol===A.protocol&&e.hostname===A.hostname&&e.port===A.port){return true}return false}function createDeferredPromise(){let e;let A;const t=new Promise(((t,r)=>{e=t;A=r}));return{promise:t,resolve:e,reject:A}}function isAborted(e){return e.controller.state==="aborted"}function isCancelled(e){return e.controller.state==="aborted"||e.controller.state==="terminated"}const C={delete:"DELETE",DELETE:"DELETE",get:"GET",GET:"GET",head:"HEAD",HEAD:"HEAD",options:"OPTIONS",OPTIONS:"OPTIONS",post:"POST",POST:"POST",put:"PUT",PUT:"PUT"};Object.setPrototypeOf(C,null);function normalizeMethod(e){return C[e.toLowerCase()]??e}function serializeJavascriptValueToJSONString(e){const A=JSON.stringify(e);if(A===undefined){throw new TypeError("Value is not JSON serializable")}E(typeof A==="string");return A}const B=Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()));function makeIterator(e,A,t){const r={index:0,kind:t,target:e};const s={next(){if(Object.getPrototypeOf(this)!==s){throw new TypeError(`'next' called on an object that does not implement interface ${A} Iterator.`)}const{index:e,kind:t,target:o}=r;const n=o();const i=n.length;if(e>=i){return{value:undefined,done:true}}const a=n[e];r.index=e+1;return iteratorResult(a,t)},[Symbol.toStringTag]:`${A} Iterator`};Object.setPrototypeOf(s,B);return Object.setPrototypeOf({},s)}function iteratorResult(e,A){let t;switch(A){case"key":{t=e[0];break}case"value":{t=e[1];break}case"key+value":{t=e;break}}return{value:t,done:false}}async function fullyReadBody(e,A,t){const r=A;const s=t;let o;try{o=e.stream.getReader()}catch(e){s(e);return}try{const e=await readAllBytes(o);r(e)}catch(e){s(e)}}let I=globalThis.ReadableStream;function isReadableStreamLike(e){if(!I){I=t(3774).ReadableStream}return e instanceof I||e[Symbol.toStringTag]==="ReadableStream"&&typeof e.tee==="function"}const d=65535;function isomorphicDecode(e){if(e.length<d){return String.fromCharCode(...e)}return e.reduce(((e,A)=>e+String.fromCharCode(A)),"")}function readableStreamClose(e){try{e.close()}catch(e){if(!e.message.includes("Controller is already closed")){throw e}}}function isomorphicEncode(e){for(let A=0;A<e.length;A++){E(e.charCodeAt(A)<=255)}return e}async function readAllBytes(e){const A=[];let t=0;while(true){const{done:r,value:s}=await e.read();if(r){return Buffer.concat(A,t)}if(!l(s)){throw new TypeError("Received non-Uint8Array chunk")}A.push(s);t+=s.length}}function urlIsLocal(e){E("protocol"in e);const A=e.protocol;return A==="about:"||A==="blob:"||A==="data:"}function urlHasHttpsScheme(e){if(typeof e==="string"){return e.startsWith("https:")}return e.protocol==="https:"}function urlIsHttpHttpsScheme(e){E("protocol"in e);const A=e.protocol;return A==="http:"||A==="https:"}const p=Object.hasOwn||((e,A)=>Object.prototype.hasOwnProperty.call(e,A));e.exports={isAborted:isAborted,isCancelled:isCancelled,createDeferredPromise:createDeferredPromise,ReadableStreamFrom:g,toUSVString:c,tryUpgradeRequestToAPotentiallyTrustworthyURL:tryUpgradeRequestToAPotentiallyTrustworthyURL,coarsenedSharedCurrentTime:coarsenedSharedCurrentTime,determineRequestsReferrer:determineRequestsReferrer,makePolicyContainer:makePolicyContainer,clonePolicyContainer:clonePolicyContainer,appendFetchMetadata:appendFetchMetadata,appendRequestOriginHeader:appendRequestOriginHeader,TAOCheck:TAOCheck,corsCheck:corsCheck,crossOriginResourcePolicyCheck:crossOriginResourcePolicyCheck,createOpaqueTimingInfo:createOpaqueTimingInfo,setRequestReferrerPolicyOnRedirect:setRequestReferrerPolicyOnRedirect,isValidHTTPToken:isValidHTTPToken,requestBadPort:requestBadPort,requestCurrentURL:requestCurrentURL,responseURL:responseURL,responseLocationURL:responseLocationURL,isBlobLike:a,isURLPotentiallyTrustworthy:isURLPotentiallyTrustworthy,isValidReasonPhrase:isValidReasonPhrase,sameOrigin:sameOrigin,normalizeMethod:normalizeMethod,serializeJavascriptValueToJSONString:serializeJavascriptValueToJSONString,makeIterator:makeIterator,isValidHeaderName:isValidHeaderName,isValidHeaderValue:isValidHeaderValue,hasOwn:p,isErrorLike:isErrorLike,fullyReadBody:fullyReadBody,bytesMatch:bytesMatch,isReadableStreamLike:isReadableStreamLike,readableStreamClose:readableStreamClose,isomorphicEncode:isomorphicEncode,isomorphicDecode:isomorphicDecode,urlIsLocal:urlIsLocal,urlHasHttpsScheme:urlHasHttpsScheme,urlIsHttpHttpsScheme:urlIsHttpHttpsScheme,readAllBytes:readAllBytes,normalizeMethodRecord:C,parseMetadata:parseMetadata}},4222:(e,A,t)=>{const{types:r}=t(9023);const{hasOwn:s,toUSVString:o}=t(5523);const n={};n.converters={};n.util={};n.errors={};n.errors.exception=function(e){return new TypeError(`${e.header}: ${e.message}`)};n.errors.conversionFailed=function(e){const A=e.types.length===1?"":" one of";const t=`${e.argument} could not be converted to`+`${A}: ${e.types.join(", ")}.`;return n.errors.exception({header:e.prefix,message:t})};n.errors.invalidArgument=function(e){return n.errors.exception({header:e.prefix,message:`"${e.value}" is an invalid ${e.type}.`})};n.brandCheck=function(e,A,t=undefined){if(t?.strict!==false&&!(e instanceof A)){throw new TypeError("Illegal invocation")}else{return e?.[Symbol.toStringTag]===A.prototype[Symbol.toStringTag]}};n.argumentLengthCheck=function({length:e},A,t){if(e<A){throw n.errors.exception({message:`${A} argument${A!==1?"s":""} required, `+`but${e?" only":""} ${e} found.`,...t})}};n.illegalConstructor=function(){throw n.errors.exception({header:"TypeError",message:"Illegal constructor"})};n.util.Type=function(e){switch(typeof e){case"undefined":return"Undefined";case"boolean":return"Boolean";case"string":return"String";case"symbol":return"Symbol";case"number":return"Number";case"bigint":return"BigInt";case"function":case"object":{if(e===null){return"Null"}return"Object"}}};n.util.ConvertToInt=function(e,A,t,r={}){let s;let o;if(A===64){s=Math.pow(2,53)-1;if(t==="unsigned"){o=0}else{o=Math.pow(-2,53)+1}}else if(t==="unsigned"){o=0;s=Math.pow(2,A)-1}else{o=Math.pow(-2,A)-1;s=Math.pow(2,A-1)-1}let i=Number(e);if(i===0){i=0}if(r.enforceRange===true){if(Number.isNaN(i)||i===Number.POSITIVE_INFINITY||i===Number.NEGATIVE_INFINITY){throw n.errors.exception({header:"Integer conversion",message:`Could not convert ${e} to an integer.`})}i=n.util.IntegerPart(i);if(i<o||i>s){throw n.errors.exception({header:"Integer conversion",message:`Value must be between ${o}-${s}, got ${i}.`})}return i}if(!Number.isNaN(i)&&r.clamp===true){i=Math.min(Math.max(i,o),s);if(Math.floor(i)%2===0){i=Math.floor(i)}else{i=Math.ceil(i)}return i}if(Number.isNaN(i)||i===0&&Object.is(0,i)||i===Number.POSITIVE_INFINITY||i===Number.NEGATIVE_INFINITY){return 0}i=n.util.IntegerPart(i);i=i%Math.pow(2,A);if(t==="signed"&&i>=Math.pow(2,A)-1){return i-Math.pow(2,A)}return i};n.util.IntegerPart=function(e){const A=Math.floor(Math.abs(e));if(e<0){return-1*A}return A};n.sequenceConverter=function(e){return A=>{if(n.util.Type(A)!=="Object"){throw n.errors.exception({header:"Sequence",message:`Value of type ${n.util.Type(A)} is not an Object.`})}const t=A?.[Symbol.iterator]?.();const r=[];if(t===undefined||typeof t.next!=="function"){throw n.errors.exception({header:"Sequence",message:"Object is not an iterator."})}while(true){const{done:A,value:s}=t.next();if(A){break}r.push(e(s))}return r}};n.recordConverter=function(e,A){return t=>{if(n.util.Type(t)!=="Object"){throw n.errors.exception({header:"Record",message:`Value of type ${n.util.Type(t)} is not an Object.`})}const s={};if(!r.isProxy(t)){const r=Object.keys(t);for(const o of r){const r=e(o);const n=A(t[o]);s[r]=n}return s}const o=Reflect.ownKeys(t);for(const r of o){const o=Reflect.getOwnPropertyDescriptor(t,r);if(o?.enumerable){const o=e(r);const n=A(t[r]);s[o]=n}}return s}};n.interfaceConverter=function(e){return(A,t={})=>{if(t.strict!==false&&!(A instanceof e)){throw n.errors.exception({header:e.name,message:`Expected ${A} to be an instance of ${e.name}.`})}return A}};n.dictionaryConverter=function(e){return A=>{const t=n.util.Type(A);const r={};if(t==="Null"||t==="Undefined"){return r}else if(t!=="Object"){throw n.errors.exception({header:"Dictionary",message:`Expected ${A} to be one of: Null, Undefined, Object.`})}for(const t of e){const{key:e,defaultValue:o,required:i,converter:a}=t;if(i===true){if(!s(A,e)){throw n.errors.exception({header:"Dictionary",message:`Missing required key "${e}".`})}}let c=A[e];const g=s(t,"defaultValue");if(g&&c!==null){c=c??o}if(i||g||c!==undefined){c=a(c);if(t.allowedValues&&!t.allowedValues.includes(c)){throw n.errors.exception({header:"Dictionary",message:`${c} is not an accepted type. Expected one of ${t.allowedValues.join(", ")}.`})}r[e]=c}}return r}};n.nullableConverter=function(e){return A=>{if(A===null){return A}return e(A)}};n.converters.DOMString=function(e,A={}){if(e===null&&A.legacyNullToEmptyString){return""}if(typeof e==="symbol"){throw new TypeError("Could not convert argument of type symbol to string.")}return String(e)};n.converters.ByteString=function(e){const A=n.converters.DOMString(e);for(let e=0;e<A.length;e++){if(A.charCodeAt(e)>255){throw new TypeError("Cannot convert argument to a ByteString because the character at "+`index ${e} has a value of ${A.charCodeAt(e)} which is greater than 255.`)}}return A};n.converters.USVString=o;n.converters.boolean=function(e){const A=Boolean(e);return A};n.converters.any=function(e){return e};n.converters["long long"]=function(e){const A=n.util.ConvertToInt(e,64,"signed");return A};n.converters["unsigned long long"]=function(e){const A=n.util.ConvertToInt(e,64,"unsigned");return A};n.converters["unsigned long"]=function(e){const A=n.util.ConvertToInt(e,32,"unsigned");return A};n.converters["unsigned short"]=function(e,A){const t=n.util.ConvertToInt(e,16,"unsigned",A);return t};n.converters.ArrayBuffer=function(e,A={}){if(n.util.Type(e)!=="Object"||!r.isAnyArrayBuffer(e)){throw n.errors.conversionFailed({prefix:`${e}`,argument:`${e}`,types:["ArrayBuffer"]})}if(A.allowShared===false&&r.isSharedArrayBuffer(e)){throw n.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."})}return e};n.converters.TypedArray=function(e,A,t={}){if(n.util.Type(e)!=="Object"||!r.isTypedArray(e)||e.constructor.name!==A.name){throw n.errors.conversionFailed({prefix:`${A.name}`,argument:`${e}`,types:[A.name]})}if(t.allowShared===false&&r.isSharedArrayBuffer(e.buffer)){throw n.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."})}return e};n.converters.DataView=function(e,A={}){if(n.util.Type(e)!=="Object"||!r.isDataView(e)){throw n.errors.exception({header:"DataView",message:"Object is not a DataView."})}if(A.allowShared===false&&r.isSharedArrayBuffer(e.buffer)){throw n.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."})}return e};n.converters.BufferSource=function(e,A={}){if(r.isAnyArrayBuffer(e)){return n.converters.ArrayBuffer(e,A)}if(r.isTypedArray(e)){return n.converters.TypedArray(e,e.constructor)}if(r.isDataView(e)){return n.converters.DataView(e,A)}throw new TypeError(`Could not convert ${e} to a BufferSource.`)};n.converters["sequence<ByteString>"]=n.sequenceConverter(n.converters.ByteString);n.converters["sequence<sequence<ByteString>>"]=n.sequenceConverter(n.converters["sequence<ByteString>"]);n.converters["record<ByteString, ByteString>"]=n.recordConverter(n.converters.ByteString,n.converters.ByteString);e.exports={webidl:n}},396:e=>{function getEncoding(e){if(!e){return"failure"}switch(e.trim().toLowerCase()){case"unicode-1-1-utf-8":case"unicode11utf8":case"unicode20utf8":case"utf-8":case"utf8":case"x-unicode20utf8":return"UTF-8";case"866":case"cp866":case"csibm866":case"ibm866":return"IBM866";case"csisolatin2":case"iso-8859-2":case"iso-ir-101":case"iso8859-2":case"iso88592":case"iso_8859-2":case"iso_8859-2:1987":case"l2":case"latin2":return"ISO-8859-2";case"csisolatin3":case"iso-8859-3":case"iso-ir-109":case"iso8859-3":case"iso88593":case"iso_8859-3":case"iso_8859-3:1988":case"l3":case"latin3":return"ISO-8859-3";case"csisolatin4":case"iso-8859-4":case"iso-ir-110":case"iso8859-4":case"iso88594":case"iso_8859-4":case"iso_8859-4:1988":case"l4":case"latin4":return"ISO-8859-4";case"csisolatincyrillic":case"cyrillic":case"iso-8859-5":case"iso-ir-144":case"iso8859-5":case"iso88595":case"iso_8859-5":case"iso_8859-5:1988":return"ISO-8859-5";case"arabic":case"asmo-708":case"csiso88596e":case"csiso88596i":case"csisolatinarabic":case"ecma-114":case"iso-8859-6":case"iso-8859-6-e":case"iso-8859-6-i":case"iso-ir-127":case"iso8859-6":case"iso88596":case"iso_8859-6":case"iso_8859-6:1987":return"ISO-8859-6";case"csisolatingreek":case"ecma-118":case"elot_928":case"greek":case"greek8":case"iso-8859-7":case"iso-ir-126":case"iso8859-7":case"iso88597":case"iso_8859-7":case"iso_8859-7:1987":case"sun_eu_greek":return"ISO-8859-7";case"csiso88598e":case"csisolatinhebrew":case"hebrew":case"iso-8859-8":case"iso-8859-8-e":case"iso-ir-138":case"iso8859-8":case"iso88598":case"iso_8859-8":case"iso_8859-8:1988":case"visual":return"ISO-8859-8";case"csiso88598i":case"iso-8859-8-i":case"logical":return"ISO-8859-8-I";case"csisolatin6":case"iso-8859-10":case"iso-ir-157":case"iso8859-10":case"iso885910":case"l6":case"latin6":return"ISO-8859-10";case"iso-8859-13":case"iso8859-13":case"iso885913":return"ISO-8859-13";case"iso-8859-14":case"iso8859-14":case"iso885914":return"ISO-8859-14";case"csisolatin9":case"iso-8859-15":case"iso8859-15":case"iso885915":case"iso_8859-15":case"l9":return"ISO-8859-15";case"iso-8859-16":return"ISO-8859-16";case"cskoi8r":case"koi":case"koi8":case"koi8-r":case"koi8_r":return"KOI8-R";case"koi8-ru":case"koi8-u":return"KOI8-U";case"csmacintosh":case"mac":case"macintosh":case"x-mac-roman":return"macintosh";case"iso-8859-11":case"iso8859-11":case"iso885911":case"tis-620":case"windows-874":return"windows-874";case"cp1250":case"windows-1250":case"x-cp1250":return"windows-1250";case"cp1251":case"windows-1251":case"x-cp1251":return"windows-1251";case"ansi_x3.4-1968":case"ascii":case"cp1252":case"cp819":case"csisolatin1":case"ibm819":case"iso-8859-1":case"iso-ir-100":case"iso8859-1":case"iso88591":case"iso_8859-1":case"iso_8859-1:1987":case"l1":case"latin1":case"us-ascii":case"windows-1252":case"x-cp1252":return"windows-1252";case"cp1253":case"windows-1253":case"x-cp1253":return"windows-1253";case"cp1254":case"csisolatin5":case"iso-8859-9":case"iso-ir-148":case"iso8859-9":case"iso88599":case"iso_8859-9":case"iso_8859-9:1989":case"l5":case"latin5":case"windows-1254":case"x-cp1254":return"windows-1254";case"cp1255":case"windows-1255":case"x-cp1255":return"windows-1255";case"cp1256":case"windows-1256":case"x-cp1256":return"windows-1256";case"cp1257":case"windows-1257":case"x-cp1257":return"windows-1257";case"cp1258":case"windows-1258":case"x-cp1258":return"windows-1258";case"x-mac-cyrillic":case"x-mac-ukrainian":return"x-mac-cyrillic";case"chinese":case"csgb2312":case"csiso58gb231280":case"gb2312":case"gb_2312":case"gb_2312-80":case"gbk":case"iso-ir-58":case"x-gbk":return"GBK";case"gb18030":return"gb18030";case"big5":case"big5-hkscs":case"cn-big5":case"csbig5":case"x-x-big5":return"Big5";case"cseucpkdfmtjapanese":case"euc-jp":case"x-euc-jp":return"EUC-JP";case"csiso2022jp":case"iso-2022-jp":return"ISO-2022-JP";case"csshiftjis":case"ms932":case"ms_kanji":case"shift-jis":case"shift_jis":case"sjis":case"windows-31j":case"x-sjis":return"Shift_JIS";case"cseuckr":case"csksc56011987":case"euc-kr":case"iso-ir-149":case"korean":case"ks_c_5601-1987":case"ks_c_5601-1989":case"ksc5601":case"ksc_5601":case"windows-949":return"EUC-KR";case"csiso2022kr":case"hz-gb-2312":case"iso-2022-cn":case"iso-2022-cn-ext":case"iso-2022-kr":case"replacement":return"replacement";case"unicodefffe":case"utf-16be":return"UTF-16BE";case"csunicode":case"iso-10646-ucs-2":case"ucs-2":case"unicode":case"unicodefeff":case"utf-16":case"utf-16le":return"UTF-16LE";case"x-user-defined":return"x-user-defined";default:return"failure"}}e.exports={getEncoding:getEncoding}},2160:(e,A,t)=>{const{staticPropertyDescriptors:r,readOperation:s,fireAProgressEvent:o}=t(165);const{kState:n,kError:i,kResult:a,kEvents:c,kAborted:g}=t(6812);const{webidl:E}=t(4222);const{kEnumerableProperty:l}=t(3440);class FileReader extends EventTarget{constructor(){super();this[n]="empty";this[a]=null;this[i]=null;this[c]={loadend:null,error:null,abort:null,load:null,progress:null,loadstart:null}}readAsArrayBuffer(e){E.brandCheck(this,FileReader);E.argumentLengthCheck(arguments,1,{header:"FileReader.readAsArrayBuffer"});e=E.converters.Blob(e,{strict:false});s(this,e,"ArrayBuffer")}readAsBinaryString(e){E.brandCheck(this,FileReader);E.argumentLengthCheck(arguments,1,{header:"FileReader.readAsBinaryString"});e=E.converters.Blob(e,{strict:false});s(this,e,"BinaryString")}readAsText(e,A=undefined){E.brandCheck(this,FileReader);E.argumentLengthCheck(arguments,1,{header:"FileReader.readAsText"});e=E.converters.Blob(e,{strict:false});if(A!==undefined){A=E.converters.DOMString(A)}s(this,e,"Text",A)}readAsDataURL(e){E.brandCheck(this,FileReader);E.argumentLengthCheck(arguments,1,{header:"FileReader.readAsDataURL"});e=E.converters.Blob(e,{strict:false});s(this,e,"DataURL")}abort(){if(this[n]==="empty"||this[n]==="done"){this[a]=null;return}if(this[n]==="loading"){this[n]="done";this[a]=null}this[g]=true;o("abort",this);if(this[n]!=="loading"){o("loadend",this)}}get readyState(){E.brandCheck(this,FileReader);switch(this[n]){case"empty":return this.EMPTY;case"loading":return this.LOADING;case"done":return this.DONE}}get result(){E.brandCheck(this,FileReader);return this[a]}get error(){E.brandCheck(this,FileReader);return this[i]}get onloadend(){E.brandCheck(this,FileReader);return this[c].loadend}set onloadend(e){E.brandCheck(this,FileReader);if(this[c].loadend){this.removeEventListener("loadend",this[c].loadend)}if(typeof e==="function"){this[c].loadend=e;this.addEventListener("loadend",e)}else{this[c].loadend=null}}get onerror(){E.brandCheck(this,FileReader);return this[c].error}set onerror(e){E.brandCheck(this,FileReader);if(this[c].error){this.removeEventListener("error",this[c].error)}if(typeof e==="function"){this[c].error=e;this.addEventListener("error",e)}else{this[c].error=null}}get onloadstart(){E.brandCheck(this,FileReader);return this[c].loadstart}set onloadstart(e){E.brandCheck(this,FileReader);if(this[c].loadstart){this.removeEventListener("loadstart",this[c].loadstart)}if(typeof e==="function"){this[c].loadstart=e;this.addEventListener("loadstart",e)}else{this[c].loadstart=null}}get onprogress(){E.brandCheck(this,FileReader);return this[c].progress}set onprogress(e){E.brandCheck(this,FileReader);if(this[c].progress){this.removeEventListener("progress",this[c].progress)}if(typeof e==="function"){this[c].progress=e;this.addEventListener("progress",e)}else{this[c].progress=null}}get onload(){E.brandCheck(this,FileReader);return this[c].load}set onload(e){E.brandCheck(this,FileReader);if(this[c].load){this.removeEventListener("load",this[c].load)}if(typeof e==="function"){this[c].load=e;this.addEventListener("load",e)}else{this[c].load=null}}get onabort(){E.brandCheck(this,FileReader);return this[c].abort}set onabort(e){E.brandCheck(this,FileReader);if(this[c].abort){this.removeEventListener("abort",this[c].abort)}if(typeof e==="function"){this[c].abort=e;this.addEventListener("abort",e)}else{this[c].abort=null}}}FileReader.EMPTY=FileReader.prototype.EMPTY=0;FileReader.LOADING=FileReader.prototype.LOADING=1;FileReader.DONE=FileReader.prototype.DONE=2;Object.defineProperties(FileReader.prototype,{EMPTY:r,LOADING:r,DONE:r,readAsArrayBuffer:l,readAsBinaryString:l,readAsText:l,readAsDataURL:l,abort:l,readyState:l,result:l,error:l,onloadstart:l,onprogress:l,onload:l,onabort:l,onerror:l,onloadend:l,[Symbol.toStringTag]:{value:"FileReader",writable:false,enumerable:false,configurable:true}});Object.defineProperties(FileReader,{EMPTY:r,LOADING:r,DONE:r});e.exports={FileReader:FileReader}},5976:(e,A,t)=>{const{webidl:r}=t(4222);const s=Symbol("ProgressEvent state");class ProgressEvent extends Event{constructor(e,A={}){e=r.converters.DOMString(e);A=r.converters.ProgressEventInit(A??{});super(e,A);this[s]={lengthComputable:A.lengthComputable,loaded:A.loaded,total:A.total}}get lengthComputable(){r.brandCheck(this,ProgressEvent);return this[s].lengthComputable}get loaded(){r.brandCheck(this,ProgressEvent);return this[s].loaded}get total(){r.brandCheck(this,ProgressEvent);return this[s].total}}r.converters.ProgressEventInit=r.dictionaryConverter([{key:"lengthComputable",converter:r.converters.boolean,defaultValue:false},{key:"loaded",converter:r.converters["unsigned long long"],defaultValue:0},{key:"total",converter:r.converters["unsigned long long"],defaultValue:0},{key:"bubbles",converter:r.converters.boolean,defaultValue:false},{key:"cancelable",converter:r.converters.boolean,defaultValue:false},{key:"composed",converter:r.converters.boolean,defaultValue:false}]);e.exports={ProgressEvent:ProgressEvent}},6812:e=>{e.exports={kState:Symbol("FileReader state"),kResult:Symbol("FileReader result"),kError:Symbol("FileReader error"),kLastProgressEventFired:Symbol("FileReader last progress event fired timestamp"),kEvents:Symbol("FileReader events"),kAborted:Symbol("FileReader aborted")}},165:(e,A,t)=>{const{kState:r,kError:s,kResult:o,kAborted:n,kLastProgressEventFired:i}=t(6812);const{ProgressEvent:a}=t(5976);const{getEncoding:c}=t(396);const{DOMException:g}=t(7326);const{serializeAMimeType:E,parseMIMEType:l}=t(4322);const{types:u}=t(9023);const{StringDecoder:h}=t(3193);const{btoa:Q}=t(181);const C={enumerable:true,writable:false,configurable:false};function readOperation(e,A,t,a){if(e[r]==="loading"){throw new g("Invalid state","InvalidStateError")}e[r]="loading";e[o]=null;e[s]=null;const c=A.stream();const E=c.getReader();const l=[];let h=E.read();let Q=true;(async()=>{while(!e[n]){try{const{done:c,value:g}=await h;if(Q&&!e[n]){queueMicrotask((()=>{fireAProgressEvent("loadstart",e)}))}Q=false;if(!c&&u.isUint8Array(g)){l.push(g);if((e[i]===undefined||Date.now()-e[i]>=50)&&!e[n]){e[i]=Date.now();queueMicrotask((()=>{fireAProgressEvent("progress",e)}))}h=E.read()}else if(c){queueMicrotask((()=>{e[r]="done";try{const r=packageData(l,t,A.type,a);if(e[n]){return}e[o]=r;fireAProgressEvent("load",e)}catch(A){e[s]=A;fireAProgressEvent("error",e)}if(e[r]!=="loading"){fireAProgressEvent("loadend",e)}}));break}}catch(A){if(e[n]){return}queueMicrotask((()=>{e[r]="done";e[s]=A;fireAProgressEvent("error",e);if(e[r]!=="loading"){fireAProgressEvent("loadend",e)}}));break}}})()}function fireAProgressEvent(e,A){const t=new a(e,{bubbles:false,cancelable:false});A.dispatchEvent(t)}function packageData(e,A,t,r){switch(A){case"DataURL":{let A="data:";const r=l(t||"application/octet-stream");if(r!=="failure"){A+=E(r)}A+=";base64,";const s=new h("latin1");for(const t of e){A+=Q(s.write(t))}A+=Q(s.end());return A}case"Text":{let A="failure";if(r){A=c(r)}if(A==="failure"&&t){const e=l(t);if(e!=="failure"){A=c(e.parameters.get("charset"))}}if(A==="failure"){A="UTF-8"}return decode(e,A)}case"ArrayBuffer":{const A=combineByteSequences(e);return A.buffer}case"BinaryString":{let A="";const t=new h("latin1");for(const r of e){A+=t.write(r)}A+=t.end();return A}}}function decode(e,A){const t=combineByteSequences(e);const r=BOMSniffing(t);let s=0;if(r!==null){A=r;s=r==="UTF-8"?3:2}const o=t.slice(s);return new TextDecoder(A).decode(o)}function BOMSniffing(e){const[A,t,r]=e;if(A===239&&t===187&&r===191){return"UTF-8"}else if(A===254&&t===255){return"UTF-16BE"}else if(A===255&&t===254){return"UTF-16LE"}return null}function combineByteSequences(e){const A=e.reduce(((e,A)=>e+A.byteLength),0);let t=0;return e.reduce(((e,A)=>{e.set(A,t);t+=A.byteLength;return e}),new Uint8Array(A))}e.exports={staticPropertyDescriptors:C,readOperation:readOperation,fireAProgressEvent:fireAProgressEvent}},2581:(e,A,t)=>{const r=Symbol.for("undici.globalDispatcher.1");const{InvalidArgumentError:s}=t(8707);const o=t(9965);if(getGlobalDispatcher()===undefined){setGlobalDispatcher(new o)}function setGlobalDispatcher(e){if(!e||typeof e.dispatch!=="function"){throw new s("Argument agent must implement Agent")}Object.defineProperty(globalThis,r,{value:e,writable:true,enumerable:false,configurable:false})}function getGlobalDispatcher(){return globalThis[r]}e.exports={setGlobalDispatcher:setGlobalDispatcher,getGlobalDispatcher:getGlobalDispatcher}},8840:e=>{e.exports=class DecoratorHandler{constructor(e){this.handler=e}onConnect(...e){return this.handler.onConnect(...e)}onError(...e){return this.handler.onError(...e)}onUpgrade(...e){return this.handler.onUpgrade(...e)}onHeaders(...e){return this.handler.onHeaders(...e)}onData(...e){return this.handler.onData(...e)}onComplete(...e){return this.handler.onComplete(...e)}onBodySent(...e){return this.handler.onBodySent(...e)}}},8299:(e,A,t)=>{const r=t(3440);const{kBodyUsed:s}=t(6443);const o=t(2613);const{InvalidArgumentError:n}=t(8707);const i=t(4434);const a=[300,301,302,303,307,308];const c=Symbol("body");class BodyAsyncIterable{constructor(e){this[c]=e;this[s]=false}async*[Symbol.asyncIterator](){o(!this[s],"disturbed");this[s]=true;yield*this[c]}}class RedirectHandler{constructor(e,A,t,a){if(A!=null&&(!Number.isInteger(A)||A<0)){throw new n("maxRedirections must be a positive number")}r.validateHandler(a,t.method,t.upgrade);this.dispatch=e;this.location=null;this.abort=null;this.opts={...t,maxRedirections:0};this.maxRedirections=A;this.handler=a;this.history=[];if(r.isStream(this.opts.body)){if(r.bodyLength(this.opts.body)===0){this.opts.body.on("data",(function(){o(false)}))}if(typeof this.opts.body.readableDidRead!=="boolean"){this.opts.body[s]=false;i.prototype.on.call(this.opts.body,"data",(function(){this[s]=true}))}}else if(this.opts.body&&typeof this.opts.body.pipeTo==="function"){this.opts.body=new BodyAsyncIterable(this.opts.body)}else if(this.opts.body&&typeof this.opts.body!=="string"&&!ArrayBuffer.isView(this.opts.body)&&r.isIterable(this.opts.body)){this.opts.body=new BodyAsyncIterable(this.opts.body)}}onConnect(e){this.abort=e;this.handler.onConnect(e,{history:this.history})}onUpgrade(e,A,t){this.handler.onUpgrade(e,A,t)}onError(e){this.handler.onError(e)}onHeaders(e,A,t,s){this.location=this.history.length>=this.maxRedirections||r.isDisturbed(this.opts.body)?null:parseLocation(e,A);if(this.opts.origin){this.history.push(new URL(this.opts.path,this.opts.origin))}if(!this.location){return this.handler.onHeaders(e,A,t,s)}const{origin:o,pathname:n,search:i}=r.parseURL(new URL(this.location,this.opts.origin&&new URL(this.opts.path,this.opts.origin)));const a=i?`${n}${i}`:n;this.opts.headers=cleanRequestHeaders(this.opts.headers,e===303,this.opts.origin!==o);this.opts.path=a;this.opts.origin=o;this.opts.maxRedirections=0;this.opts.query=null;if(e===303&&this.opts.method!=="HEAD"){this.opts.method="GET";this.opts.body=null}}onData(e){if(this.location){}else{return this.handler.onData(e)}}onComplete(e){if(this.location){this.location=null;this.abort=null;this.dispatch(this.opts,this)}else{this.handler.onComplete(e)}}onBodySent(e){if(this.handler.onBodySent){this.handler.onBodySent(e)}}}function parseLocation(e,A){if(a.indexOf(e)===-1){return null}for(let e=0;e<A.length;e+=2){if(A[e].toString().toLowerCase()==="location"){return A[e+1]}}}function shouldRemoveHeader(e,A,t){if(e.length===4){return r.headerNameToString(e)==="host"}if(A&&r.headerNameToString(e).startsWith("content-")){return true}if(t&&(e.length===13||e.length===6||e.length===19)){const A=r.headerNameToString(e);return A==="authorization"||A==="cookie"||A==="proxy-authorization"}return false}function cleanRequestHeaders(e,A,t){const r=[];if(Array.isArray(e)){for(let s=0;s<e.length;s+=2){if(!shouldRemoveHeader(e[s],A,t)){r.push(e[s],e[s+1])}}}else if(e&&typeof e==="object"){for(const s of Object.keys(e)){if(!shouldRemoveHeader(s,A,t)){r.push(s,e[s])}}}else{o(e==null,"headers must be an object or an array")}return r}e.exports=RedirectHandler},3573:(e,A,t)=>{const r=t(2613);const{kRetryHandlerDefaultRetry:s}=t(6443);const{RequestRetryError:o}=t(8707);const{isDisturbed:n,parseHeaders:i,parseRangeHeader:a}=t(3440);function calculateRetryAfterHeader(e){const A=Date.now();const t=new Date(e).getTime()-A;return t}class RetryHandler{constructor(e,A){const{retryOptions:t,...r}=e;const{retry:o,maxRetries:n,maxTimeout:i,minTimeout:a,timeoutFactor:c,methods:g,errorCodes:E,retryAfter:l,statusCodes:u}=t??{};this.dispatch=A.dispatch;this.handler=A.handler;this.opts=r;this.abort=null;this.aborted=false;this.retryOpts={retry:o??RetryHandler[s],retryAfter:l??true,maxTimeout:i??30*1e3,timeout:a??500,timeoutFactor:c??2,maxRetries:n??5,methods:g??["GET","HEAD","OPTIONS","PUT","DELETE","TRACE"],statusCodes:u??[500,502,503,504,429],errorCodes:E??["ECONNRESET","ECONNREFUSED","ENOTFOUND","ENETDOWN","ENETUNREACH","EHOSTDOWN","EHOSTUNREACH","EPIPE"]};this.retryCount=0;this.start=0;this.end=null;this.etag=null;this.resume=null;this.handler.onConnect((e=>{this.aborted=true;if(this.abort){this.abort(e)}else{this.reason=e}}))}onRequestSent(){if(this.handler.onRequestSent){this.handler.onRequestSent()}}onUpgrade(e,A,t){if(this.handler.onUpgrade){this.handler.onUpgrade(e,A,t)}}onConnect(e){if(this.aborted){e(this.reason)}else{this.abort=e}}onBodySent(e){if(this.handler.onBodySent)return this.handler.onBodySent(e)}static[s](e,{state:A,opts:t},r){const{statusCode:s,code:o,headers:n}=e;const{method:i,retryOptions:a}=t;const{maxRetries:c,timeout:g,maxTimeout:E,timeoutFactor:l,statusCodes:u,errorCodes:h,methods:Q}=a;let{counter:C,currentTimeout:B}=A;B=B!=null&&B>0?B:g;if(o&&o!=="UND_ERR_REQ_RETRY"&&o!=="UND_ERR_SOCKET"&&!h.includes(o)){r(e);return}if(Array.isArray(Q)&&!Q.includes(i)){r(e);return}if(s!=null&&Array.isArray(u)&&!u.includes(s)){r(e);return}if(C>c){r(e);return}let I=n!=null&&n["retry-after"];if(I){I=Number(I);I=isNaN(I)?calculateRetryAfterHeader(I):I*1e3}const d=I>0?Math.min(I,E):Math.min(B*l**C,E);A.currentTimeout=d;setTimeout((()=>r(null)),d)}onHeaders(e,A,t,s){const n=i(A);this.retryCount+=1;if(e>=300){this.abort(new o("Request failed",e,{headers:n,count:this.retryCount}));return false}if(this.resume!=null){this.resume=null;if(e!==206){return true}const A=a(n["content-range"]);if(!A){this.abort(new o("Content-Range mismatch",e,{headers:n,count:this.retryCount}));return false}if(this.etag!=null&&this.etag!==n.etag){this.abort(new o("ETag mismatch",e,{headers:n,count:this.retryCount}));return false}const{start:s,size:i,end:c=i}=A;r(this.start===s,"content-range mismatch");r(this.end==null||this.end===c,"content-range mismatch");this.resume=t;return true}if(this.end==null){if(e===206){const o=a(n["content-range"]);if(o==null){return this.handler.onHeaders(e,A,t,s)}const{start:i,size:c,end:g=c}=o;r(i!=null&&Number.isFinite(i)&&this.start!==i,"content-range mismatch");r(Number.isFinite(i));r(g!=null&&Number.isFinite(g)&&this.end!==g,"invalid content-length");this.start=i;this.end=g}if(this.end==null){const e=n["content-length"];this.end=e!=null?Number(e):null}r(Number.isFinite(this.start));r(this.end==null||Number.isFinite(this.end),"invalid content-length");this.resume=t;this.etag=n.etag!=null?n.etag:null;return this.handler.onHeaders(e,A,t,s)}const c=new o("Request failed",e,{headers:n,count:this.retryCount});this.abort(c);return false}onData(e){this.start+=e.length;return this.handler.onData(e)}onComplete(e){this.retryCount=0;return this.handler.onComplete(e)}onError(e){if(this.aborted||n(this.opts.body)){return this.handler.onError(e)}this.retryOpts.retry(e,{state:{counter:this.retryCount++,currentTimeout:this.retryAfter},opts:{retryOptions:this.retryOpts,...this.opts}},onRetry.bind(this));function onRetry(e){if(e!=null||this.aborted||n(this.opts.body)){return this.handler.onError(e)}if(this.start!==0){this.opts={...this.opts,headers:{...this.opts.headers,range:`bytes=${this.start}-${this.end??""}`}}}try{this.dispatch(this.opts,this)}catch(e){this.handler.onError(e)}}}}e.exports=RetryHandler},4415:(e,A,t)=>{const r=t(8299);function createRedirectInterceptor({maxRedirections:e}){return A=>function Intercept(t,s){const{maxRedirections:o=e}=t;if(!o){return A(t,s)}const n=new r(A,o,t,s);t={...t,maxRedirections:0};return A(t,n)}}e.exports=createRedirectInterceptor},2824:(e,A,t)=>{Object.defineProperty(A,"__esModule",{value:true});A.SPECIAL_HEADERS=A.HEADER_STATE=A.MINOR=A.MAJOR=A.CONNECTION_TOKEN_CHARS=A.HEADER_CHARS=A.TOKEN=A.STRICT_TOKEN=A.HEX=A.URL_CHAR=A.STRICT_URL_CHAR=A.USERINFO_CHARS=A.MARK=A.ALPHANUM=A.NUM=A.HEX_MAP=A.NUM_MAP=A.ALPHA=A.FINISH=A.H_METHOD_MAP=A.METHOD_MAP=A.METHODS_RTSP=A.METHODS_ICE=A.METHODS_HTTP=A.METHODS=A.LENIENT_FLAGS=A.FLAGS=A.TYPE=A.ERROR=void 0;const r=t(172);var s;(function(e){e[e["OK"]=0]="OK";e[e["INTERNAL"]=1]="INTERNAL";e[e["STRICT"]=2]="STRICT";e[e["LF_EXPECTED"]=3]="LF_EXPECTED";e[e["UNEXPECTED_CONTENT_LENGTH"]=4]="UNEXPECTED_CONTENT_LENGTH";e[e["CLOSED_CONNECTION"]=5]="CLOSED_CONNECTION";e[e["INVALID_METHOD"]=6]="INVALID_METHOD";e[e["INVALID_URL"]=7]="INVALID_URL";e[e["INVALID_CONSTANT"]=8]="INVALID_CONSTANT";e[e["INVALID_VERSION"]=9]="INVALID_VERSION";e[e["INVALID_HEADER_TOKEN"]=10]="INVALID_HEADER_TOKEN";e[e["INVALID_CONTENT_LENGTH"]=11]="INVALID_CONTENT_LENGTH";e[e["INVALID_CHUNK_SIZE"]=12]="INVALID_CHUNK_SIZE";e[e["INVALID_STATUS"]=13]="INVALID_STATUS";e[e["INVALID_EOF_STATE"]=14]="INVALID_EOF_STATE";e[e["INVALID_TRANSFER_ENCODING"]=15]="INVALID_TRANSFER_ENCODING";e[e["CB_MESSAGE_BEGIN"]=16]="CB_MESSAGE_BEGIN";e[e["CB_HEADERS_COMPLETE"]=17]="CB_HEADERS_COMPLETE";e[e["CB_MESSAGE_COMPLETE"]=18]="CB_MESSAGE_COMPLETE";e[e["CB_CHUNK_HEADER"]=19]="CB_CHUNK_HEADER";e[e["CB_CHUNK_COMPLETE"]=20]="CB_CHUNK_COMPLETE";e[e["PAUSED"]=21]="PAUSED";e[e["PAUSED_UPGRADE"]=22]="PAUSED_UPGRADE";e[e["PAUSED_H2_UPGRADE"]=23]="PAUSED_H2_UPGRADE";e[e["USER"]=24]="USER"})(s=A.ERROR||(A.ERROR={}));var o;(function(e){e[e["BOTH"]=0]="BOTH";e[e["REQUEST"]=1]="REQUEST";e[e["RESPONSE"]=2]="RESPONSE"})(o=A.TYPE||(A.TYPE={}));var n;(function(e){e[e["CONNECTION_KEEP_ALIVE"]=1]="CONNECTION_KEEP_ALIVE";e[e["CONNECTION_CLOSE"]=2]="CONNECTION_CLOSE";e[e["CONNECTION_UPGRADE"]=4]="CONNECTION_UPGRADE";e[e["CHUNKED"]=8]="CHUNKED";e[e["UPGRADE"]=16]="UPGRADE";e[e["CONTENT_LENGTH"]=32]="CONTENT_LENGTH";e[e["SKIPBODY"]=64]="SKIPBODY";e[e["TRAILING"]=128]="TRAILING";e[e["TRANSFER_ENCODING"]=512]="TRANSFER_ENCODING"})(n=A.FLAGS||(A.FLAGS={}));var i;(function(e){e[e["HEADERS"]=1]="HEADERS";e[e["CHUNKED_LENGTH"]=2]="CHUNKED_LENGTH";e[e["KEEP_ALIVE"]=4]="KEEP_ALIVE"})(i=A.LENIENT_FLAGS||(A.LENIENT_FLAGS={}));var a;(function(e){e[e["DELETE"]=0]="DELETE";e[e["GET"]=1]="GET";e[e["HEAD"]=2]="HEAD";e[e["POST"]=3]="POST";e[e["PUT"]=4]="PUT";e[e["CONNECT"]=5]="CONNECT";e[e["OPTIONS"]=6]="OPTIONS";e[e["TRACE"]=7]="TRACE";e[e["COPY"]=8]="COPY";e[e["LOCK"]=9]="LOCK";e[e["MKCOL"]=10]="MKCOL";e[e["MOVE"]=11]="MOVE";e[e["PROPFIND"]=12]="PROPFIND";e[e["PROPPATCH"]=13]="PROPPATCH";e[e["SEARCH"]=14]="SEARCH";e[e["UNLOCK"]=15]="UNLOCK";e[e["BIND"]=16]="BIND";e[e["REBIND"]=17]="REBIND";e[e["UNBIND"]=18]="UNBIND";e[e["ACL"]=19]="ACL";e[e["REPORT"]=20]="REPORT";e[e["MKACTIVITY"]=21]="MKACTIVITY";e[e["CHECKOUT"]=22]="CHECKOUT";e[e["MERGE"]=23]="MERGE";e[e["M-SEARCH"]=24]="M-SEARCH";e[e["NOTIFY"]=25]="NOTIFY";e[e["SUBSCRIBE"]=26]="SUBSCRIBE";e[e["UNSUBSCRIBE"]=27]="UNSUBSCRIBE";e[e["PATCH"]=28]="PATCH";e[e["PURGE"]=29]="PURGE";e[e["MKCALENDAR"]=30]="MKCALENDAR";e[e["LINK"]=31]="LINK";e[e["UNLINK"]=32]="UNLINK";e[e["SOURCE"]=33]="SOURCE";e[e["PRI"]=34]="PRI";e[e["DESCRIBE"]=35]="DESCRIBE";e[e["ANNOUNCE"]=36]="ANNOUNCE";e[e["SETUP"]=37]="SETUP";e[e["PLAY"]=38]="PLAY";e[e["PAUSE"]=39]="PAUSE";e[e["TEARDOWN"]=40]="TEARDOWN";e[e["GET_PARAMETER"]=41]="GET_PARAMETER";e[e["SET_PARAMETER"]=42]="SET_PARAMETER";e[e["REDIRECT"]=43]="REDIRECT";e[e["RECORD"]=44]="RECORD";e[e["FLUSH"]=45]="FLUSH"})(a=A.METHODS||(A.METHODS={}));A.METHODS_HTTP=[a.DELETE,a.GET,a.HEAD,a.POST,a.PUT,a.CONNECT,a.OPTIONS,a.TRACE,a.COPY,a.LOCK,a.MKCOL,a.MOVE,a.PROPFIND,a.PROPPATCH,a.SEARCH,a.UNLOCK,a.BIND,a.REBIND,a.UNBIND,a.ACL,a.REPORT,a.MKACTIVITY,a.CHECKOUT,a.MERGE,a["M-SEARCH"],a.NOTIFY,a.SUBSCRIBE,a.UNSUBSCRIBE,a.PATCH,a.PURGE,a.MKCALENDAR,a.LINK,a.UNLINK,a.PRI,a.SOURCE];A.METHODS_ICE=[a.SOURCE];A.METHODS_RTSP=[a.OPTIONS,a.DESCRIBE,a.ANNOUNCE,a.SETUP,a.PLAY,a.PAUSE,a.TEARDOWN,a.GET_PARAMETER,a.SET_PARAMETER,a.REDIRECT,a.RECORD,a.FLUSH,a.GET,a.POST];A.METHOD_MAP=r.enumToMap(a);A.H_METHOD_MAP={};Object.keys(A.METHOD_MAP).forEach((e=>{if(/^H/.test(e)){A.H_METHOD_MAP[e]=A.METHOD_MAP[e]}}));var c;(function(e){e[e["SAFE"]=0]="SAFE";e[e["SAFE_WITH_CB"]=1]="SAFE_WITH_CB";e[e["UNSAFE"]=2]="UNSAFE"})(c=A.FINISH||(A.FINISH={}));A.ALPHA=[];for(let e="A".charCodeAt(0);e<="Z".charCodeAt(0);e++){A.ALPHA.push(String.fromCharCode(e));A.ALPHA.push(String.fromCharCode(e+32))}A.NUM_MAP={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9};A.HEX_MAP={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15};A.NUM=["0","1","2","3","4","5","6","7","8","9"];A.ALPHANUM=A.ALPHA.concat(A.NUM);A.MARK=["-","_",".","!","~","*","'","(",")"];A.USERINFO_CHARS=A.ALPHANUM.concat(A.MARK).concat(["%",";",":","&","=","+","$",","]);A.STRICT_URL_CHAR=["!",'"',"$","%","&","'","(",")","*","+",",","-",".","/",":",";","<","=",">","@","[","\\","]","^","_","`","{","|","}","~"].concat(A.ALPHANUM);A.URL_CHAR=A.STRICT_URL_CHAR.concat(["\t","\f"]);for(let e=128;e<=255;e++){A.URL_CHAR.push(e)}A.HEX=A.NUM.concat(["a","b","c","d","e","f","A","B","C","D","E","F"]);A.STRICT_TOKEN=["!","#","$","%","&","'","*","+","-",".","^","_","`","|","~"].concat(A.ALPHANUM);A.TOKEN=A.STRICT_TOKEN.concat([" "]);A.HEADER_CHARS=["\t"];for(let e=32;e<=255;e++){if(e!==127){A.HEADER_CHARS.push(e)}}A.CONNECTION_TOKEN_CHARS=A.HEADER_CHARS.filter((e=>e!==44));A.MAJOR=A.NUM_MAP;A.MINOR=A.MAJOR;var g;(function(e){e[e["GENERAL"]=0]="GENERAL";e[e["CONNECTION"]=1]="CONNECTION";e[e["CONTENT_LENGTH"]=2]="CONTENT_LENGTH";e[e["TRANSFER_ENCODING"]=3]="TRANSFER_ENCODING";e[e["UPGRADE"]=4]="UPGRADE";e[e["CONNECTION_KEEP_ALIVE"]=5]="CONNECTION_KEEP_ALIVE";e[e["CONNECTION_CLOSE"]=6]="CONNECTION_CLOSE";e[e["CONNECTION_UPGRADE"]=7]="CONNECTION_UPGRADE";e[e["TRANSFER_ENCODING_CHUNKED"]=8]="TRANSFER_ENCODING_CHUNKED"})(g=A.HEADER_STATE||(A.HEADER_STATE={}));A.SPECIAL_HEADERS={connection:g.CONNECTION,"content-length":g.CONTENT_LENGTH,"proxy-connection":g.CONNECTION,"transfer-encoding":g.TRANSFER_ENCODING,upgrade:g.UPGRADE}},3870:e=>{e.exports="AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAwABBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJs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ADcDACAAQShqQgA3AwAgAEEgakIANwMAIABBEGpCADcDACAAQQhqQgA3AwAgAEHdATYCHEEAC3sBAX8CQCAAKAIMIgMNAAJAIAAoAgRFDQAgACABNgIECwJAIAAgASACEMSAgIAAIgMNACAAKAIMDwsgACADNgIcQQAhAyAAKAIEIgFFDQAgACABIAIgACgCCBGBgICAAAAiAUUNACAAIAI2AhQgACABNgIMIAEhAwsgAwvk8wEDDn8DfgR/I4CAgIAAQRBrIgMkgICAgAAgASEEIAEhBSABIQYgASEHIAEhCCABIQkgASEKIAEhCyABIQwgASENIAEhDiABIQ8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgACgCHCIQQX9qDt0B2gEB2QECAwQFBgcICQoLDA0O2AEPENcBERLWARMUFRYXGBkaG+AB3wEcHR7VAR8gISIjJCXUASYnKCkqKyzTAdIBLS7RAdABLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVG2wFHSElKzwHOAUvNAUzMAU1OT1BRUlNUVVZXWFlaW1xdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+f4ABgQGCAYMBhAGFAYYBhwGIAYkB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QAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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FCAAIBA2AgxBACEQDLIBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxNCyAAQdMANgIcIAAgATYCFCAAIBA2AgxBACEQDLEBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxRCyAAQeUANgIcIAAgATYCFCAAIBA2AgxBACEQDLABCyAAQQA2AhwgACABNgIUIABBxoqAgAA2AhAgAEEHNgIMQQAhEAyvAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHSADYCHCAAIAE2AhQgACAQNgIMQQAhEAyuAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHTADYCHCAAIAE2AhQgACAQNgIMQQAhEAytAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMTQsgAEHlADYCHCAAIAE2AhQgACAQNgIMQQAhEAysAQsgAEEANgIcIAAgATYCFCAAQdyIgIAANgIQIABBBzYCDEEAIRAMqwELIBBBP0cNASABQQFqIQELQQUhEAyQAQtBACEQIABBADYCHCAAIAE2AhQgAEH9koCAADYCECAAQQc2AgwMqAELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0gA2AhwgACABNgIUIAAgEDYCDEEAIRAMpwELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0wA2AhwgACABNgIUIAAgEDYCDEEAIRAMpgELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEYLIABB5QA2AhwgACABNgIUIAAgEDYCDEEAIRAMpQELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0gA2AhwgACAUNgIUIAAgATYCDEEAIRAMpAELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0wA2AhwgACAUNgIUIAAgATYCDEEAIRAMowELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDEMLIABB5QA2AhwgACAU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YWdlX2JlZ2luYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlYCBjYWxsYmFjayBlcnJvcgBgb25fc3RhdHVzX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdmVyc2lvbl9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3VybF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWVzc2FnZV9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX21ldGhvZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lYCBjYWxsYmFjayBlcnJvcgBVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNlcnZlcgBJbnZhbGlkIGhlYWRlciB2YWx1ZSBjaGFyAEludmFsaWQgaGVhZGVyIGZpZWxkIGNoYXIAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl92ZXJzaW9uAEludmFsaWQgbWlub3IgdmVyc2lvbgBJbnZhbGlkIG1ham9yIHZlcnNpb24ARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgdmVyc2lvbgBFeHBlY3RlZCBDUkxGIGFmdGVyIHZlcnNpb24ASW52YWxpZCBIVFRQIHZlcnNpb24ASW52YWxpZCBoZWFkZXIgdG9rZW4AU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl91cmwASW52YWxpZCBjaGFyYWN0ZXJzIGluIHVybABVbmV4cGVjdGVkIHN0YXJ0IGNoYXIgaW4gdXJsAERvdWJsZSBAIGluIHVybABFbXB0eSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXJhY3RlciBpbiBDb250ZW50LUxlbmd0aABEdXBsaWNhdGUgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyIGluIHVybCBwYXRoAENvbnRlbnQtTGVuZ3RoIGNhbid0IGJlIHByZXNlbnQgd2l0aCBUcmFuc2Zlci1FbmNvZGluZwBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBzaXplAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX3ZhbHVlAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgdmFsdWUATWlzc2luZyBleHBlY3RlZCBMRiBhZnRlciBoZWFkZXIgdmFsdWUASW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHF1b3RlIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAFBhdXNlZCBieSBvbl9oZWFkZXJzX2NvbXBsZXRlAEludmFsaWQgRU9GIHN0YXRlAG9uX3Jlc2V0IHBhdXNlAG9uX2NodW5rX2hlYWRlciBwYXVzZQBvbl9tZXNzYWdlX2JlZ2luIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZSBwYXVzZQBvbl9zdGF0dXNfY29tcGxldGUgcGF1c2UAb25fdmVyc2lvbl9jb21wbGV0ZSBwYXVzZQBvbl91cmxfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlIHBhdXNlAG9uX21lc3NhZ2VfY29tcGxldGUgcGF1c2UAb25fbWV0aG9kX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fbmFtZSBwYXVzZQBVbmV4cGVjdGVkIHNwYWNlIGFmdGVyIHN0YXJ0IGxpbmUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fbmFtZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIG5hbWUAUGF1c2Ugb24gQ09OTkVDVC9VcGdyYWRlAFBhdXNlIG9uIFBSSS9VcGdyYWRlAEV4cGVjdGVkIEhUVFAvMiBDb25uZWN0aW9uIFByZWZhY2UAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9tZXRob2QARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgbWV0aG9kAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX2ZpZWxkAFBhdXNlZABJbnZhbGlkIHdvcmQgZW5jb3VudGVyZWQASW52YWxpZCBtZXRob2QgZW5jb3VudGVyZWQAVW5leHBlY3RlZCBjaGFyIGluIHVybCBzY2hlbWEAUmVxdWVzdCBoYXMgaW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgAFNXSVRDSF9QUk9YWQBVU0VfUFJPWFkATUtBQ1RJVklUWQBVTlBST0NFU1NBQkxFX0VOVElUWQBDT1BZAE1PVkVEX1BFUk1BTkVOVExZAFRPT19FQVJMWQBOT1RJRlkARkFJTEVEX0RFUEVOREVOQ1kAQkFEX0dBVEVXQVkAUExBWQBQVVQAQ0hFQ0tPVVQAR0FURVdBWV9USU1FT1VUAFJFUVVFU1RfVElNRU9VVABORVRXT1JLX0NPTk5FQ1RfVElNRU9VVABDT05ORUNUSU9OX1RJTUVPVVQATE9HSU5fVElNRU9VVABORVRXT1JLX1JFQURfVElNRU9VVABQT1NUAE1JU0RJUkVDVEVEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfTE9BRF9CQUxBTkNFRF9SRVFVRVNUAEJBRF9SRVFVRVNUAEhUVFBfUkVRVUVTVF9TRU5UX1RPX0hUVFBTX1BPUlQAUkVQT1JUAElNX0FfVEVBUE9UAFJFU0VUX0NPTlRFTlQATk9fQ09OVEVOVABQQVJUSUFMX0NPTlRFTlQASFBFX0lOVkFMSURfQ09OU1RBTlQASFBFX0NCX1JFU0VUAEdFVABIUEVfU1RSSUNUAENPTkZMSUNUAFRFTVBPUkFSWV9SRURJUkVDVABQRVJNQU5FTlRfUkVESVJFQ1QAQ09OTkVDVABNVUxUSV9TVEFUVVMASFBFX0lOVkFMSURfU1RBVFVTAFRPT19NQU5ZX1JFUVVFU1RTAEVBUkxZX0hJTlRTAFVOQVZBSUxBQkxFX0ZPUl9MRUdBTF9SRUFTT05TAE9QVElPTlMAU1dJVENISU5HX1BST1RPQ09MUwBWQVJJQU5UX0FMU09fTkVHT1RJQVRFUwBNVUxUSVBMRV9DSE9JQ0VTAElOVEVSTkFMX1NFUlZFUl9FUlJPUgBXRUJfU0VSVkVSX1VOS05PV05fRVJST1IAUkFJTEdVTl9FUlJPUgBJREVOVElUWV9QUk9WSURFUl9BVVRIRU5USUNBVElPTl9FUlJPUgBTU0xfQ0VSVElGSUNBVEVfRVJST1IASU5WQUxJRF9YX0ZPUldBUkRFRF9GT1IAU0VUX1BBUkFNRVRFUgBHRVRfUEFSQU1FVEVSAEhQRV9VU0VSAFNFRV9PVEhFUgBIUEVfQ0JfQ0hVTktfSEVBREVSAE1LQ0FMRU5EQVIAU0VUVVAAV0VCX1NFUlZFUl9JU19ET1dOAFRFQVJET1dOAEhQRV9DTE9TRURfQ09OTkVDVElPTgBIRVVSSVNUSUNfRVhQSVJBVElPTgBESVNDT05ORUNURURfT1BFUkFUSU9OAE5PTl9BVVRIT1JJVEFUSVZFX0lORk9STUFUSU9OAEhQRV9JTlZBTElEX1ZFUlNJT04ASFBFX0NCX01FU1NBR0VfQkVHSU4AU0lURV9JU19GUk9aRU4ASFBFX0lOVkFMSURfSEVBREVSX1RPS0VOAElOVkFMSURfVE9LRU4ARk9SQklEREVOAEVOSEFOQ0VfWU9VUl9DQUxNAEhQRV9JTlZBTElEX1VSTABCTE9DS0VEX0JZX1BBUkVOVEFMX0NPTlRST0wATUtDT0wAQUNMAEhQRV9JTlRFUk5BTABSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFX1VOT0ZGSUNJQUwASFBFX09LAFVOTElOSwBVTkxPQ0sAUFJJAFJFVFJZX1dJVEgASFBFX0lOVkFMSURfQ09OVEVOVF9MRU5HVEgASFBFX1VORVhQRUNURURfQ09OVEVOVF9MRU5HVEgARkxVU0gAUFJPUFBBVENIAE0tU0VBUkNIAFVSSV9UT09fTE9ORwBQUk9DRVNTSU5HAE1JU0NFTExBTkVPVVNfUEVSU0lTVEVOVF9XQVJOSU5HAE1JU0NFTExBTkVPVVNfV0FSTklORwBIUEVfSU5WQUxJRF9UUkFOU0ZFUl9FTkNPRElORwBFeHBlY3RlZCBDUkxGAEhQRV9JTlZBTElEX0NIVU5LX1NJWkUATU9WRQBDT05USU5VRQBIUEVfQ0JfU1RBVFVTX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJTX0NPTVBMRVRFAEhQRV9DQl9WRVJTSU9OX0NPTVBMRVRFAEhQRV9DQl9VUkxfQ09NUExFVEUASFBFX0NCX0NIVU5LX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX05BTUVfQ09NUExFVEUASFBFX0NCX01FU1NBR0VfQ09NUExFVEUASFBFX0NCX01FVEhPRF9DT01QTEVURQBIUEVfQ0JfSEVBREVSX0ZJRUxEX0NPTVBMRVRFAERFTEVURQBIUEVfSU5WQUxJRF9FT0ZfU1RBVEUASU5WQUxJRF9TU0xfQ0VSVElGSUNBVEUAUEFVU0UATk9fUkVTUE9OU0UAVU5TVVBQT1JURURfTUVESUFfVFlQRQBHT05FAE5PVF9BQ0NFUFRBQkxFAFNFUlZJQ0VfVU5BVkFJTEFCTEUAUkFOR0VfTk9UX1NBVElTRklBQkxFAE9SSUdJTl9JU19VTlJFQUNIQUJMRQBSRVNQT05TRV9JU19TVEFMRQBQVVJHRQBNRVJHRQBSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFAFJFUVVFU1RfSEVBREVSX1RPT19MQVJHRQBQQVlMT0FEX1RPT19MQVJHRQBJTlNVRkZJQ0lFTlRfU1RPUkFHRQBIUEVfUEFVU0VEX1VQR1JBREUASFBFX1BBVVNFRF9IMl9VUEdSQURFAFNPVVJDRQBBTk5PVU5DRQBUUkFDRQBIUEVfVU5FWFBFQ1RFRF9TUEFDRQBERVNDUklCRQBVTlNVQlNDUklCRQBSRUNPUkQASFBFX0lOVkFMSURfTUVUSE9EAE5PVF9GT1VORABQUk9QRklORABVTkJJTkQAUkVCSU5EAFVOQVVUSE9SSVpFRABNRVRIT0RfTk9UX0FMTE9XRUQASFRUUF9WRVJTSU9OX05PVF9TVVBQT1JURUQAQUxSRUFEWV9SRVBPUlRFRABBQ0NFUFRFRABOT1RfSU1QTEVNRU5URUQATE9PUF9ERVRFQ1RFRABIUEVfQ1JfRVhQRUNURUQASFBFX0xGX0VYUEVDVEVEAENSRUFURUQASU1fVVNFRABIUEVfUEFVU0VEAFRJTUVPVVRfT0NDVVJFRABQQVlNRU5UX1JFUVVJUkVEAFBSRUNPTkRJVElPTl9SRVFVSVJFRABQUk9YWV9BVVRIRU5USUNBVElPTl9SRVFVSVJFRABORVRXT1JLX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAExFTkdUSF9SRVFVSVJFRABTU0xfQ0VSVElGSUNBVEVfUkVRVUlSRUQAVVBHUkFERV9SRVFVSVJFRABQQUdFX0VYUElSRUQAUFJFQ09ORElUSU9OX0ZBSUxFRABFWFBFQ1RBVElPTl9GQUlMRUQAUkVWQUxJREFUSU9OX0ZBSUxFRABTU0xfSEFORFNIQUtFX0ZBSUxFRABMT0NLRUQAVFJBTlNGT1JNQVRJT05fQVBQTElFRABOT1RfTU9ESUZJRUQATk9UX0VYVEVOREVEAEJBTkRXSURUSF9MSU1JVF9FWENFRURFRABTSVRFX0lTX09WRVJMT0FERUQASEVBRABFeHBlY3RlZCBIVFRQLwAAXhMAACYTAAAwEAAA8BcAAJ0TAAAVEgAAORcAAPASAAAKEAAAdRIAAK0SAACCEwAATxQAAH8QAACgFQAAIxQAAIkSAACLFAAATRUAANQRAADPFAAAEBgAAMkWAADcFgAAwREAAOAXAAC7FAAAdBQAAHwVAADlFAAACBcAAB8QAABlFQAAoxQAACgVAAACFQAAmRUAACwQAACLGQAATw8AANQOAABqEAAAzhAAAAIXAACJDgAAbhMAABwTAABmFAAAVhcAAMETAADNEwAAbBMAAGgXAABmFwAAXxcAACITAADODwAAaQ4AANgOAABjFgAAyxMAAKoOAAAoFwAAJhcAAMUTAABdFgAA6BEAAGcTAABlEwAA8hYAAHMTAAAdFwAA+RYAAPMRAADPDgAAzhUAAAwSAACzEQAApREAAGEQAAAyFwAAuxMAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIDAgICAgIAAAICAAICAAICAgICAgICAgIABAAAAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAACAAICAgICAAACAgACAgACAgICAgICAgICAAMABAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbG9zZWVlcC1hbGl2ZQAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEBAQEBAQEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBY2h1bmtlZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEAAAEBAAEBAAEBAQEBAQEBAQEAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AAAAAAAAAAAAAAAAAAAByYW5zZmVyLWVuY29kaW5ncGdyYWRlDQoNCg0KU00NCg0KVFRQL0NFL1RTUC8AAAAAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQIAAQMAAAAAAAAAAAAAAAAAAAAAAAAEAQEFAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAAAAQAAAgAAAAAAAAAAAAAAAAAAAAAAAAMEAAAEBAQEBAQEBAQEBAUEBAQEBAQEBAQEBAQABAAGBwQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAABAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAIAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOT1VOQ0VFQ0tPVVRORUNURVRFQ1JJQkVMVVNIRVRFQURTRUFSQ0hSR0VDVElWSVRZTEVOREFSVkVPVElGWVBUSU9OU0NIU0VBWVNUQVRDSEdFT1JESVJFQ1RPUlRSQ0hQQVJBTUVURVJVUkNFQlNDUklCRUFSRE9XTkFDRUlORE5LQ0tVQlNDUklCRUhUVFAvQURUUC8="},3434:e=>{e.exports="AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAwABBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJs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IAH9CwMAIABBMGogAf0LAwAgAEEgaiAB/QsDACAAQd0BNgIcQQALewEBfwJAIAAoAgwiAw0AAkAgACgCBEUNACAAIAE2AgQLAkAgACABIAIQxICAgAAiAw0AIAAoAgwPCyAAIAM2AhxBACEDIAAoAgQiAUUNACAAIAEgAiAAKAIIEYGAgIAAACIBRQ0AIAAgAjYCFCAAIAE2AgwgASEDCyADC+TzAQMOfwN+BH8jgICAgABBEGsiAySAgICAACABIQQgASEFIAEhBiABIQcgASEIIAEhCSABIQogASELIAEhDCABIQ0gASEOIAEhDwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAKAIcIhBBf2oO3QHaAQHZAQIDBAUGBwgJCgsMDQ7YAQ8Q1wEREtYBExQVFhcYGRob4AHfARwdHtUBHyAhIiMkJdQBJicoKSorLNMB0gEtLtEB0AEvMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUbbAUdISUrPAc4BS80BTMwBTU5PUFFSU1RVVldYWVpbXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gAGBAYIBgwGEAYUBhgGHAYgBiQGKAYsBjAGNAY4BjwGQAZEB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QAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIBAOxwEAAQID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YWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fdmFsdWVgIGNhbGxiYWNrIGVycm9yAGBvbl9zdGF0dXNfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl92ZXJzaW9uX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdXJsX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAEVtcHR5IENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhcmFjdGVyIGluIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBNaXNzaW5nIGV4cGVjdGVkIExGIGFmdGVyIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AgaGVhZGVyIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGUgdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZWQgdmFsdWUAUGF1c2VkIGJ5IG9uX2hlYWRlcnNfY29tcGxldGUASW52YWxpZCBFT0Ygc3RhdGUAb25fcmVzZXQgcGF1c2UAb25fY2h1bmtfaGVhZGVyIHBhdXNlAG9uX21lc3NhZ2VfYmVnaW4gcGF1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlIHBhdXNlAG9uX3N0YXR1c19jb21wbGV0ZSBwYXVzZQBvbl92ZXJzaW9uX2NvbXBsZXRlIHBhdXNlAG9uX3VybF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGUgcGF1c2UAb25fbWVzc2FnZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXRob2RfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lIHBhdXNlAFVuZXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgc3RhcnQgbGluZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgbmFtZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AAU1dJVENIX1BST1hZAFVTRV9QUk9YWQBNS0FDVElWSVRZAFVOUFJPQ0VTU0FCTEVfRU5USVRZAENPUFkATU9WRURfUEVSTUFORU5UTFkAVE9PX0VBUkxZAE5PVElGWQBGQUlMRURfREVQRU5ERU5DWQBCQURfR0FURVdBWQBQTEFZAFBVVABDSEVDS09VVABHQVRFV0FZX1RJTUVPVVQAUkVRVUVTVF9USU1FT1VUAE5FVFdPUktfQ09OTkVDVF9USU1FT1VUAENPTk5FQ1RJT05fVElNRU9VVABMT0dJTl9USU1FT1VUAE5FVFdPUktfUkVBRF9USU1FT1VUAFBPU1QATUlTRElSRUNURURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9MT0FEX0JBTEFOQ0VEX1JFUVVFU1QAQkFEX1JFUVVFU1QASFRUUF9SRVFVRVNUX1NFTlRfVE9fSFRUUFNfUE9SVABSRVBPUlQASU1fQV9URUFQT1QAUkVTRVRfQ09OVEVOVABOT19DT05URU5UAFBBUlRJQUxfQ09OVEVOVABIUEVfSU5WQUxJRF9DT05TVEFOVABIUEVfQ0JfUkVTRVQAR0VUAEhQRV9TVFJJQ1QAQ09ORkxJQ1QAVEVNUE9SQVJZX1JFRElSRUNUAFBFUk1BTkVOVF9SRURJUkVDVABDT05ORUNUAE1VTFRJX1NUQVRVUwBIUEVfSU5WQUxJRF9TVEFUVVMAVE9PX01BTllfUkVRVUVTVFMARUFSTFlfSElOVFMAVU5BVkFJTEFCTEVfRk9SX0xFR0FMX1JFQVNPTlMAT1BUSU9OUwBTV0lUQ0hJTkdfUFJPVE9DT0xTAFZBUklBTlRfQUxTT19ORUdPVElBVEVTAE1VTFRJUExFX0NIT0lDRVMASU5URVJOQUxfU0VSVkVSX0VSUk9SAFdFQl9TRVJWRVJfVU5LTk9XTl9FUlJPUgBSQUlMR1VOX0VSUk9SAElERU5USVRZX1BST1ZJREVSX0FVVEhFTlRJQ0FUSU9OX0VSUk9SAFNTTF9DRVJUSUZJQ0FURV9FUlJPUgBJTlZBTElEX1hfRk9SV0FSREVEX0ZPUgBTRVRfUEFSQU1FVEVSAEdFVF9QQVJBTUVURVIASFBFX1VTRVIAU0VFX09USEVSAEhQRV9DQl9DSFVOS19IRUFERVIATUtDQUxFTkRBUgBTRVRVUABXRUJfU0VSVkVSX0lTX0RPV04AVEVBUkRPV04ASFBFX0NMT1NFRF9DT05ORUNUSU9OAEhFVVJJU1RJQ19FWFBJUkFUSU9OAERJU0NPTk5FQ1RFRF9PUEVSQVRJT04ATk9OX0FVVEhPUklUQVRJVkVfSU5GT1JNQVRJT04ASFBFX0lOVkFMSURfVkVSU0lPTgBIUEVfQ0JfTUVTU0FHRV9CRUdJTgBTSVRFX0lTX0ZST1pFTgBIUEVfSU5WQUxJRF9IRUFERVJfVE9LRU4ASU5WQUxJRF9UT0tFTgBGT1JCSURERU4ARU5IQU5DRV9ZT1VSX0NBTE0ASFBFX0lOVkFMSURfVVJMAEJMT0NLRURfQllfUEFSRU5UQUxfQ09OVFJPTABNS0NPTABBQ0wASFBFX0lOVEVSTkFMAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0VfVU5PRkZJQ0lBTABIUEVfT0sAVU5MSU5LAFVOTE9DSwBQUkkAUkVUUllfV0lUSABIUEVfSU5WQUxJRF9DT05URU5UX0xFTkdUSABIUEVfVU5FWFBFQ1RFRF9DT05URU5UX0xFTkdUSABGTFVTSABQUk9QUEFUQ0gATS1TRUFSQ0gAVVJJX1RPT19MT05HAFBST0NFU1NJTkcATUlTQ0VMTEFORU9VU19QRVJTSVNURU5UX1dBUk5JTkcATUlTQ0VMTEFORU9VU19XQVJOSU5HAEhQRV9JTlZBTElEX1RSQU5TRkVSX0VOQ09ESU5HAEV4cGVjdGVkIENSTEYASFBFX0lOVkFMSURfQ0hVTktfU0laRQBNT1ZFAENPTlRJTlVFAEhQRV9DQl9TVEFUVVNfQ09NUExFVEUASFBFX0NCX0hFQURFUlNfQ09NUExFVEUASFBFX0NCX1ZFUlNJT05fQ09NUExFVEUASFBFX0NCX1VSTF9DT01QTEVURQBIUEVfQ0JfQ0hVTktfQ09NUExFVEUASFBFX0NCX0hFQURFUl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fTkFNRV9DT01QTEVURQBIUEVfQ0JfTUVTU0FHRV9DT01QTEVURQBIUEVfQ0JfTUVUSE9EX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfRklFTERfQ09NUExFVEUAREVMRVRFAEhQRV9JTlZBTElEX0VPRl9TVEFURQBJTlZBTElEX1NTTF9DRVJUSUZJQ0FURQBQQVVTRQBOT19SRVNQT05TRQBVTlNVUFBPUlRFRF9NRURJQV9UWVBFAEdPTkUATk9UX0FDQ0VQVEFCTEUAU0VSVklDRV9VTkFWQUlMQUJMRQBSQU5HRV9OT1RfU0FUSVNGSUFCTEUAT1JJR0lOX0lTX1VOUkVBQ0hBQkxFAFJFU1BPTlNFX0lTX1NUQUxFAFBVUkdFAE1FUkdFAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0UAUkVRVUVTVF9IRUFERVJfVE9PX0xBUkdFAFBBWUxPQURfVE9PX0xBUkdFAElOU1VGRklDSUVOVF9TVE9SQUdFAEhQRV9QQVVTRURfVVBHUkFERQBIUEVfUEFVU0VEX0gyX1VQR1JBREUAU09VUkNFAEFOTk9VTkNFAFRSQUNFAEhQRV9VTkVYUEVDVEVEX1NQQUNFAERFU0NSSUJFAFVOU1VCU0NSSUJFAFJFQ09SRABIUEVfSU5WQUxJRF9NRVRIT0QATk9UX0ZPVU5EAFBST1BGSU5EAFVOQklORABSRUJJTkQAVU5BVVRIT1JJWkVEAE1FVEhPRF9OT1RfQUxMT1dFRABIVFRQX1ZFUlNJT05fTk9UX1NVUFBPUlRFRABBTFJFQURZX1JFUE9SVEVEAEFDQ0VQVEVEAE5PVF9JTVBMRU1FTlRFRABMT09QX0RFVEVDVEVEAEhQRV9DUl9FWFBFQ1RFRABIUEVfTEZfRVhQRUNURUQAQ1JFQVRFRABJTV9VU0VEAEhQRV9QQVVTRUQAVElNRU9VVF9PQ0NVUkVEAFBBWU1FTlRfUkVRVUlSRUQAUFJFQ09ORElUSU9OX1JFUVVJUkVEAFBST1hZX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAE5FVFdPUktfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATEVOR1RIX1JFUVVJUkVEAFNTTF9DRVJUSUZJQ0FURV9SRVFVSVJFRABVUEdSQURFX1JFUVVJUkVEAFBBR0VfRVhQSVJFRABQUkVDT05ESVRJT05fRkFJTEVEAEVYUEVDVEFUSU9OX0ZBSUxFRABSRVZBTElEQVRJT05fRkFJTEVEAFNTTF9IQU5EU0hBS0VfRkFJTEVEAExPQ0tFRABUUkFOU0ZPUk1BVElPTl9BUFBMSUVEAE5PVF9NT0RJRklFRABOT1RfRVhURU5ERUQAQkFORFdJRFRIX0xJTUlUX0VYQ0VFREVEAFNJVEVfSVNfT1ZFUkxPQURFRABIRUFEAEV4cGVjdGVkIEhUVFAvAABeEwAAJhMAADAQAADwFwAAnRMAABUSAAA5FwAA8BIAAAoQAAB1EgAArRIAAIITAABPFAAAfxAAAKAVAAAjFAAAiRIAAIsUAABNFQAA1BEAAM8UAAAQGAAAyRYAANwWAADBEQAA4BcAALsUAAB0FAAAfBUAAOUUAAAIFwAAHxAAAGUVAACjFAAAKBUAAAIVAACZFQAALBAAAIsZAABPDwAA1A4AAGoQAADOEAAAAhcAAIkOAABuEwAAHBMAAGYUAABWFwAAwRMAAM0TAABsEwAAaBcAAGYXAABfFwAAIhMAAM4PAABpDgAA2A4AAGMWAADLEwAAqg4AACgXAAAmFwAAxRMAAF0WAADoEQAAZxMAAGUTAADyFgAAcxMAAB0XAAD5FgAA8xEAAM8OAADOFQAADBIAALMRAAClEQAAYRAAADIXAAC7EwAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAgMCAgICAgAAAgIAAgIAAgICAgICAgICAgAEAAAAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAAIAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIAAgICAgIAAAICAAICAAICAgICAgICAgIAAwAEAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsb3NlZWVwLWFsaXZlAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQFjaHVua2VkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVjdGlvbmVudC1sZW5ndGhvbnJveHktY29ubmVjdGlvbgAAAAAAAAAAAAAAAAAAAHJhbnNmZXItZW5jb2RpbmdwZ3JhZGUNCg0KDQpTTQ0KDQpUVFAvQ0UvVFNQLwAAAAAAAAAAAAAAAAECAAEDAAAAAAAAAAAAAAAAAAAAAAAABAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQUBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAABAAACAAAAAAAAAAAAAAAAAAAAAAAAAwQAAAQEBAQEBAQEBAQEBQQEBAQEBAQEBAQEBAAEAAYHBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAgAAAAACAAAAAAAAAAAAAAAAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE5PVU5DRUVDS09VVE5FQ1RFVEVDUklCRUxVU0hFVEVBRFNFQVJDSFJHRUNUSVZJVFlMRU5EQVJWRU9USUZZUFRJT05TQ0hTRUFZU1RBVENIR0VPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFSFRUUC9BRFRQLw=="},172:(e,A)=>{Object.defineProperty(A,"__esModule",{value:true});A.enumToMap=void 0;function enumToMap(e){const A={};Object.keys(e).forEach((t=>{const r=e[t];if(typeof r==="number"){A[t]=r}}));return A}A.enumToMap=enumToMap},7501:(e,A,t)=>{const{kClients:r}=t(6443);const s=t(9965);const{kAgent:o,kMockAgentSet:n,kMockAgentGet:i,kDispatches:a,kIsMockActive:c,kNetConnect:g,kGetNetConnect:E,kOptions:l,kFactory:u}=t(1117);const h=t(7365);const Q=t(4004);const{matchValue:C,buildMockOptions:B}=t(3397);const{InvalidArgumentError:I,UndiciError:d}=t(8707);const p=t(992);const m=t(1529);const y=t(6142);class FakeWeakRef{constructor(e){this.value=e}deref(){return this.value}}class MockAgent extends p{constructor(e){super(e);this[g]=true;this[c]=true;if(e&&e.agent&&typeof e.agent.dispatch!=="function"){throw new I("Argument opts.agent must implement Agent")}const A=e&&e.agent?e.agent:new s(e);this[o]=A;this[r]=A[r];this[l]=B(e)}get(e){let A=this[i](e);if(!A){A=this[u](e);this[n](e,A)}return A}dispatch(e,A){this.get(e.origin);return this[o].dispatch(e,A)}async close(){await this[o].close();this[r].clear()}deactivate(){this[c]=false}activate(){this[c]=true}enableNetConnect(e){if(typeof e==="string"||typeof e==="function"||e instanceof RegExp){if(Array.isArray(this[g])){this[g].push(e)}else{this[g]=[e]}}else if(typeof e==="undefined"){this[g]=true}else{throw new I("Unsupported matcher. Must be one of String|Function|RegExp.")}}disableNetConnect(){this[g]=false}get isMockActive(){return this[c]}[n](e,A){this[r].set(e,new FakeWeakRef(A))}[u](e){const A=Object.assign({agent:this},this[l]);return this[l]&&this[l].connections===1?new h(e,A):new Q(e,A)}[i](e){const A=this[r].get(e);if(A){return A.deref()}if(typeof e!=="string"){const A=this[u]("http://localhost:9999");this[n](e,A);return A}for(const[A,t]of Array.from(this[r])){const r=t.deref();if(r&&typeof A!=="string"&&C(A,e)){const A=this[u](e);this[n](e,A);A[a]=r[a];return A}}}[E](){return this[g]}pendingInterceptors(){const e=this[r];return Array.from(e.entries()).flatMap((([e,A])=>A.deref()[a].map((A=>({...A,origin:e}))))).filter((({pending:e})=>e))}assertNoPendingInterceptors({pendingInterceptorsFormatter:e=new y}={}){const A=this.pendingInterceptors();if(A.length===0){return}const t=new m("interceptor","interceptors").pluralize(A.length);throw new d(`\n${t.count} ${t.noun} ${t.is} pending:\n\n${e.format(A)}\n`.trim())}}e.exports=MockAgent},7365:(e,A,t)=>{const{promisify:r}=t(9023);const s=t(6197);const{buildMockDispatch:o}=t(3397);const{kDispatches:n,kMockAgent:i,kClose:a,kOriginalClose:c,kOrigin:g,kOriginalDispatch:E,kConnected:l}=t(1117);const{MockInterceptor:u}=t(1511);const h=t(6443);const{InvalidArgumentError:Q}=t(8707);class MockClient extends s{constructor(e,A){super(e,A);if(!A||!A.agent||typeof A.agent.dispatch!=="function"){throw new Q("Argument opts.agent must implement Agent")}this[i]=A.agent;this[g]=e;this[n]=[];this[l]=1;this[E]=this.dispatch;this[c]=this.close.bind(this);this.dispatch=o.call(this);this.close=this[a]}get[h.kConnected](){return this[l]}intercept(e){return new u(e,this[n])}async[a](){await r(this[c])();this[l]=0;this[i][h.kClients].delete(this[g])}}e.exports=MockClient},2429:(e,A,t)=>{const{UndiciError:r}=t(8707);class MockNotMatchedError extends r{constructor(e){super(e);Error.captureStackTrace(this,MockNotMatchedError);this.name="MockNotMatchedError";this.message=e||"The request does not match any registered mock dispatches";this.code="UND_MOCK_ERR_MOCK_NOT_MATCHED"}}e.exports={MockNotMatchedError:MockNotMatchedError}},1511:(e,A,t)=>{const{getResponseData:r,buildKey:s,addMockDispatch:o}=t(3397);const{kDispatches:n,kDispatchKey:i,kDefaultHeaders:a,kDefaultTrailers:c,kContentLength:g,kMockDispatch:E}=t(1117);const{InvalidArgumentError:l}=t(8707);const{buildURL:u}=t(3440);class MockScope{constructor(e){this[E]=e}delay(e){if(typeof e!=="number"||!Number.isInteger(e)||e<=0){throw new l("waitInMs must be a valid integer > 0")}this[E].delay=e;return this}persist(){this[E].persist=true;return this}times(e){if(typeof e!=="number"||!Number.isInteger(e)||e<=0){throw new l("repeatTimes must be a valid integer > 0")}this[E].times=e;return this}}class MockInterceptor{constructor(e,A){if(typeof e!=="object"){throw new l("opts must be an object")}if(typeof e.path==="undefined"){throw new l("opts.path must be defined")}if(typeof e.method==="undefined"){e.method="GET"}if(typeof e.path==="string"){if(e.query){e.path=u(e.path,e.query)}else{const A=new URL(e.path,"data://");e.path=A.pathname+A.search}}if(typeof e.method==="string"){e.method=e.method.toUpperCase()}this[i]=s(e);this[n]=A;this[a]={};this[c]={};this[g]=false}createMockScopeDispatchData(e,A,t={}){const s=r(A);const o=this[g]?{"content-length":s.length}:{};const n={...this[a],...o,...t.headers};const i={...this[c],...t.trailers};return{statusCode:e,data:A,headers:n,trailers:i}}validateReplyParameters(e,A,t){if(typeof e==="undefined"){throw new l("statusCode must be defined")}if(typeof A==="undefined"){throw new l("data must be defined")}if(typeof t!=="object"){throw new l("responseOptions must be an object")}}reply(e){if(typeof e==="function"){const wrappedDefaultsCallback=A=>{const t=e(A);if(typeof t!=="object"){throw new l("reply options callback must return an object")}const{statusCode:r,data:s="",responseOptions:o={}}=t;this.validateReplyParameters(r,s,o);return{...this.createMockScopeDispatchData(r,s,o)}};const A=o(this[n],this[i],wrappedDefaultsCallback);return new MockScope(A)}const[A,t="",r={}]=[...arguments];this.validateReplyParameters(A,t,r);const s=this.createMockScopeDispatchData(A,t,r);const a=o(this[n],this[i],s);return new MockScope(a)}replyWithError(e){if(typeof e==="undefined"){throw new l("error must be defined")}const A=o(this[n],this[i],{error:e});return new MockScope(A)}defaultReplyHeaders(e){if(typeof e==="undefined"){throw new l("headers must be defined")}this[a]=e;return this}defaultReplyTrailers(e){if(typeof e==="undefined"){throw new l("trailers must be defined")}this[c]=e;return this}replyContentLength(){this[g]=true;return this}}e.exports.MockInterceptor=MockInterceptor;e.exports.MockScope=MockScope},4004:(e,A,t)=>{const{promisify:r}=t(9023);const s=t(5076);const{buildMockDispatch:o}=t(3397);const{kDispatches:n,kMockAgent:i,kClose:a,kOriginalClose:c,kOrigin:g,kOriginalDispatch:E,kConnected:l}=t(1117);const{MockInterceptor:u}=t(1511);const h=t(6443);const{InvalidArgumentError:Q}=t(8707);class MockPool extends s{constructor(e,A){super(e,A);if(!A||!A.agent||typeof A.agent.dispatch!=="function"){throw new Q("Argument opts.agent must implement Agent")}this[i]=A.agent;this[g]=e;this[n]=[];this[l]=1;this[E]=this.dispatch;this[c]=this.close.bind(this);this.dispatch=o.call(this);this.close=this[a]}get[h.kConnected](){return this[l]}intercept(e){return new u(e,this[n])}async[a](){await r(this[c])();this[l]=0;this[i][h.kClients].delete(this[g])}}e.exports=MockPool},1117:e=>{e.exports={kAgent:Symbol("agent"),kOptions:Symbol("options"),kFactory:Symbol("factory"),kDispatches:Symbol("dispatches"),kDispatchKey:Symbol("dispatch key"),kDefaultHeaders:Symbol("default headers"),kDefaultTrailers:Symbol("default trailers"),kContentLength:Symbol("content length"),kMockAgent:Symbol("mock agent"),kMockAgentSet:Symbol("mock agent set"),kMockAgentGet:Symbol("mock agent get"),kMockDispatch:Symbol("mock dispatch"),kClose:Symbol("close"),kOriginalClose:Symbol("original agent close"),kOrigin:Symbol("origin"),kIsMockActive:Symbol("is mock active"),kNetConnect:Symbol("net connect"),kGetNetConnect:Symbol("get net connect"),kConnected:Symbol("connected")}},3397:(e,A,t)=>{const{MockNotMatchedError:r}=t(2429);const{kDispatches:s,kMockAgent:o,kOriginalDispatch:n,kOrigin:i,kGetNetConnect:a}=t(1117);const{buildURL:c,nop:g}=t(3440);const{STATUS_CODES:E}=t(8611);const{types:{isPromise:l}}=t(9023);function matchValue(e,A){if(typeof e==="string"){return e===A}if(e instanceof RegExp){return e.test(A)}if(typeof e==="function"){return e(A)===true}return false}function lowerCaseEntries(e){return Object.fromEntries(Object.entries(e).map((([e,A])=>[e.toLocaleLowerCase(),A])))}function getHeaderByName(e,A){if(Array.isArray(e)){for(let t=0;t<e.length;t+=2){if(e[t].toLocaleLowerCase()===A.toLocaleLowerCase()){return e[t+1]}}return undefined}else if(typeof e.get==="function"){return e.get(A)}else{return lowerCaseEntries(e)[A.toLocaleLowerCase()]}}function buildHeadersFromArray(e){const A=e.slice();const t=[];for(let e=0;e<A.length;e+=2){t.push([A[e],A[e+1]])}return Object.fromEntries(t)}function matchHeaders(e,A){if(typeof e.headers==="function"){if(Array.isArray(A)){A=buildHeadersFromArray(A)}return e.headers(A?lowerCaseEntries(A):{})}if(typeof e.headers==="undefined"){return true}if(typeof A!=="object"||typeof e.headers!=="object"){return false}for(const[t,r]of Object.entries(e.headers)){const e=getHeaderByName(A,t);if(!matchValue(r,e)){return false}}return true}function safeUrl(e){if(typeof e!=="string"){return e}const A=e.split("?");if(A.length!==2){return e}const t=new URLSearchParams(A.pop());t.sort();return[...A,t.toString()].join("?")}function matchKey(e,{path:A,method:t,body:r,headers:s}){const o=matchValue(e.path,A);const n=matchValue(e.method,t);const i=typeof e.body!=="undefined"?matchValue(e.body,r):true;const a=matchHeaders(e,s);return o&&n&&i&&a}function getResponseData(e){if(Buffer.isBuffer(e)){return e}else if(typeof e==="object"){return JSON.stringify(e)}else{return e.toString()}}function getMockDispatch(e,A){const t=A.query?c(A.path,A.query):A.path;const s=typeof t==="string"?safeUrl(t):t;let o=e.filter((({consumed:e})=>!e)).filter((({path:e})=>matchValue(safeUrl(e),s)));if(o.length===0){throw new r(`Mock dispatch not matched for path '${s}'`)}o=o.filter((({method:e})=>matchValue(e,A.method)));if(o.length===0){throw new r(`Mock dispatch not matched for method '${A.method}'`)}o=o.filter((({body:e})=>typeof e!=="undefined"?matchValue(e,A.body):true));if(o.length===0){throw new r(`Mock dispatch not matched for body '${A.body}'`)}o=o.filter((e=>matchHeaders(e,A.headers)));if(o.length===0){throw new r(`Mock dispatch not matched for headers '${typeof A.headers==="object"?JSON.stringify(A.headers):A.headers}'`)}return o[0]}function addMockDispatch(e,A,t){const r={timesInvoked:0,times:1,persist:false,consumed:false};const s=typeof t==="function"?{callback:t}:{...t};const o={...r,...A,pending:true,data:{error:null,...s}};e.push(o);return o}function deleteMockDispatch(e,A){const t=e.findIndex((e=>{if(!e.consumed){return false}return matchKey(e,A)}));if(t!==-1){e.splice(t,1)}}function buildKey(e){const{path:A,method:t,body:r,headers:s,query:o}=e;return{path:A,method:t,body:r,headers:s,query:o}}function generateKeyValues(e){return Object.entries(e).reduce(((e,[A,t])=>[...e,Buffer.from(`${A}`),Array.isArray(t)?t.map((e=>Buffer.from(`${e}`))):Buffer.from(`${t}`)]),[])}function getStatusText(e){return E[e]||"unknown"}async function getResponse(e){const A=[];for await(const t of e){A.push(t)}return Buffer.concat(A).toString("utf8")}function mockDispatch(e,A){const t=buildKey(e);const r=getMockDispatch(this[s],t);r.timesInvoked++;if(r.data.callback){r.data={...r.data,...r.data.callback(e)}}const{data:{statusCode:o,data:n,headers:i,trailers:a,error:c},delay:E,persist:u}=r;const{timesInvoked:h,times:Q}=r;r.consumed=!u&&h>=Q;r.pending=h<Q;if(c!==null){deleteMockDispatch(this[s],t);A.onError(c);return true}if(typeof E==="number"&&E>0){setTimeout((()=>{handleReply(this[s])}),E)}else{handleReply(this[s])}function handleReply(r,s=n){const c=Array.isArray(e.headers)?buildHeadersFromArray(e.headers):e.headers;const E=typeof s==="function"?s({...e,headers:c}):s;if(l(E)){E.then((e=>handleReply(r,e)));return}const u=getResponseData(E);const h=generateKeyValues(i);const Q=generateKeyValues(a);A.abort=g;A.onHeaders(o,h,resume,getStatusText(o));A.onData(Buffer.from(u));A.onComplete(Q);deleteMockDispatch(r,t)}function resume(){}return true}function buildMockDispatch(){const e=this[o];const A=this[i];const t=this[n];return function dispatch(s,o){if(e.isMockActive){try{mockDispatch.call(this,s,o)}catch(n){if(n instanceof r){const i=e[a]();if(i===false){throw new r(`${n.message}: subsequent request to origin ${A} was not allowed (net.connect disabled)`)}if(checkNetConnect(i,A)){t.call(this,s,o)}else{throw new r(`${n.message}: subsequent request to origin ${A} was not allowed (net.connect is not enabled for this origin)`)}}else{throw n}}}else{t.call(this,s,o)}}}function checkNetConnect(e,A){const t=new URL(A);if(e===true){return true}else if(Array.isArray(e)&&e.some((e=>matchValue(e,t.host)))){return true}return false}function buildMockOptions(e){if(e){const{agent:A,...t}=e;return t}}e.exports={getResponseData:getResponseData,getMockDispatch:getMockDispatch,addMockDispatch:addMockDispatch,deleteMockDispatch:deleteMockDispatch,buildKey:buildKey,generateKeyValues:generateKeyValues,matchValue:matchValue,getResponse:getResponse,getStatusText:getStatusText,mockDispatch:mockDispatch,buildMockDispatch:buildMockDispatch,checkNetConnect:checkNetConnect,buildMockOptions:buildMockOptions,getHeaderByName:getHeaderByName}},6142:(e,A,t)=>{const{Transform:r}=t(2203);const{Console:s}=t(4236);e.exports=class PendingInterceptorsFormatter{constructor({disableColors:e}={}){this.transform=new r({transform(e,A,t){t(null,e)}});this.logger=new s({stdout:this.transform,inspectOptions:{colors:!e&&!process.env.CI}})}format(e){const A=e.map((({method:e,path:A,data:{statusCode:t},persist:r,times:s,timesInvoked:o,origin:n})=>({Method:e,Origin:n,Path:A,"Status code":t,Persistent:r?"✅":"❌",Invocations:o,Remaining:r?Infinity:s-o})));this.logger.table(A);return this.transform.read().toString()}}},1529:e=>{const A={pronoun:"it",is:"is",was:"was",this:"this"};const t={pronoun:"they",is:"are",was:"were",this:"these"};e.exports=class Pluralizer{constructor(e,A){this.singular=e;this.plural=A}pluralize(e){const r=e===1;const s=r?A:t;const o=r?this.singular:this.plural;return{...s,count:e,noun:o}}}},4869:e=>{const A=2048;const t=A-1;class FixedCircularBuffer{constructor(){this.bottom=0;this.top=0;this.list=new Array(A);this.next=null}isEmpty(){return this.top===this.bottom}isFull(){return(this.top+1&t)===this.bottom}push(e){this.list[this.top]=e;this.top=this.top+1&t}shift(){const e=this.list[this.bottom];if(e===undefined)return null;this.list[this.bottom]=undefined;this.bottom=this.bottom+1&t;return e}}e.exports=class FixedQueue{constructor(){this.head=this.tail=new FixedCircularBuffer}isEmpty(){return this.head.isEmpty()}push(e){if(this.head.isFull()){this.head=this.head.next=new FixedCircularBuffer}this.head.push(e)}shift(){const e=this.tail;const A=e.shift();if(e.isEmpty()&&e.next!==null){this.tail=e.next}return A}}},8640:(e,A,t)=>{const r=t(1);const s=t(4869);const{kConnected:o,kSize:n,kRunning:i,kPending:a,kQueued:c,kBusy:g,kFree:E,kUrl:l,kClose:u,kDestroy:h,kDispatch:Q}=t(6443);const C=t(4622);const B=Symbol("clients");const I=Symbol("needDrain");const d=Symbol("queue");const p=Symbol("closed resolve");const m=Symbol("onDrain");const y=Symbol("onConnect");const w=Symbol("onDisconnect");const R=Symbol("onConnectionError");const b=Symbol("get dispatcher");const k=Symbol("add client");const D=Symbol("remove client");const S=Symbol("stats");class PoolBase extends r{constructor(){super();this[d]=new s;this[B]=[];this[c]=0;const e=this;this[m]=function onDrain(A,t){const r=e[d];let s=false;while(!s){const A=r.shift();if(!A){break}e[c]--;s=!this.dispatch(A.opts,A.handler)}this[I]=s;if(!this[I]&&e[I]){e[I]=false;e.emit("drain",A,[e,...t])}if(e[p]&&r.isEmpty()){Promise.all(e[B].map((e=>e.close()))).then(e[p])}};this[y]=(A,t)=>{e.emit("connect",A,[e,...t])};this[w]=(A,t,r)=>{e.emit("disconnect",A,[e,...t],r)};this[R]=(A,t,r)=>{e.emit("connectionError",A,[e,...t],r)};this[S]=new C(this)}get[g](){return this[I]}get[o](){return this[B].filter((e=>e[o])).length}get[E](){return this[B].filter((e=>e[o]&&!e[I])).length}get[a](){let e=this[c];for(const{[a]:A}of this[B]){e+=A}return e}get[i](){let e=0;for(const{[i]:A}of this[B]){e+=A}return e}get[n](){let e=this[c];for(const{[n]:A}of this[B]){e+=A}return e}get stats(){return this[S]}async[u](){if(this[d].isEmpty()){return Promise.all(this[B].map((e=>e.close())))}else{return new Promise((e=>{this[p]=e}))}}async[h](e){while(true){const A=this[d].shift();if(!A){break}A.handler.onError(e)}return Promise.all(this[B].map((A=>A.destroy(e))))}[Q](e,A){const t=this[b]();if(!t){this[I]=true;this[d].push({opts:e,handler:A});this[c]++}else if(!t.dispatch(e,A)){t[I]=true;this[I]=!this[b]()}return!this[I]}[k](e){e.on("drain",this[m]).on("connect",this[y]).on("disconnect",this[w]).on("connectionError",this[R]);this[B].push(e);if(this[I]){process.nextTick((()=>{if(this[I]){this[m](e[l],[this,e])}}))}return this}[D](e){e.close((()=>{const A=this[B].indexOf(e);if(A!==-1){this[B].splice(A,1)}}));this[I]=this[B].some((e=>!e[I]&&e.closed!==true&&e.destroyed!==true))}}e.exports={PoolBase:PoolBase,kClients:B,kNeedDrain:I,kAddClient:k,kRemoveClient:D,kGetDispatcher:b}},4622:(e,A,t)=>{const{kFree:r,kConnected:s,kPending:o,kQueued:n,kRunning:i,kSize:a}=t(6443);const c=Symbol("pool");class PoolStats{constructor(e){this[c]=e}get connected(){return this[c][s]}get free(){return this[c][r]}get pending(){return this[c][o]}get queued(){return this[c][n]}get running(){return this[c][i]}get size(){return this[c][a]}}e.exports=PoolStats},5076:(e,A,t)=>{const{PoolBase:r,kClients:s,kNeedDrain:o,kAddClient:n,kGetDispatcher:i}=t(8640);const a=t(6197);const{InvalidArgumentError:c}=t(8707);const g=t(3440);const{kUrl:E,kInterceptors:l}=t(6443);const u=t(9136);const h=Symbol("options");const Q=Symbol("connections");const C=Symbol("factory");function defaultFactory(e,A){return new a(e,A)}class Pool extends r{constructor(e,{connections:A,factory:t=defaultFactory,connect:r,connectTimeout:o,tls:n,maxCachedSessions:i,socketPath:a,autoSelectFamily:B,autoSelectFamilyAttemptTimeout:I,allowH2:d,...p}={}){super();if(A!=null&&(!Number.isFinite(A)||A<0)){throw new c("invalid connections")}if(typeof t!=="function"){throw new c("factory must be a function.")}if(r!=null&&typeof r!=="function"&&typeof r!=="object"){throw new c("connect must be a function or an object")}if(typeof r!=="function"){r=u({...n,maxCachedSessions:i,allowH2:d,socketPath:a,timeout:o,...g.nodeHasAutoSelectFamily&&B?{autoSelectFamily:B,autoSelectFamilyAttemptTimeout:I}:undefined,...r})}this[l]=p.interceptors&&p.interceptors.Pool&&Array.isArray(p.interceptors.Pool)?p.interceptors.Pool:[];this[Q]=A||null;this[E]=g.parseOrigin(e);this[h]={...g.deepClone(p),connect:r,allowH2:d};this[h].interceptors=p.interceptors?{...p.interceptors}:undefined;this[C]=t;this.on("connectionError",((e,A,t)=>{for(const e of A){const A=this[s].indexOf(e);if(A!==-1){this[s].splice(A,1)}}}))}[i](){let e=this[s].find((e=>!e[o]));if(e){return e}if(!this[Q]||this[s].length<this[Q]){e=this[C](this[E],this[h]);this[n](e)}return e}}e.exports=Pool},2720:(e,A,t)=>{const{kProxy:r,kClose:s,kDestroy:o,kInterceptors:n}=t(6443);const{URL:i}=t(7016);const a=t(9965);const c=t(5076);const g=t(1);const{InvalidArgumentError:E,RequestAbortedError:l}=t(8707);const u=t(9136);const h=Symbol("proxy agent");const Q=Symbol("proxy client");const C=Symbol("proxy headers");const B=Symbol("request tls settings");const I=Symbol("proxy tls settings");const d=Symbol("connect endpoint function");function defaultProtocolPort(e){return e==="https:"?443:80}function buildProxyOptions(e){if(typeof e==="string"){e={uri:e}}if(!e||!e.uri){throw new E("Proxy opts.uri is mandatory")}return{uri:e.uri,protocol:e.protocol||"https"}}function defaultFactory(e,A){return new c(e,A)}class ProxyAgent extends g{constructor(e){super(e);this[r]=buildProxyOptions(e);this[h]=new a(e);this[n]=e.interceptors&&e.interceptors.ProxyAgent&&Array.isArray(e.interceptors.ProxyAgent)?e.interceptors.ProxyAgent:[];if(typeof e==="string"){e={uri:e}}if(!e||!e.uri){throw new E("Proxy opts.uri is mandatory")}const{clientFactory:A=defaultFactory}=e;if(typeof A!=="function"){throw new E("Proxy opts.clientFactory must be a function.")}this[B]=e.requestTls;this[I]=e.proxyTls;this[C]=e.headers||{};const t=new i(e.uri);const{origin:s,port:o,host:c,username:g,password:p}=t;if(e.auth&&e.token){throw new E("opts.auth cannot be used in combination with opts.token")}else if(e.auth){this[C]["proxy-authorization"]=`Basic ${e.auth}`}else if(e.token){this[C]["proxy-authorization"]=e.token}else if(g&&p){this[C]["proxy-authorization"]=`Basic ${Buffer.from(`${decodeURIComponent(g)}:${decodeURIComponent(p)}`).toString("base64")}`}const m=u({...e.proxyTls});this[d]=u({...e.requestTls});this[Q]=A(t,{connect:m});this[h]=new a({...e,connect:async(e,A)=>{let t=e.host;if(!e.port){t+=`:${defaultProtocolPort(e.protocol)}`}try{const{socket:r,statusCode:n}=await this[Q].connect({origin:s,port:o,path:t,signal:e.signal,headers:{...this[C],host:c}});if(n!==200){r.on("error",(()=>{})).destroy();A(new l(`Proxy response (${n}) !== 200 when HTTP Tunneling`))}if(e.protocol!=="https:"){A(null,r);return}let i;if(this[B]){i=this[B].servername}else{i=e.servername}this[d]({...e,servername:i,httpSocket:r},A)}catch(e){A(e)}}})}dispatch(e,A){const{host:t}=new i(e.origin);const r=buildHeaders(e.headers);throwIfProxyAuthIsSent(r);return this[h].dispatch({...e,headers:{...r,host:t}},A)}async[s](){await this[h].close();await this[Q].close()}async[o](){await this[h].destroy();await this[Q].destroy()}}function buildHeaders(e){if(Array.isArray(e)){const A={};for(let t=0;t<e.length;t+=2){A[e[t]]=e[t+1]}return A}return e}function throwIfProxyAuthIsSent(e){const A=e&&Object.keys(e).find((e=>e.toLowerCase()==="proxy-authorization"));if(A){throw new E("Proxy-Authorization should be sent in ProxyAgent constructor")}}e.exports=ProxyAgent},8804:e=>{let A=Date.now();let t;const r=[];function onTimeout(){A=Date.now();let e=r.length;let t=0;while(t<e){const s=r[t];if(s.state===0){s.state=A+s.delay}else if(s.state>0&&A>=s.state){s.state=-1;s.callback(s.opaque)}if(s.state===-1){s.state=-2;if(t!==e-1){r[t]=r.pop()}else{r.pop()}e-=1}else{t+=1}}if(r.length>0){refreshTimeout()}}function refreshTimeout(){if(t&&t.refresh){t.refresh()}else{clearTimeout(t);t=setTimeout(onTimeout,1e3);if(t.unref){t.unref()}}}class Timeout{constructor(e,A,t){this.callback=e;this.delay=A;this.opaque=t;this.state=-2;this.refresh()}refresh(){if(this.state===-2){r.push(this);if(!t||r.length===1){refreshTimeout()}}this.state=0}clear(){this.state=-1}}e.exports={setTimeout(e,A,t){return A<1e3?setTimeout(e,A,t):new Timeout(e,A,t)},clearTimeout(e){if(e instanceof Timeout){e.clear()}else{clearTimeout(e)}}}},8550:(e,A,t)=>{const r=t(1637);const{uid:s,states:o}=t(5913);const{kReadyState:n,kSentClose:i,kByteParser:a,kReceivedClose:c}=t(2933);const{fireEvent:g,failWebsocketConnection:E}=t(3574);const{CloseEvent:l}=t(6255);const{makeRequest:u}=t(5194);const{fetching:h}=t(2315);const{Headers:Q}=t(6349);const{getGlobalDispatcher:C}=t(2581);const{kHeadersList:B}=t(6443);const I={};I.open=r.channel("undici:websocket:open");I.close=r.channel("undici:websocket:close");I.socketError=r.channel("undici:websocket:socket_error");let d;try{d=t(6982)}catch{}function establishWebSocketConnection(e,A,t,r,o){const n=e;n.protocol=e.protocol==="ws:"?"http:":"https:";const i=u({urlList:[n],serviceWorkers:"none",referrer:"no-referrer",mode:"websocket",credentials:"include",cache:"no-store",redirect:"error"});if(o.headers){const e=new Q(o.headers)[B];i.headersList=e}const a=d.randomBytes(16).toString("base64");i.headersList.append("sec-websocket-key",a);i.headersList.append("sec-websocket-version","13");for(const e of A){i.headersList.append("sec-websocket-protocol",e)}const c="";const g=h({request:i,useParallelQueue:true,dispatcher:o.dispatcher??C(),processResponse(e){if(e.type==="error"||e.status!==101){E(t,"Received network error or non-101 status code.");return}if(A.length!==0&&!e.headersList.get("Sec-WebSocket-Protocol")){E(t,"Server did not respond with sent protocols.");return}if(e.headersList.get("Upgrade")?.toLowerCase()!=="websocket"){E(t,'Server did not set Upgrade header to "websocket".');return}if(e.headersList.get("Connection")?.toLowerCase()!=="upgrade"){E(t,'Server did not set Connection header to "upgrade".');return}const o=e.headersList.get("Sec-WebSocket-Accept");const n=d.createHash("sha1").update(a+s).digest("base64");if(o!==n){E(t,"Incorrect hash received in Sec-WebSocket-Accept header.");return}const g=e.headersList.get("Sec-WebSocket-Extensions");if(g!==null&&g!==c){E(t,"Received different permessage-deflate than the one set.");return}const l=e.headersList.get("Sec-WebSocket-Protocol");if(l!==null&&l!==i.headersList.get("Sec-WebSocket-Protocol")){E(t,"Protocol was not set in the opening handshake.");return}e.socket.on("data",onSocketData);e.socket.on("close",onSocketClose);e.socket.on("error",onSocketError);if(I.open.hasSubscribers){I.open.publish({address:e.socket.address(),protocol:l,extensions:g})}r(e)}});return g}function onSocketData(e){if(!this.ws[a].write(e)){this.pause()}}function onSocketClose(){const{ws:e}=this;const A=e[i]&&e[c];let t=1005;let r="";const s=e[a].closingInfo;if(s){t=s.code??1005;r=s.reason}else if(!e[i]){t=1006}e[n]=o.CLOSED;g("close",e,l,{wasClean:A,code:t,reason:r});if(I.close.hasSubscribers){I.close.publish({websocket:e,code:t,reason:r})}}function onSocketError(e){const{ws:A}=this;A[n]=o.CLOSING;if(I.socketError.hasSubscribers){I.socketError.publish(e)}this.destroy()}e.exports={establishWebSocketConnection:establishWebSocketConnection}},5913:e=>{const A="258EAFA5-E914-47DA-95CA-C5AB0DC85B11";const t={enumerable:true,writable:false,configurable:false};const r={CONNECTING:0,OPEN:1,CLOSING:2,CLOSED:3};const s={CONTINUATION:0,TEXT:1,BINARY:2,CLOSE:8,PING:9,PONG:10};const o=2**16-1;const n={INFO:0,PAYLOADLENGTH_16:2,PAYLOADLENGTH_64:3,READ_DATA:4};const i=Buffer.allocUnsafe(0);e.exports={uid:A,staticPropertyDescriptors:t,states:r,opcodes:s,maxUnsigned16Bit:o,parserStates:n,emptyBuffer:i}},6255:(e,A,t)=>{const{webidl:r}=t(4222);const{kEnumerableProperty:s}=t(3440);const{MessagePort:o}=t(8167);class MessageEvent extends Event{#o;constructor(e,A={}){r.argumentLengthCheck(arguments,1,{header:"MessageEvent constructor"});e=r.converters.DOMString(e);A=r.converters.MessageEventInit(A);super(e,A);this.#o=A}get data(){r.brandCheck(this,MessageEvent);return this.#o.data}get origin(){r.brandCheck(this,MessageEvent);return this.#o.origin}get lastEventId(){r.brandCheck(this,MessageEvent);return this.#o.lastEventId}get source(){r.brandCheck(this,MessageEvent);return this.#o.source}get ports(){r.brandCheck(this,MessageEvent);if(!Object.isFrozen(this.#o.ports)){Object.freeze(this.#o.ports)}return this.#o.ports}initMessageEvent(e,A=false,t=false,s=null,o="",n="",i=null,a=[]){r.brandCheck(this,MessageEvent);r.argumentLengthCheck(arguments,1,{header:"MessageEvent.initMessageEvent"});return new MessageEvent(e,{bubbles:A,cancelable:t,data:s,origin:o,lastEventId:n,source:i,ports:a})}}class CloseEvent extends Event{#o;constructor(e,A={}){r.argumentLengthCheck(arguments,1,{header:"CloseEvent constructor"});e=r.converters.DOMString(e);A=r.converters.CloseEventInit(A);super(e,A);this.#o=A}get wasClean(){r.brandCheck(this,CloseEvent);return this.#o.wasClean}get code(){r.brandCheck(this,CloseEvent);return this.#o.code}get reason(){r.brandCheck(this,CloseEvent);return this.#o.reason}}class ErrorEvent extends Event{#o;constructor(e,A){r.argumentLengthCheck(arguments,1,{header:"ErrorEvent constructor"});super(e,A);e=r.converters.DOMString(e);A=r.converters.ErrorEventInit(A??{});this.#o=A}get message(){r.brandCheck(this,ErrorEvent);return this.#o.message}get filename(){r.brandCheck(this,ErrorEvent);return this.#o.filename}get lineno(){r.brandCheck(this,ErrorEvent);return this.#o.lineno}get colno(){r.brandCheck(this,ErrorEvent);return this.#o.colno}get error(){r.brandCheck(this,ErrorEvent);return this.#o.error}}Object.defineProperties(MessageEvent.prototype,{[Symbol.toStringTag]:{value:"MessageEvent",configurable:true},data:s,origin:s,lastEventId:s,source:s,ports:s,initMessageEvent:s});Object.defineProperties(CloseEvent.prototype,{[Symbol.toStringTag]:{value:"CloseEvent",configurable:true},reason:s,code:s,wasClean:s});Object.defineProperties(ErrorEvent.prototype,{[Symbol.toStringTag]:{value:"ErrorEvent",configurable:true},message:s,filename:s,lineno:s,colno:s,error:s});r.converters.MessagePort=r.interfaceConverter(o);r.converters["sequence<MessagePort>"]=r.sequenceConverter(r.converters.MessagePort);const n=[{key:"bubbles",converter:r.converters.boolean,defaultValue:false},{key:"cancelable",converter:r.converters.boolean,defaultValue:false},{key:"composed",converter:r.converters.boolean,defaultValue:false}];r.converters.MessageEventInit=r.dictionaryConverter([...n,{key:"data",converter:r.converters.any,defaultValue:null},{key:"origin",converter:r.converters.USVString,defaultValue:""},{key:"lastEventId",converter:r.converters.DOMString,defaultValue:""},{key:"source",converter:r.nullableConverter(r.converters.MessagePort),defaultValue:null},{key:"ports",converter:r.converters["sequence<MessagePort>"],get defaultValue(){return[]}}]);r.converters.CloseEventInit=r.dictionaryConverter([...n,{key:"wasClean",converter:r.converters.boolean,defaultValue:false},{key:"code",converter:r.converters["unsigned short"],defaultValue:0},{key:"reason",converter:r.converters.USVString,defaultValue:""}]);r.converters.ErrorEventInit=r.dictionaryConverter([...n,{key:"message",converter:r.converters.DOMString,defaultValue:""},{key:"filename",converter:r.converters.USVString,defaultValue:""},{key:"lineno",converter:r.converters["unsigned long"],defaultValue:0},{key:"colno",converter:r.converters["unsigned long"],defaultValue:0},{key:"error",converter:r.converters.any}]);e.exports={MessageEvent:MessageEvent,CloseEvent:CloseEvent,ErrorEvent:ErrorEvent}},1237:(e,A,t)=>{const{maxUnsigned16Bit:r}=t(5913);let s;try{s=t(6982)}catch{}class WebsocketFrameSend{constructor(e){this.frameData=e;this.maskKey=s.randomBytes(4)}createFrame(e){const A=this.frameData?.byteLength??0;let t=A;let s=6;if(A>r){s+=8;t=127}else if(A>125){s+=2;t=126}const o=Buffer.allocUnsafe(A+s);o[0]=o[1]=0;o[0]|=128;o[0]=(o[0]&240)+e; -/*! ws. MIT License. Einar Otto Stangvik <einaros@gmail.com> */o[s-4]=this.maskKey[0];o[s-3]=this.maskKey[1];o[s-2]=this.maskKey[2];o[s-1]=this.maskKey[3];o[1]=t;if(t===126){o.writeUInt16BE(A,2)}else if(t===127){o[2]=o[3]=0;o.writeUIntBE(A,4,6)}o[1]|=128;for(let e=0;e<A;e++){o[s+e]=this.frameData[e]^this.maskKey[e%4]}return o}}e.exports={WebsocketFrameSend:WebsocketFrameSend}},3171:(e,A,t)=>{const{Writable:r}=t(2203);const s=t(1637);const{parserStates:o,opcodes:n,states:i,emptyBuffer:a}=t(5913);const{kReadyState:c,kSentClose:g,kResponse:E,kReceivedClose:l}=t(2933);const{isValidStatusCode:u,failWebsocketConnection:h,websocketMessageReceived:Q}=t(3574);const{WebsocketFrameSend:C}=t(1237);const B={};B.ping=s.channel("undici:websocket:ping");B.pong=s.channel("undici:websocket:pong");class ByteParser extends r{#n=[];#i=0;#a=o.INFO;#c={};#g=[];constructor(e){super();this.ws=e}_write(e,A,t){this.#n.push(e);this.#i+=e.length;this.run(t)}run(e){while(true){if(this.#a===o.INFO){if(this.#i<2){return e()}const A=this.consume(2);this.#c.fin=(A[0]&128)!==0;this.#c.opcode=A[0]&15;this.#c.originalOpcode??=this.#c.opcode;this.#c.fragmented=!this.#c.fin&&this.#c.opcode!==n.CONTINUATION;if(this.#c.fragmented&&this.#c.opcode!==n.BINARY&&this.#c.opcode!==n.TEXT){h(this.ws,"Invalid frame type was fragmented.");return}const t=A[1]&127;if(t<=125){this.#c.payloadLength=t;this.#a=o.READ_DATA}else if(t===126){this.#a=o.PAYLOADLENGTH_16}else if(t===127){this.#a=o.PAYLOADLENGTH_64}if(this.#c.fragmented&&t>125){h(this.ws,"Fragmented frame exceeded 125 bytes.");return}else if((this.#c.opcode===n.PING||this.#c.opcode===n.PONG||this.#c.opcode===n.CLOSE)&&t>125){h(this.ws,"Payload length for control frame exceeded 125 bytes.");return}else if(this.#c.opcode===n.CLOSE){if(t===1){h(this.ws,"Received close frame with a 1-byte body.");return}const e=this.consume(t);this.#c.closeInfo=this.parseCloseBody(false,e);if(!this.ws[g]){const e=Buffer.allocUnsafe(2);e.writeUInt16BE(this.#c.closeInfo.code,0);const A=new C(e);this.ws[E].socket.write(A.createFrame(n.CLOSE),(e=>{if(!e){this.ws[g]=true}}))}this.ws[c]=i.CLOSING;this.ws[l]=true;this.end();return}else if(this.#c.opcode===n.PING){const A=this.consume(t);if(!this.ws[l]){const e=new C(A);this.ws[E].socket.write(e.createFrame(n.PONG));if(B.ping.hasSubscribers){B.ping.publish({payload:A})}}this.#a=o.INFO;if(this.#i>0){continue}else{e();return}}else if(this.#c.opcode===n.PONG){const A=this.consume(t);if(B.pong.hasSubscribers){B.pong.publish({payload:A})}if(this.#i>0){continue}else{e();return}}}else if(this.#a===o.PAYLOADLENGTH_16){if(this.#i<2){return e()}const A=this.consume(2);this.#c.payloadLength=A.readUInt16BE(0);this.#a=o.READ_DATA}else if(this.#a===o.PAYLOADLENGTH_64){if(this.#i<8){return e()}const A=this.consume(8);const t=A.readUInt32BE(0);if(t>2**31-1){h(this.ws,"Received payload length > 2^31 bytes.");return}const r=A.readUInt32BE(4);this.#c.payloadLength=(t<<8)+r;this.#a=o.READ_DATA}else if(this.#a===o.READ_DATA){if(this.#i<this.#c.payloadLength){return e()}else if(this.#i>=this.#c.payloadLength){const e=this.consume(this.#c.payloadLength);this.#g.push(e);if(!this.#c.fragmented||this.#c.fin&&this.#c.opcode===n.CONTINUATION){const e=Buffer.concat(this.#g);Q(this.ws,this.#c.originalOpcode,e);this.#c={};this.#g.length=0}this.#a=o.INFO}}if(this.#i>0){continue}else{e();break}}}consume(e){if(e>this.#i){return null}else if(e===0){return a}if(this.#n[0].length===e){this.#i-=this.#n[0].length;return this.#n.shift()}const A=Buffer.allocUnsafe(e);let t=0;while(t!==e){const r=this.#n[0];const{length:s}=r;if(s+t===e){A.set(this.#n.shift(),t);break}else if(s+t>e){A.set(r.subarray(0,e-t),t);this.#n[0]=r.subarray(e-t);break}else{A.set(this.#n.shift(),t);t+=r.length}}this.#i-=e;return A}parseCloseBody(e,A){let t;if(A.length>=2){t=A.readUInt16BE(0)}if(e){if(!u(t)){return null}return{code:t}}let r=A.subarray(2);if(r[0]===239&&r[1]===187&&r[2]===191){r=r.subarray(3)}if(t!==undefined&&!u(t)){return null}try{r=new TextDecoder("utf-8",{fatal:true}).decode(r)}catch{return null}return{code:t,reason:r}}get closingInfo(){return this.#c.closeInfo}}e.exports={ByteParser:ByteParser}},2933:e=>{e.exports={kWebSocketURL:Symbol("url"),kReadyState:Symbol("ready state"),kController:Symbol("controller"),kResponse:Symbol("response"),kBinaryType:Symbol("binary type"),kSentClose:Symbol("sent close"),kReceivedClose:Symbol("received close"),kByteParser:Symbol("byte parser")}},3574:(e,A,t)=>{const{kReadyState:r,kController:s,kResponse:o,kBinaryType:n,kWebSocketURL:i}=t(2933);const{states:a,opcodes:c}=t(5913);const{MessageEvent:g,ErrorEvent:E}=t(6255);function isEstablished(e){return e[r]===a.OPEN}function isClosing(e){return e[r]===a.CLOSING}function isClosed(e){return e[r]===a.CLOSED}function fireEvent(e,A,t=Event,r){const s=new t(e,r);A.dispatchEvent(s)}function websocketMessageReceived(e,A,t){if(e[r]!==a.OPEN){return}let s;if(A===c.TEXT){try{s=new TextDecoder("utf-8",{fatal:true}).decode(t)}catch{failWebsocketConnection(e,"Received invalid UTF-8 in text frame.");return}}else if(A===c.BINARY){if(e[n]==="blob"){s=new Blob([t])}else{s=new Uint8Array(t).buffer}}fireEvent("message",e,g,{origin:e[i].origin,data:s})}function isValidSubprotocol(e){if(e.length===0){return false}for(const A of e){const e=A.charCodeAt(0);if(e<33||e>126||A==="("||A===")"||A==="<"||A===">"||A==="@"||A===","||A===";"||A===":"||A==="\\"||A==='"'||A==="/"||A==="["||A==="]"||A==="?"||A==="="||A==="{"||A==="}"||e===32||e===9){return false}}return true}function isValidStatusCode(e){if(e>=1e3&&e<1015){return e!==1004&&e!==1005&&e!==1006}return e>=3e3&&e<=4999}function failWebsocketConnection(e,A){const{[s]:t,[o]:r}=e;t.abort();if(r?.socket&&!r.socket.destroyed){r.socket.destroy()}if(A){fireEvent("error",e,E,{error:new Error(A)})}}e.exports={isEstablished:isEstablished,isClosing:isClosing,isClosed:isClosed,fireEvent:fireEvent,isValidSubprotocol:isValidSubprotocol,isValidStatusCode:isValidStatusCode,failWebsocketConnection:failWebsocketConnection,websocketMessageReceived:websocketMessageReceived}},5171:(e,A,t)=>{const{webidl:r}=t(4222);const{DOMException:s}=t(7326);const{URLSerializer:o}=t(4322);const{getGlobalOrigin:n}=t(5628);const{staticPropertyDescriptors:i,states:a,opcodes:c,emptyBuffer:g}=t(5913);const{kWebSocketURL:E,kReadyState:l,kController:u,kBinaryType:h,kResponse:Q,kSentClose:C,kByteParser:B}=t(2933);const{isEstablished:I,isClosing:d,isValidSubprotocol:p,failWebsocketConnection:m,fireEvent:y}=t(3574);const{establishWebSocketConnection:w}=t(8550);const{WebsocketFrameSend:R}=t(1237);const{ByteParser:b}=t(3171);const{kEnumerableProperty:k,isBlobLike:D}=t(3440);const{getGlobalDispatcher:S}=t(2581);const{types:F}=t(9023);let T=false;class WebSocket extends EventTarget{#E={open:null,error:null,close:null,message:null};#l=0;#u="";#h="";constructor(e,A=[]){super();r.argumentLengthCheck(arguments,1,{header:"WebSocket constructor"});if(!T){T=true;process.emitWarning("WebSockets are experimental, expect them to change at any time.",{code:"UNDICI-WS"})}const t=r.converters["DOMString or sequence<DOMString> or WebSocketInit"](A);e=r.converters.USVString(e);A=t.protocols;const o=n();let i;try{i=new URL(e,o)}catch(e){throw new s(e,"SyntaxError")}if(i.protocol==="http:"){i.protocol="ws:"}else if(i.protocol==="https:"){i.protocol="wss:"}if(i.protocol!=="ws:"&&i.protocol!=="wss:"){throw new s(`Expected a ws: or wss: protocol, got ${i.protocol}`,"SyntaxError")}if(i.hash||i.href.endsWith("#")){throw new s("Got fragment","SyntaxError")}if(typeof A==="string"){A=[A]}if(A.length!==new Set(A.map((e=>e.toLowerCase()))).size){throw new s("Invalid Sec-WebSocket-Protocol value","SyntaxError")}if(A.length>0&&!A.every((e=>p(e)))){throw new s("Invalid Sec-WebSocket-Protocol value","SyntaxError")}this[E]=new URL(i.href);this[u]=w(i,A,this,(e=>this.#Q(e)),t);this[l]=WebSocket.CONNECTING;this[h]="blob"}close(e=undefined,A=undefined){r.brandCheck(this,WebSocket);if(e!==undefined){e=r.converters["unsigned short"](e,{clamp:true})}if(A!==undefined){A=r.converters.USVString(A)}if(e!==undefined){if(e!==1e3&&(e<3e3||e>4999)){throw new s("invalid code","InvalidAccessError")}}let t=0;if(A!==undefined){t=Buffer.byteLength(A);if(t>123){throw new s(`Reason must be less than 123 bytes; received ${t}`,"SyntaxError")}}if(this[l]===WebSocket.CLOSING||this[l]===WebSocket.CLOSED){}else if(!I(this)){m(this,"Connection was closed before it was established.");this[l]=WebSocket.CLOSING}else if(!d(this)){const r=new R;if(e!==undefined&&A===undefined){r.frameData=Buffer.allocUnsafe(2);r.frameData.writeUInt16BE(e,0)}else if(e!==undefined&&A!==undefined){r.frameData=Buffer.allocUnsafe(2+t);r.frameData.writeUInt16BE(e,0);r.frameData.write(A,2,"utf-8")}else{r.frameData=g}const s=this[Q].socket;s.write(r.createFrame(c.CLOSE),(e=>{if(!e){this[C]=true}}));this[l]=a.CLOSING}else{this[l]=WebSocket.CLOSING}}send(e){r.brandCheck(this,WebSocket);r.argumentLengthCheck(arguments,1,{header:"WebSocket.send"});e=r.converters.WebSocketSendData(e);if(this[l]===WebSocket.CONNECTING){throw new s("Sent before connected.","InvalidStateError")}if(!I(this)||d(this)){return}const A=this[Q].socket;if(typeof e==="string"){const t=Buffer.from(e);const r=new R(t);const s=r.createFrame(c.TEXT);this.#l+=t.byteLength;A.write(s,(()=>{this.#l-=t.byteLength}))}else if(F.isArrayBuffer(e)){const t=Buffer.from(e);const r=new R(t);const s=r.createFrame(c.BINARY);this.#l+=t.byteLength;A.write(s,(()=>{this.#l-=t.byteLength}))}else if(ArrayBuffer.isView(e)){const t=Buffer.from(e,e.byteOffset,e.byteLength);const r=new R(t);const s=r.createFrame(c.BINARY);this.#l+=t.byteLength;A.write(s,(()=>{this.#l-=t.byteLength}))}else if(D(e)){const t=new R;e.arrayBuffer().then((e=>{const r=Buffer.from(e);t.frameData=r;const s=t.createFrame(c.BINARY);this.#l+=r.byteLength;A.write(s,(()=>{this.#l-=r.byteLength}))}))}}get readyState(){r.brandCheck(this,WebSocket);return this[l]}get bufferedAmount(){r.brandCheck(this,WebSocket);return this.#l}get url(){r.brandCheck(this,WebSocket);return o(this[E])}get extensions(){r.brandCheck(this,WebSocket);return this.#h}get protocol(){r.brandCheck(this,WebSocket);return this.#u}get onopen(){r.brandCheck(this,WebSocket);return this.#E.open}set onopen(e){r.brandCheck(this,WebSocket);if(this.#E.open){this.removeEventListener("open",this.#E.open)}if(typeof e==="function"){this.#E.open=e;this.addEventListener("open",e)}else{this.#E.open=null}}get onerror(){r.brandCheck(this,WebSocket);return this.#E.error}set onerror(e){r.brandCheck(this,WebSocket);if(this.#E.error){this.removeEventListener("error",this.#E.error)}if(typeof e==="function"){this.#E.error=e;this.addEventListener("error",e)}else{this.#E.error=null}}get onclose(){r.brandCheck(this,WebSocket);return this.#E.close}set onclose(e){r.brandCheck(this,WebSocket);if(this.#E.close){this.removeEventListener("close",this.#E.close)}if(typeof e==="function"){this.#E.close=e;this.addEventListener("close",e)}else{this.#E.close=null}}get onmessage(){r.brandCheck(this,WebSocket);return this.#E.message}set onmessage(e){r.brandCheck(this,WebSocket);if(this.#E.message){this.removeEventListener("message",this.#E.message)}if(typeof e==="function"){this.#E.message=e;this.addEventListener("message",e)}else{this.#E.message=null}}get binaryType(){r.brandCheck(this,WebSocket);return this[h]}set binaryType(e){r.brandCheck(this,WebSocket);if(e!=="blob"&&e!=="arraybuffer"){this[h]="blob"}else{this[h]=e}}#Q(e){this[Q]=e;const A=new b(this);A.on("drain",(function onParserDrain(){this.ws[Q].socket.resume()}));e.socket.ws=this;this[B]=A;this[l]=a.OPEN;const t=e.headersList.get("sec-websocket-extensions");if(t!==null){this.#h=t}const r=e.headersList.get("sec-websocket-protocol");if(r!==null){this.#u=r}y("open",this)}}WebSocket.CONNECTING=WebSocket.prototype.CONNECTING=a.CONNECTING;WebSocket.OPEN=WebSocket.prototype.OPEN=a.OPEN;WebSocket.CLOSING=WebSocket.prototype.CLOSING=a.CLOSING;WebSocket.CLOSED=WebSocket.prototype.CLOSED=a.CLOSED;Object.defineProperties(WebSocket.prototype,{CONNECTING:i,OPEN:i,CLOSING:i,CLOSED:i,url:k,readyState:k,bufferedAmount:k,onopen:k,onerror:k,onclose:k,close:k,onmessage:k,binaryType:k,send:k,extensions:k,protocol:k,[Symbol.toStringTag]:{value:"WebSocket",writable:false,enumerable:false,configurable:true}});Object.defineProperties(WebSocket,{CONNECTING:i,OPEN:i,CLOSING:i,CLOSED:i});r.converters["sequence<DOMString>"]=r.sequenceConverter(r.converters.DOMString);r.converters["DOMString or sequence<DOMString>"]=function(e){if(r.util.Type(e)==="Object"&&Symbol.iterator in e){return r.converters["sequence<DOMString>"](e)}return r.converters.DOMString(e)};r.converters.WebSocketInit=r.dictionaryConverter([{key:"protocols",converter:r.converters["DOMString or sequence<DOMString>"],get defaultValue(){return[]}},{key:"dispatcher",converter:e=>e,get defaultValue(){return S()}},{key:"headers",converter:r.nullableConverter(r.converters.HeadersInit)}]);r.converters["DOMString or sequence<DOMString> or WebSocketInit"]=function(e){if(r.util.Type(e)==="Object"&&!(Symbol.iterator in e)){return r.converters.WebSocketInit(e)}return{protocols:r.converters["DOMString or sequence<DOMString>"](e)}};r.converters.WebSocketSendData=function(e){if(r.util.Type(e)==="Object"){if(D(e)){return r.converters.Blob(e,{strict:false})}if(ArrayBuffer.isView(e)||F.isAnyArrayBuffer(e)){return r.converters.BufferSource(e)}}return r.converters.USVString(e)};e.exports={WebSocket:WebSocket}},3843:(e,A)=>{Object.defineProperty(A,"__esModule",{value:true});function getUserAgent(){if(typeof navigator==="object"&&"userAgent"in navigator){return navigator.userAgent}if(typeof process==="object"&&process.version!==undefined){return`Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`}return"<environment undetectable>"}A.getUserAgent=getUserAgent},8264:e=>{e.exports=wrappy;function wrappy(e,A){if(e&&A)return wrappy(e)(A);if(typeof e!=="function")throw new TypeError("need wrapper function");Object.keys(e).forEach((function(A){wrapper[A]=e[A]}));return wrapper;function wrapper(){var A=new Array(arguments.length);for(var t=0;t<A.length;t++){A[t]=arguments[t]}var r=e.apply(this,A);var s=A[A.length-1];if(typeof r==="function"&&r!==s){Object.keys(s).forEach((function(e){r[e]=s[e]}))}return r}}},2613:A=>{A.exports=e(import.meta.url)("assert")},290:A=>{A.exports=e(import.meta.url)("async_hooks")},181:A=>{A.exports=e(import.meta.url)("buffer")},5317:A=>{A.exports=e(import.meta.url)("child_process")},4236:A=>{A.exports=e(import.meta.url)("console")},6982:A=>{A.exports=e(import.meta.url)("crypto")},1637:A=>{A.exports=e(import.meta.url)("diagnostics_channel")},4434:A=>{A.exports=e(import.meta.url)("events")},9896:A=>{A.exports=e(import.meta.url)("fs")},8611:A=>{A.exports=e(import.meta.url)("http")},5675:A=>{A.exports=e(import.meta.url)("http2")},5692:A=>{A.exports=e(import.meta.url)("https")},9278:A=>{A.exports=e(import.meta.url)("net")},7598:A=>{A.exports=e(import.meta.url)("node:crypto")},8474:A=>{A.exports=e(import.meta.url)("node:events")},7075:A=>{A.exports=e(import.meta.url)("node:stream")},7975:A=>{A.exports=e(import.meta.url)("node:util")},857:A=>{A.exports=e(import.meta.url)("os")},6928:A=>{A.exports=e(import.meta.url)("path")},2987:A=>{A.exports=e(import.meta.url)("perf_hooks")},3480:A=>{A.exports=e(import.meta.url)("querystring")},2203:A=>{A.exports=e(import.meta.url)("stream")},3774:A=>{A.exports=e(import.meta.url)("stream/web")},3193:A=>{A.exports=e(import.meta.url)("string_decoder")},3557:A=>{A.exports=e(import.meta.url)("timers")},4756:A=>{A.exports=e(import.meta.url)("tls")},7016:A=>{A.exports=e(import.meta.url)("url")},9023:A=>{A.exports=e(import.meta.url)("util")},8253:A=>{A.exports=e(import.meta.url)("util/types")},8167:A=>{A.exports=e(import.meta.url)("worker_threads")},3106:A=>{A.exports=e(import.meta.url)("zlib")},7182:(e,A,t)=>{const r=t(7075).Writable;const s=t(7975).inherits;const o=t(4136);const n=t(612);const i=t(2271);const a=45;const c=Buffer.from("-");const g=Buffer.from("\r\n");const EMPTY_FN=function(){};function Dicer(e){if(!(this instanceof Dicer)){return new Dicer(e)}r.call(this,e);if(!e||!e.headerFirst&&typeof e.boundary!=="string"){throw new TypeError("Boundary required")}if(typeof e.boundary==="string"){this.setBoundary(e.boundary)}else{this._bparser=undefined}this._headerFirst=e.headerFirst;this._dashes=0;this._parts=0;this._finished=false;this._realFinish=false;this._isPreamble=true;this._justMatched=false;this._firstWrite=true;this._inHeader=true;this._part=undefined;this._cb=undefined;this._ignoreData=false;this._partOpts={highWaterMark:e.partHwm};this._pause=false;const A=this;this._hparser=new i(e);this._hparser.on("header",(function(e){A._inHeader=false;A._part.emit("header",e)}))}s(Dicer,r);Dicer.prototype.emit=function(e){if(e==="finish"&&!this._realFinish){if(!this._finished){const e=this;process.nextTick((function(){e.emit("error",new Error("Unexpected end of multipart data"));if(e._part&&!e._ignoreData){const A=e._isPreamble?"Preamble":"Part";e._part.emit("error",new Error(A+" terminated early due to unexpected end of multipart data"));e._part.push(null);process.nextTick((function(){e._realFinish=true;e.emit("finish");e._realFinish=false}));return}e._realFinish=true;e.emit("finish");e._realFinish=false}))}}else{r.prototype.emit.apply(this,arguments)}};Dicer.prototype._write=function(e,A,t){if(!this._hparser&&!this._bparser){return t()}if(this._headerFirst&&this._isPreamble){if(!this._part){this._part=new n(this._partOpts);if(this.listenerCount("preamble")!==0){this.emit("preamble",this._part)}else{this._ignore()}}const A=this._hparser.push(e);if(!this._inHeader&&A!==undefined&&A<e.length){e=e.slice(A)}else{return t()}}if(this._firstWrite){this._bparser.push(g);this._firstWrite=false}this._bparser.push(e);if(this._pause){this._cb=t}else{t()}};Dicer.prototype.reset=function(){this._part=undefined;this._bparser=undefined;this._hparser=undefined};Dicer.prototype.setBoundary=function(e){const A=this;this._bparser=new o("\r\n--"+e);this._bparser.on("info",(function(e,t,r,s){A._oninfo(e,t,r,s)}))};Dicer.prototype._ignore=function(){if(this._part&&!this._ignoreData){this._ignoreData=true;this._part.on("error",EMPTY_FN);this._part.resume()}};Dicer.prototype._oninfo=function(e,A,t,r){let s;const o=this;let i=0;let g;let E=true;if(!this._part&&this._justMatched&&A){while(this._dashes<2&&t+i<r){if(A[t+i]===a){++i;++this._dashes}else{if(this._dashes){s=c}this._dashes=0;break}}if(this._dashes===2){if(t+i<r&&this.listenerCount("trailer")!==0){this.emit("trailer",A.slice(t+i,r))}this.reset();this._finished=true;if(o._parts===0){o._realFinish=true;o.emit("finish");o._realFinish=false}}if(this._dashes){return}}if(this._justMatched){this._justMatched=false}if(!this._part){this._part=new n(this._partOpts);this._part._read=function(e){o._unpause()};if(this._isPreamble&&this.listenerCount("preamble")!==0){this.emit("preamble",this._part)}else if(this._isPreamble!==true&&this.listenerCount("part")!==0){this.emit("part",this._part)}else{this._ignore()}if(!this._isPreamble){this._inHeader=true}}if(A&&t<r&&!this._ignoreData){if(this._isPreamble||!this._inHeader){if(s){E=this._part.push(s)}E=this._part.push(A.slice(t,r));if(!E){this._pause=true}}else if(!this._isPreamble&&this._inHeader){if(s){this._hparser.push(s)}g=this._hparser.push(A.slice(t,r));if(!this._inHeader&&g!==undefined&&g<r){this._oninfo(false,A,t+g,r)}}}if(e){this._hparser.reset();if(this._isPreamble){this._isPreamble=false}else{if(t!==r){++this._parts;this._part.on("end",(function(){if(--o._parts===0){if(o._finished){o._realFinish=true;o.emit("finish");o._realFinish=false}else{o._unpause()}}}))}}this._part.push(null);this._part=undefined;this._ignoreData=false;this._justMatched=true;this._dashes=0}};Dicer.prototype._unpause=function(){if(!this._pause){return}this._pause=false;if(this._cb){const e=this._cb;this._cb=undefined;e()}};e.exports=Dicer},2271:(e,A,t)=>{const r=t(8474).EventEmitter;const s=t(7975).inherits;const o=t(2393);const n=t(4136);const i=Buffer.from("\r\n\r\n");const a=/\r\n/g;const c=/^([^:]+):[ \t]?([\x00-\xFF]+)?$/;function HeaderParser(e){r.call(this);e=e||{};const A=this;this.nread=0;this.maxed=false;this.npairs=0;this.maxHeaderPairs=o(e,"maxHeaderPairs",2e3);this.maxHeaderSize=o(e,"maxHeaderSize",80*1024);this.buffer="";this.header={};this.finished=false;this.ss=new n(i);this.ss.on("info",(function(e,t,r,s){if(t&&!A.maxed){if(A.nread+s-r>=A.maxHeaderSize){s=A.maxHeaderSize-A.nread+r;A.nread=A.maxHeaderSize;A.maxed=true}else{A.nread+=s-r}A.buffer+=t.toString("binary",r,s)}if(e){A._finish()}}))}s(HeaderParser,r);HeaderParser.prototype.push=function(e){const A=this.ss.push(e);if(this.finished){return A}};HeaderParser.prototype.reset=function(){this.finished=false;this.buffer="";this.header={};this.ss.reset()};HeaderParser.prototype._finish=function(){if(this.buffer){this._parseHeader()}this.ss.matches=this.ss.maxMatches;const e=this.header;this.header={};this.buffer="";this.finished=true;this.nread=this.npairs=0;this.maxed=false;this.emit("header",e)};HeaderParser.prototype._parseHeader=function(){if(this.npairs===this.maxHeaderPairs){return}const e=this.buffer.split(a);const A=e.length;let t,r;for(var s=0;s<A;++s){if(e[s].length===0){continue}if(e[s][0]==="\t"||e[s][0]===" "){if(r){this.header[r][this.header[r].length-1]+=e[s];continue}}const A=e[s].indexOf(":");if(A===-1||A===0){return}t=c.exec(e[s]);r=t[1].toLowerCase();this.header[r]=this.header[r]||[];this.header[r].push(t[2]||"");if(++this.npairs===this.maxHeaderPairs){break}}};e.exports=HeaderParser},612:(e,A,t)=>{const r=t(7975).inherits;const s=t(7075).Readable;function PartStream(e){s.call(this,e)}r(PartStream,s);PartStream.prototype._read=function(e){};e.exports=PartStream},4136:(e,A,t)=>{const r=t(8474).EventEmitter;const s=t(7975).inherits;function SBMH(e){if(typeof e==="string"){e=Buffer.from(e)}if(!Buffer.isBuffer(e)){throw new TypeError("The needle has to be a String or a Buffer.")}const A=e.length;if(A===0){throw new Error("The needle cannot be an empty String/Buffer.")}if(A>256){throw new Error("The needle cannot have a length bigger than 256.")}this.maxMatches=Infinity;this.matches=0;this._occ=new Array(256).fill(A);this._lookbehind_size=0;this._needle=e;this._bufpos=0;this._lookbehind=Buffer.alloc(A);for(var t=0;t<A-1;++t){this._occ[e[t]]=A-1-t}}s(SBMH,r);SBMH.prototype.reset=function(){this._lookbehind_size=0;this.matches=0;this._bufpos=0};SBMH.prototype.push=function(e,A){if(!Buffer.isBuffer(e)){e=Buffer.from(e,"binary")}const t=e.length;this._bufpos=A||0;let r;while(r!==t&&this.matches<this.maxMatches){r=this._sbmh_feed(e)}return r};SBMH.prototype._sbmh_feed=function(e){const A=e.length;const t=this._needle;const r=t.length;const s=t[r-1];let o=-this._lookbehind_size;let n;if(o<0){while(o<0&&o<=A-r){n=this._sbmh_lookup_char(e,o+r-1);if(n===s&&this._sbmh_memcmp(e,o,r-1)){this._lookbehind_size=0;++this.matches;this.emit("info",true);return this._bufpos=o+r}o+=this._occ[n]}if(o<0){while(o<0&&!this._sbmh_memcmp(e,o,A-o)){++o}}if(o>=0){this.emit("info",false,this._lookbehind,0,this._lookbehind_size);this._lookbehind_size=0}else{const t=this._lookbehind_size+o;if(t>0){this.emit("info",false,this._lookbehind,0,t)}this._lookbehind.copy(this._lookbehind,0,t,this._lookbehind_size-t);this._lookbehind_size-=t;e.copy(this._lookbehind,this._lookbehind_size);this._lookbehind_size+=A;this._bufpos=A;return A}}o+=(o>=0)*this._bufpos;if(e.indexOf(t,o)!==-1){o=e.indexOf(t,o);++this.matches;if(o>0){this.emit("info",true,e,this._bufpos,o)}else{this.emit("info",true)}return this._bufpos=o+r}else{o=A-r}while(o<A&&(e[o]!==t[0]||Buffer.compare(e.subarray(o,o+A-o),t.subarray(0,A-o))!==0)){++o}if(o<A){e.copy(this._lookbehind,0,o,o+(A-o));this._lookbehind_size=A-o}if(o>0){this.emit("info",false,e,this._bufpos,o<A?o:A)}this._bufpos=A;return A};SBMH.prototype._sbmh_lookup_char=function(e,A){return A<0?this._lookbehind[this._lookbehind_size+A]:e[A]};SBMH.prototype._sbmh_memcmp=function(e,A,t){for(var r=0;r<t;++r){if(this._sbmh_lookup_char(e,A+r)!==this._needle[r]){return false}}return true};e.exports=SBMH},9581:(e,A,t)=>{const r=t(7075).Writable;const{inherits:s}=t(7975);const o=t(7182);const n=t(1192);const i=t(855);const a=t(8929);function Busboy(e){if(!(this instanceof Busboy)){return new Busboy(e)}if(typeof e!=="object"){throw new TypeError("Busboy expected an options-Object.")}if(typeof e.headers!=="object"){throw new TypeError("Busboy expected an options-Object with headers-attribute.")}if(typeof e.headers["content-type"]!=="string"){throw new TypeError("Missing Content-Type-header.")}const{headers:A,...t}=e;this.opts={autoDestroy:false,...t};r.call(this,this.opts);this._done=false;this._parser=this.getParserByHeaders(A);this._finished=false}s(Busboy,r);Busboy.prototype.emit=function(e){if(e==="finish"){if(!this._done){this._parser?.end();return}else if(this._finished){return}this._finished=true}r.prototype.emit.apply(this,arguments)};Busboy.prototype.getParserByHeaders=function(e){const A=a(e["content-type"]);const t={defCharset:this.opts.defCharset,fileHwm:this.opts.fileHwm,headers:e,highWaterMark:this.opts.highWaterMark,isPartAFile:this.opts.isPartAFile,limits:this.opts.limits,parsedConType:A,preservePath:this.opts.preservePath};if(n.detect.test(A[0])){return new n(this,t)}if(i.detect.test(A[0])){return new i(this,t)}throw new Error("Unsupported Content-Type.")};Busboy.prototype._write=function(e,A,t){this._parser.write(e,t)};e.exports=Busboy;e.exports["default"]=Busboy;e.exports.Busboy=Busboy;e.exports.Dicer=o},1192:(e,A,t)=>{const{Readable:r}=t(7075);const{inherits:s}=t(7975);const o=t(7182);const n=t(8929);const i=t(2747);const a=t(692);const c=t(2393);const g=/^boundary$/i;const E=/^form-data$/i;const l=/^charset$/i;const u=/^filename$/i;const h=/^name$/i;Multipart.detect=/^multipart\/form-data/i;function Multipart(e,A){let t;let r;const s=this;let Q;const C=A.limits;const B=A.isPartAFile||((e,A,t)=>A==="application/octet-stream"||t!==undefined);const I=A.parsedConType||[];const d=A.defCharset||"utf8";const p=A.preservePath;const m={highWaterMark:A.fileHwm};for(t=0,r=I.length;t<r;++t){if(Array.isArray(I[t])&&g.test(I[t][0])){Q=I[t][1];break}}function checkFinished(){if(N===0&&v&&!e._done){v=false;s.end()}}if(typeof Q!=="string"){throw new Error("Multipart: Boundary not found")}const y=c(C,"fieldSize",1*1024*1024);const w=c(C,"fileSize",Infinity);const R=c(C,"files",Infinity);const b=c(C,"fields",Infinity);const k=c(C,"parts",Infinity);const D=c(C,"headerPairs",2e3);const S=c(C,"headerSize",80*1024);let F=0;let T=0;let N=0;let U;let L;let v=false;this._needDrain=false;this._pause=false;this._cb=undefined;this._nparts=0;this._boy=e;const G={boundary:Q,maxHeaderPairs:D,maxHeaderSize:S,partHwm:m.highWaterMark,highWaterMark:A.highWaterMark};this.parser=new o(G);this.parser.on("drain",(function(){s._needDrain=false;if(s._cb&&!s._pause){const e=s._cb;s._cb=undefined;e()}})).on("part",(function onPart(A){if(++s._nparts>k){s.parser.removeListener("part",onPart);s.parser.on("part",skipPart);e.hitPartsLimit=true;e.emit("partsLimit");return skipPart(A)}if(L){const e=L;e.emit("end");e.removeAllListeners("end")}A.on("header",(function(o){let c;let g;let Q;let C;let I;let k;let D=0;if(o["content-type"]){Q=n(o["content-type"][0]);if(Q[0]){c=Q[0].toLowerCase();for(t=0,r=Q.length;t<r;++t){if(l.test(Q[t][0])){C=Q[t][1].toLowerCase();break}}}}if(c===undefined){c="text/plain"}if(C===undefined){C=d}if(o["content-disposition"]){Q=n(o["content-disposition"][0]);if(!E.test(Q[0])){return skipPart(A)}for(t=0,r=Q.length;t<r;++t){if(h.test(Q[t][0])){g=Q[t][1]}else if(u.test(Q[t][0])){k=Q[t][1];if(!p){k=a(k)}}}}else{return skipPart(A)}if(o["content-transfer-encoding"]){I=o["content-transfer-encoding"][0].toLowerCase()}else{I="7bit"}let S,v;if(B(g,c,k)){if(F===R){if(!e.hitFilesLimit){e.hitFilesLimit=true;e.emit("filesLimit")}return skipPart(A)}++F;if(e.listenerCount("file")===0){s.parser._ignore();return}++N;const t=new FileStream(m);U=t;t.on("end",(function(){--N;s._pause=false;checkFinished();if(s._cb&&!s._needDrain){const e=s._cb;s._cb=undefined;e()}}));t._read=function(e){if(!s._pause){return}s._pause=false;if(s._cb&&!s._needDrain){const e=s._cb;s._cb=undefined;e()}};e.emit("file",g,t,k,I,c);S=function(e){if((D+=e.length)>w){const r=w-D+e.length;if(r>0){t.push(e.slice(0,r))}t.truncated=true;t.bytesRead=w;A.removeAllListeners("data");t.emit("limit");return}else if(!t.push(e)){s._pause=true}t.bytesRead=D};v=function(){U=undefined;t.push(null)}}else{if(T===b){if(!e.hitFieldsLimit){e.hitFieldsLimit=true;e.emit("fieldsLimit")}return skipPart(A)}++T;++N;let t="";let r=false;L=A;S=function(e){if((D+=e.length)>y){const s=y-(D-e.length);t+=e.toString("binary",0,s);r=true;A.removeAllListeners("data")}else{t+=e.toString("binary")}};v=function(){L=undefined;if(t.length){t=i(t,"binary",C)}e.emit("field",g,t,false,r,I,c);--N;checkFinished()}}A._readableState.sync=false;A.on("data",S);A.on("end",v)})).on("error",(function(e){if(U){U.emit("error",e)}}))})).on("error",(function(A){e.emit("error",A)})).on("finish",(function(){v=true;checkFinished()}))}Multipart.prototype.write=function(e,A){const t=this.parser.write(e);if(t&&!this._pause){A()}else{this._needDrain=!t;this._cb=A}};Multipart.prototype.end=function(){const e=this;if(e.parser.writable){e.parser.end()}else if(!e._boy._done){process.nextTick((function(){e._boy._done=true;e._boy.emit("finish")}))}};function skipPart(e){e.resume()}function FileStream(e){r.call(this,e);this.bytesRead=0;this.truncated=false}s(FileStream,r);FileStream.prototype._read=function(e){};e.exports=Multipart},855:(e,A,t)=>{const r=t(1496);const s=t(2747);const o=t(2393);const n=/^charset$/i;UrlEncoded.detect=/^application\/x-www-form-urlencoded/i;function UrlEncoded(e,A){const t=A.limits;const s=A.parsedConType;this.boy=e;this.fieldSizeLimit=o(t,"fieldSize",1*1024*1024);this.fieldNameSizeLimit=o(t,"fieldNameSize",100);this.fieldsLimit=o(t,"fields",Infinity);let i;for(var a=0,c=s.length;a<c;++a){if(Array.isArray(s[a])&&n.test(s[a][0])){i=s[a][1].toLowerCase();break}}if(i===undefined){i=A.defCharset||"utf8"}this.decoder=new r;this.charset=i;this._fields=0;this._state="key";this._checkingBytes=true;this._bytesKey=0;this._bytesVal=0;this._key="";this._val="";this._keyTrunc=false;this._valTrunc=false;this._hitLimit=false}UrlEncoded.prototype.write=function(e,A){if(this._fields===this.fieldsLimit){if(!this.boy.hitFieldsLimit){this.boy.hitFieldsLimit=true;this.boy.emit("fieldsLimit")}return A()}let t;let r;let o;let n=0;const i=e.length;while(n<i){if(this._state==="key"){t=r=undefined;for(o=n;o<i;++o){if(!this._checkingBytes){++n}if(e[o]===61){t=o;break}else if(e[o]===38){r=o;break}if(this._checkingBytes&&this._bytesKey===this.fieldNameSizeLimit){this._hitLimit=true;break}else if(this._checkingBytes){++this._bytesKey}}if(t!==undefined){if(t>n){this._key+=this.decoder.write(e.toString("binary",n,t))}this._state="val";this._hitLimit=false;this._checkingBytes=true;this._val="";this._bytesVal=0;this._valTrunc=false;this.decoder.reset();n=t+1}else if(r!==undefined){++this._fields;let t;const o=this._keyTrunc;if(r>n){t=this._key+=this.decoder.write(e.toString("binary",n,r))}else{t=this._key}this._hitLimit=false;this._checkingBytes=true;this._key="";this._bytesKey=0;this._keyTrunc=false;this.decoder.reset();if(t.length){this.boy.emit("field",s(t,"binary",this.charset),"",o,false)}n=r+1;if(this._fields===this.fieldsLimit){return A()}}else if(this._hitLimit){if(o>n){this._key+=this.decoder.write(e.toString("binary",n,o))}n=o;if((this._bytesKey=this._key.length)===this.fieldNameSizeLimit){this._checkingBytes=false;this._keyTrunc=true}}else{if(n<i){this._key+=this.decoder.write(e.toString("binary",n))}n=i}}else{r=undefined;for(o=n;o<i;++o){if(!this._checkingBytes){++n}if(e[o]===38){r=o;break}if(this._checkingBytes&&this._bytesVal===this.fieldSizeLimit){this._hitLimit=true;break}else if(this._checkingBytes){++this._bytesVal}}if(r!==undefined){++this._fields;if(r>n){this._val+=this.decoder.write(e.toString("binary",n,r))}this.boy.emit("field",s(this._key,"binary",this.charset),s(this._val,"binary",this.charset),this._keyTrunc,this._valTrunc);this._state="key";this._hitLimit=false;this._checkingBytes=true;this._key="";this._bytesKey=0;this._keyTrunc=false;this.decoder.reset();n=r+1;if(this._fields===this.fieldsLimit){return A()}}else if(this._hitLimit){if(o>n){this._val+=this.decoder.write(e.toString("binary",n,o))}n=o;if(this._val===""&&this.fieldSizeLimit===0||(this._bytesVal=this._val.length)===this.fieldSizeLimit){this._checkingBytes=false;this._valTrunc=true}}else{if(n<i){this._val+=this.decoder.write(e.toString("binary",n))}n=i}}}A()};UrlEncoded.prototype.end=function(){if(this.boy._done){return}if(this._state==="key"&&this._key.length>0){this.boy.emit("field",s(this._key,"binary",this.charset),"",this._keyTrunc,false)}else if(this._state==="val"){this.boy.emit("field",s(this._key,"binary",this.charset),s(this._val,"binary",this.charset),this._keyTrunc,this._valTrunc)}this.boy._done=true;this.boy.emit("finish")};e.exports=UrlEncoded},1496:e=>{const A=/\+/g;const t=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];function Decoder(){this.buffer=undefined}Decoder.prototype.write=function(e){e=e.replace(A," ");let r="";let s=0;let o=0;const n=e.length;for(;s<n;++s){if(this.buffer!==undefined){if(!t[e.charCodeAt(s)]){r+="%"+this.buffer;this.buffer=undefined;--s}else{this.buffer+=e[s];++o;if(this.buffer.length===2){r+=String.fromCharCode(parseInt(this.buffer,16));this.buffer=undefined}}}else if(e[s]==="%"){if(s>o){r+=e.substring(o,s);o=s}this.buffer="";++o}}if(o<n&&this.buffer===undefined){r+=e.substring(o)}return r};Decoder.prototype.reset=function(){this.buffer=undefined};e.exports=Decoder},692:e=>{e.exports=function basename(e){if(typeof e!=="string"){return""}for(var A=e.length-1;A>=0;--A){switch(e.charCodeAt(A)){case 47:case 92:e=e.slice(A+1);return e===".."||e==="."?"":e}}return e===".."||e==="."?"":e}},2747:function(e){const A=new TextDecoder("utf-8");const t=new Map([["utf-8",A],["utf8",A]]);function getDecoder(e){let A;while(true){switch(e){case"utf-8":case"utf8":return r.utf8;case"latin1":case"ascii":case"us-ascii":case"iso-8859-1":case"iso8859-1":case"iso88591":case"iso_8859-1":case"windows-1252":case"iso_8859-1:1987":case"cp1252":case"x-cp1252":return r.latin1;case"utf16le":case"utf-16le":case"ucs2":case"ucs-2":return r.utf16le;case"base64":return r.base64;default:if(A===undefined){A=true;e=e.toLowerCase();continue}return r.other.bind(e)}}}const r={utf8:(e,A)=>{if(e.length===0){return""}if(typeof e==="string"){e=Buffer.from(e,A)}return e.utf8Slice(0,e.length)},latin1:(e,A)=>{if(e.length===0){return""}if(typeof e==="string"){return e}return e.latin1Slice(0,e.length)},utf16le:(e,A)=>{if(e.length===0){return""}if(typeof e==="string"){e=Buffer.from(e,A)}return e.ucs2Slice(0,e.length)},base64:(e,A)=>{if(e.length===0){return""}if(typeof e==="string"){e=Buffer.from(e,A)}return e.base64Slice(0,e.length)},other:(e,A)=>{if(e.length===0){return""}if(typeof e==="string"){e=Buffer.from(e,A)}if(t.has(this.toString())){try{return t.get(this).decode(e)}catch{}}return typeof e==="string"?e:e.toString()}};function decodeText(e,A,t){if(e){return getDecoder(t)(e,A)}return e}e.exports=decodeText},2393:e=>{e.exports=function getLimit(e,A,t){if(!e||e[A]===undefined||e[A]===null){return t}if(typeof e[A]!=="number"||isNaN(e[A])){throw new TypeError("Limit "+A+" is not a valid number")}return e[A]}},8929:(e,A,t)=>{const r=t(2747);const s=/%[a-fA-F0-9][a-fA-F0-9]/g;const o={"%00":"\0","%01":"","%02":"","%03":"","%04":"","%05":"","%06":"","%07":"","%08":"\b","%09":"\t","%0a":"\n","%0A":"\n","%0b":"\v","%0B":"\v","%0c":"\f","%0C":"\f","%0d":"\r","%0D":"\r","%0e":"","%0E":"","%0f":"","%0F":"","%10":"","%11":"","%12":"","%13":"","%14":"","%15":"","%16":"","%17":"","%18":"","%19":"","%1a":"","%1A":"","%1b":"","%1B":"","%1c":"","%1C":"","%1d":"","%1D":"","%1e":"","%1E":"","%1f":"","%1F":"","%20":" ","%21":"!","%22":'"',"%23":"#","%24":"$","%25":"%","%26":"&","%27":"'","%28":"(","%29":")","%2a":"*","%2A":"*","%2b":"+","%2B":"+","%2c":",","%2C":",","%2d":"-","%2D":"-","%2e":".","%2E":".","%2f":"/","%2F":"/","%30":"0","%31":"1","%32":"2","%33":"3","%34":"4","%35":"5","%36":"6","%37":"7","%38":"8","%39":"9","%3a":":","%3A":":","%3b":";","%3B":";","%3c":"<","%3C":"<","%3d":"=","%3D":"=","%3e":">","%3E":">","%3f":"?","%3F":"?","%40":"@","%41":"A","%42":"B","%43":"C","%44":"D","%45":"E","%46":"F","%47":"G","%48":"H","%49":"I","%4a":"J","%4A":"J","%4b":"K","%4B":"K","%4c":"L","%4C":"L","%4d":"M","%4D":"M","%4e":"N","%4E":"N","%4f":"O","%4F":"O","%50":"P","%51":"Q","%52":"R","%53":"S","%54":"T","%55":"U","%56":"V","%57":"W","%58":"X","%59":"Y","%5a":"Z","%5A":"Z","%5b":"[","%5B":"[","%5c":"\\","%5C":"\\","%5d":"]","%5D":"]","%5e":"^","%5E":"^","%5f":"_","%5F":"_","%60":"`","%61":"a","%62":"b","%63":"c","%64":"d","%65":"e","%66":"f","%67":"g","%68":"h","%69":"i","%6a":"j","%6A":"j","%6b":"k","%6B":"k","%6c":"l","%6C":"l","%6d":"m","%6D":"m","%6e":"n","%6E":"n","%6f":"o","%6F":"o","%70":"p","%71":"q","%72":"r","%73":"s","%74":"t","%75":"u","%76":"v","%77":"w","%78":"x","%79":"y","%7a":"z","%7A":"z","%7b":"{","%7B":"{","%7c":"|","%7C":"|","%7d":"}","%7D":"}","%7e":"~","%7E":"~","%7f":"","%7F":"","%80":"€","%81":"","%82":"‚","%83":"ƒ","%84":"„","%85":"…","%86":"†","%87":"‡","%88":"ˆ","%89":"‰","%8a":"Š","%8A":"Š","%8b":"‹","%8B":"‹","%8c":"Œ","%8C":"Œ","%8d":"","%8D":"","%8e":"Ž","%8E":"Ž","%8f":"","%8F":"","%90":"","%91":"‘","%92":"’","%93":"“","%94":"”","%95":"•","%96":"–","%97":"—","%98":"˜","%99":"™","%9a":"š","%9A":"š","%9b":"›","%9B":"›","%9c":"œ","%9C":"œ","%9d":"","%9D":"","%9e":"ž","%9E":"ž","%9f":"Ÿ","%9F":"Ÿ","%a0":" ","%A0":" ","%a1":"¡","%A1":"¡","%a2":"¢","%A2":"¢","%a3":"£","%A3":"£","%a4":"¤","%A4":"¤","%a5":"¥","%A5":"¥","%a6":"¦","%A6":"¦","%a7":"§","%A7":"§","%a8":"¨","%A8":"¨","%a9":"©","%A9":"©","%aa":"ª","%Aa":"ª","%aA":"ª","%AA":"ª","%ab":"«","%Ab":"«","%aB":"«","%AB":"«","%ac":"¬","%Ac":"¬","%aC":"¬","%AC":"¬","%ad":"­","%Ad":"­","%aD":"­","%AD":"­","%ae":"®","%Ae":"®","%aE":"®","%AE":"®","%af":"¯","%Af":"¯","%aF":"¯","%AF":"¯","%b0":"°","%B0":"°","%b1":"±","%B1":"±","%b2":"²","%B2":"²","%b3":"³","%B3":"³","%b4":"´","%B4":"´","%b5":"µ","%B5":"µ","%b6":"¶","%B6":"¶","%b7":"·","%B7":"·","%b8":"¸","%B8":"¸","%b9":"¹","%B9":"¹","%ba":"º","%Ba":"º","%bA":"º","%BA":"º","%bb":"»","%Bb":"»","%bB":"»","%BB":"»","%bc":"¼","%Bc":"¼","%bC":"¼","%BC":"¼","%bd":"½","%Bd":"½","%bD":"½","%BD":"½","%be":"¾","%Be":"¾","%bE":"¾","%BE":"¾","%bf":"¿","%Bf":"¿","%bF":"¿","%BF":"¿","%c0":"À","%C0":"À","%c1":"Á","%C1":"Á","%c2":"Â","%C2":"Â","%c3":"Ã","%C3":"Ã","%c4":"Ä","%C4":"Ä","%c5":"Å","%C5":"Å","%c6":"Æ","%C6":"Æ","%c7":"Ç","%C7":"Ç","%c8":"È","%C8":"È","%c9":"É","%C9":"É","%ca":"Ê","%Ca":"Ê","%cA":"Ê","%CA":"Ê","%cb":"Ë","%Cb":"Ë","%cB":"Ë","%CB":"Ë","%cc":"Ì","%Cc":"Ì","%cC":"Ì","%CC":"Ì","%cd":"Í","%Cd":"Í","%cD":"Í","%CD":"Í","%ce":"Î","%Ce":"Î","%cE":"Î","%CE":"Î","%cf":"Ï","%Cf":"Ï","%cF":"Ï","%CF":"Ï","%d0":"Ð","%D0":"Ð","%d1":"Ñ","%D1":"Ñ","%d2":"Ò","%D2":"Ò","%d3":"Ó","%D3":"Ó","%d4":"Ô","%D4":"Ô","%d5":"Õ","%D5":"Õ","%d6":"Ö","%D6":"Ö","%d7":"×","%D7":"×","%d8":"Ø","%D8":"Ø","%d9":"Ù","%D9":"Ù","%da":"Ú","%Da":"Ú","%dA":"Ú","%DA":"Ú","%db":"Û","%Db":"Û","%dB":"Û","%DB":"Û","%dc":"Ü","%Dc":"Ü","%dC":"Ü","%DC":"Ü","%dd":"Ý","%Dd":"Ý","%dD":"Ý","%DD":"Ý","%de":"Þ","%De":"Þ","%dE":"Þ","%DE":"Þ","%df":"ß","%Df":"ß","%dF":"ß","%DF":"ß","%e0":"à","%E0":"à","%e1":"á","%E1":"á","%e2":"â","%E2":"â","%e3":"ã","%E3":"ã","%e4":"ä","%E4":"ä","%e5":"å","%E5":"å","%e6":"æ","%E6":"æ","%e7":"ç","%E7":"ç","%e8":"è","%E8":"è","%e9":"é","%E9":"é","%ea":"ê","%Ea":"ê","%eA":"ê","%EA":"ê","%eb":"ë","%Eb":"ë","%eB":"ë","%EB":"ë","%ec":"ì","%Ec":"ì","%eC":"ì","%EC":"ì","%ed":"í","%Ed":"í","%eD":"í","%ED":"í","%ee":"î","%Ee":"î","%eE":"î","%EE":"î","%ef":"ï","%Ef":"ï","%eF":"ï","%EF":"ï","%f0":"ð","%F0":"ð","%f1":"ñ","%F1":"ñ","%f2":"ò","%F2":"ò","%f3":"ó","%F3":"ó","%f4":"ô","%F4":"ô","%f5":"õ","%F5":"õ","%f6":"ö","%F6":"ö","%f7":"÷","%F7":"÷","%f8":"ø","%F8":"ø","%f9":"ù","%F9":"ù","%fa":"ú","%Fa":"ú","%fA":"ú","%FA":"ú","%fb":"û","%Fb":"û","%fB":"û","%FB":"û","%fc":"ü","%Fc":"ü","%fC":"ü","%FC":"ü","%fd":"ý","%Fd":"ý","%fD":"ý","%FD":"ý","%fe":"þ","%Fe":"þ","%fE":"þ","%FE":"þ","%ff":"ÿ","%Ff":"ÿ","%fF":"ÿ","%FF":"ÿ"};function encodedReplacer(e){return o[e]}const n=0;const i=1;const a=2;const c=3;function parseParams(e){const A=[];let t=n;let o="";let g=false;let E=false;let l=0;let u="";const h=e.length;for(var Q=0;Q<h;++Q){const h=e[Q];if(h==="\\"&&g){if(E){E=false}else{E=true;continue}}else if(h==='"'){if(!E){if(g){g=false;t=n}else{g=true}continue}else{E=false}}else{if(E&&g){u+="\\"}E=false;if((t===a||t===c)&&h==="'"){if(t===a){t=c;o=u.substring(1)}else{t=i}u="";continue}else if(t===n&&(h==="*"||h==="=")&&A.length){t=h==="*"?a:i;A[l]=[u,undefined];u="";continue}else if(!g&&h===";"){t=n;if(o){if(u.length){u=r(u.replace(s,encodedReplacer),"binary",o)}o=""}else if(u.length){u=r(u,"binary","utf8")}if(A[l]===undefined){A[l]=u}else{A[l][1]=u}u="";++l;continue}else if(!g&&(h===" "||h==="\t")){continue}}u+=h}if(o&&u.length){u=r(u.replace(s,encodedReplacer),"binary",o)}else if(u){u=r(u,"binary","utf8")}if(A[l]===undefined){if(u){A[l]=u}}else{A[l][1]=u}return A}e.exports=parseParams}};var t={};function __nccwpck_require__(e){var r=t[e];if(r!==undefined){return r.exports}var s=t[e]={exports:{}};var o=true;try{A[e].call(s.exports,s,s.exports,__nccwpck_require__);o=false}finally{if(o)delete t[e]}return s.exports}(()=>{__nccwpck_require__.n=e=>{var A=e&&e.__esModule?()=>e["default"]:()=>e;__nccwpck_require__.d(A,{a:A});return A}})();(()=>{__nccwpck_require__.d=(e,A)=>{for(var t in A){if(__nccwpck_require__.o(A,t)&&!__nccwpck_require__.o(e,t)){Object.defineProperty(e,t,{enumerable:true,get:A[t]})}}}})();(()=>{__nccwpck_require__.o=(e,A)=>Object.prototype.hasOwnProperty.call(e,A)})();if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=new URL(".",import.meta.url).pathname.slice(import.meta.url.match(/^file:\/\/\/\w:/)?1:0,-1)+"/";var r={};var s=__nccwpck_require__(7484);var o=__nccwpck_require__(3228);const n=e(import.meta.url)("node:fs/promises");const i=e(import.meta.url)("node:fs");const a=e(import.meta.url)("node:path");const c=e(import.meta.url)("node:os");const g={repoContext:null,highRiskPaths:[],gatedPaths:[],escalationReviewers:[],noAutoApproveTeams:[],protectedBranches:[],trivialPaths:[],releaseStackBranches:[],skipBotAuthors:[]};const E=new Map([["repo context","repoContext"],["high-risk paths","highRiskPaths"],["gated paths","gatedPaths"],["escalation reviewers","escalationReviewers"],["no-auto-approve teams","noAutoApproveTeams"],["protected branches","protectedBranches"],["trivial paths","trivialPaths"],["release stack branches","releaseStackBranches"],["skip bot authors","skipBotAuthors"]]);function splitSections(e){const A=e.split(/\r?\n/);const t=[];let r=null;for(const e of A){const A=/^##\s+(.+?)\s*$/.exec(e);if(A){if(r){t.push({key:r.key,body:r.body.join("\n")})}const e=E.get(A[1].toLowerCase());r=e?{key:e,body:[]}:null;continue}if(r)r.body.push(e)}if(r)t.push({key:r.key,body:r.body.join("\n")});return t}function parseBullets(e){return e.split(/\r?\n/).map((e=>e.trim())).filter((e=>e.startsWith("-"))).map((e=>e.replace(/^-\s*/,"").trim())).map((e=>e.replace(/^`(.+)`$/,"$1"))).filter((e=>e.length>0))}function parseAaoSecretariatMd(e){if(!e)return{...g};const A={...g};for(const{key:t,body:r}of splitSections(e)){switch(t){case"repoContext":A.repoContext=r.trim().length>0?r:null;break;case"escalationReviewers":case"highRiskPaths":case"gatedPaths":case"noAutoApproveTeams":case"protectedBranches":case"trivialPaths":case"releaseStackBranches":case"skipBotAuthors":A[t]=parseBullets(r);break}}return A}const l={trivialPaths:[".changeset/**","**/*.md","**/__generated__/**","**/dist/**","**/*.snap"],releaseStackBranches:["release/next"],skipBotAuthors:["dependabot[bot]","renovate[bot]","github-actions[bot]"],protectedBranches:[],noAutoApproveTeams:[],highRiskPaths:[],gatedPaths:[]};function pick(e,A,t){if(e&&e.length>0)return e;if(A.length>0)return A;return t}function resolveConfig(e){const A=e.aaoSecretariatMd??{repoContext:null,highRiskPaths:[],gatedPaths:[],escalationReviewers:[],noAutoApproveTeams:[],protectedBranches:[],trivialPaths:[],releaseStackBranches:[],skipBotAuthors:[]};const t=e.actionInputs;return{repoContext:A.repoContext,highRiskPaths:pick(t.highRiskPaths,A.highRiskPaths,l.highRiskPaths),gatedPaths:pick(t.gatedPaths,A.gatedPaths,l.gatedPaths),escalationReviewers:pick(t.escalationReviewers,A.escalationReviewers,[]),noAutoApproveTeams:pick(t.noAutoApproveTeams,A.noAutoApproveTeams,l.noAutoApproveTeams),protectedBranches:pick(t.protectedBranches,A.protectedBranches,l.protectedBranches),trivialPaths:pick(t.trivialPaths,A.trivialPaths,l.trivialPaths),releaseStackBranches:pick(t.releaseStackBranches,A.releaseStackBranches,l.releaseStackBranches),skipBotAuthors:pick(t.skipBotAuthors,A.skipBotAuthors,l.skipBotAuthors)}}function evaluateShortCircuit(e){if(e.prState==="closed")return{shouldRun:false,skipReason:"pr-closed"};if(e.isDraft&&!e.hasForceReviewLabel)return{shouldRun:false,skipReason:"pr-draft"};if(e.skipBotAuthors.includes(e.authorLogin))return{shouldRun:false,skipReason:"bot-author"};if(e.triggeringActor&&e.triggeringActor===e.aaoSecretariatBotLogin)return{shouldRun:false,skipReason:"self-triggered"};if(!e.mergeable)return{shouldRun:false,skipReason:"merge-conflicts"};if(e.releaseStackBranches.includes(e.headRef))return{shouldRun:false,skipReason:"release-stack-branch"};if(e.eventAction==="synchronize"){if(e.isPureRebase)return{shouldRun:false,skipReason:"pure-rebase"};if(e.deltaFiles.length===0&&e.deltaFilesAfterTrivialFilter.length===0)return{shouldRun:false,skipReason:"empty-delta"};if(e.deltaFiles.length>0&&e.deltaFilesAfterTrivialFilter.length===0)return{shouldRun:false,skipReason:"empty-delta"}}return{shouldRun:true,skipReason:null}}var u=__nccwpck_require__(4006);var h=__nccwpck_require__.n(u);function evaluatePathGlobs(e){const{files:A,globs:t}=e;if(t.length===0)return{flag:false,reasons:[]};const r=t.map((e=>({glob:e,isMatch:h()(e)})));const s=[];for(const e of A){for(const{glob:A,isMatch:t}of r){if(t(e.path)){s.push(`${e.path} (${e.changeKind}) matches \`${A}\``);break}}}return{flag:s.length>0,reasons:s}}function evaluateHighRisk(e){return evaluatePathGlobs(e)}function evaluateGatedPaths(e){return evaluatePathGlobs(e)}function isPullRequestEvent(e){return e==="pull_request"||e==="pull_request_target"}function mapStatus(e){switch(e){case"added":return"added";case"removed":return"deleted";case"renamed":return"renamed";default:return"modified"}}function intersectChangedFiles(e){const{changedSincePrior:A,currentPrSurface:t}=e;const r=new Set(A);return t.filter((e=>r.has(e)))}function filterTrivialFiles(e){const{files:A,trivialGlobs:t}=e;if(t.length===0)return[...A];const r=h()(t);return A.filter((e=>!r(e)))}async function computeChangedFiles(e){const{octokit:A,owner:t,repo:r,fromSha:o,toSha:n}=e;const i=`${o}...${n}`;try{const e=await A.rest.repos.compareCommitsWithBasehead({owner:t,repo:r,basehead:i});const o=e.data.commits?.length??0;if(typeof e.data.total_commits==="number"&&e.data.total_commits>o){s.info(`compare ${i}: ${e.data.total_commits} commits total but only ${o} returned — delta file list may be truncated.`)}const n=e.data.files??[];if(n.length>=300){s.info(`compare ${i} returned ${n.length} files — GitHub caps the compare file list at 300; delta may be truncated.`)}return n.map((e=>e.filename))}catch(e){s.warning(`compare ${i} failed: ${e instanceof Error?e.message:String(e)}`);return null}}const Q=3e3;async function computePrSurfaceFiles(e){const{octokit:A,owner:t,repo:r,prNumber:o}=e;try{const e=await A.paginate(A.rest.pulls.listFiles,{owner:t,repo:r,pull_number:o,per_page:100});const n=e.map((e=>({path:e.filename,changeKind:mapStatus(e.status)})));if(e.length>=Q){s.warning(`pulls.listFiles for #${o} returned ${e.length} files — GitHub caps the PR file list at ${Q}, so the surface is truncated. Treating it as unreliable so the high-risk / gated gates fail closed.`);return{files:n,reliable:false}}return{files:n,reliable:true}}catch(e){s.warning(`pulls.listFiles for #${o} failed: ${e instanceof Error?e.message:String(e)}. Treating the PR surface as unreliable so the high-risk / gated gates fail closed.`);return{files:[],reliable:false}}}async function writeDiffFile(e){const{octokit:A,owner:t,repo:r,target:o,prNumber:i,fromSha:a,toSha:c}=e;const g=a!==undefined&&c!==undefined;if(!g&&i===undefined){throw new Error("writeDiffFile requires either prNumber (full PR diff) or fromSha+toSha (delta diff)")}let E;try{const e=g?await A.request("GET /repos/{owner}/{repo}/compare/{basehead}",{owner:t,repo:r,basehead:`${a}...${c}`,mediaType:{format:"diff"}}):await A.request("GET /repos/{owner}/{repo}/pulls/{pull_number}",{owner:t,repo:r,pull_number:i,mediaType:{format:"diff"}});E=e.data}catch(e){s.warning(`Could not fetch the ${g?"delta":"full"} diff for ${o}: ${e instanceof Error?e.message:String(e)}. Writing a placeholder — the diff is likely too large (HTTP 406).`);E="> The diff could not be retrieved from the GitHub API — it is likely too large (HTTP 406) or the request failed. Review the changes from the PR page or via `gh pr diff`.\n"}await(0,n.writeFile)(o,E);return o}function wrapWithMarker(e){return`${e.body}\n\n\x3c!-- aao-secretariat-marker:${e.marker} --\x3e`}function containsMarker(e,A){return e.includes(`\x3c!-- aao-secretariat-marker:${A} --\x3e`)}const C=/<!--\s*aao-secretariat-decision:\s*([\s\S]*?)\s*-->/;function parseDecisionMarker(e){const A=C.exec(e);if(!A)return null;try{const e=JSON.parse(A[1]);if(typeof e==="object"&&e!==null&&typeof e.head==="string"&&["approve","request-changes","comment","escalate"].includes(e.outcome)&&typeof e.high_risk==="boolean"&&Array.isArray(e.reasons)){const A=Array.isArray(e.findings)?e.findings.filter((e=>typeof e==="object"&&e!==null&&["critical","high","medium"].includes(e.severity)&&typeof e.title==="string"&&typeof e.file==="string")):undefined;return{...e,findings:A}}return null}catch{return null}}function buildDecisionMarker(e){return`\x3c!-- aao-secretariat-decision:\n${JSON.stringify(e)}\n--\x3e`}function csv(e){return e.split(",").map((e=>e.trim())).filter(Boolean)}async function postBotSkipCommentOnce(e){const{octokit:A,owner:t,repo:r,prNumber:s,marker:o}=e;const n=await A.paginate(A.rest.issues.listComments,{owner:t,repo:r,issue_number:s,per_page:100});if(n.some((e=>containsMarker(e.body??"",o))))return;await A.rest.issues.createComment({owner:t,repo:r,issue_number:s,body:wrapWithMarker({body:"AAO-SECRETARIAT does not review bot-authored PRs.",marker:o})})}async function postMergeConflictCommentOnce(e){const{octokit:A,owner:t,repo:r,prNumber:s,marker:o}=e;const n=await A.paginate(A.rest.issues.listComments,{owner:t,repo:r,issue_number:s,per_page:100});if(n.some((e=>containsMarker(e.body??"",o))))return;await A.rest.issues.createComment({owner:t,repo:r,issue_number:s,body:wrapWithMarker({body:"AAO-SECRETARIAT cannot review this PR until merge conflicts are resolved.",marker:o})})}async function readAaoSecretariatMd(){const e=(0,a.join)(process.env.GITHUB_WORKSPACE??".","AAO-SECRETARIAT.md");if(!(0,i.existsSync)(e)){s.info("AAO-SECRETARIAT.md not found at repo root; using defaults.");return null}return await(0,n.readFile)(e,"utf8")}async function fetchPriorDecision(e){const{octokit:A,owner:t,repo:r,prNumber:s,aaoSecretariatBotLogin:o}=e;const n=await A.paginate(A.rest.pulls.listReviews,{owner:t,repo:r,pull_number:s,per_page:100});const i=n.filter((e=>e.user?.login===o)).reverse();for(const e of i){const A=parseDecisionMarker(e.body??"");if(A)return JSON.stringify(A)}return""}async function fetchReviewDecision(e){const{octokit:A,owner:t,repo:r,prNumber:o}=e;try{const e=await A.graphql(`query($owner: String!, $repo: String!, $number: Int!) {\n repository(owner: $owner, name: $repo) {\n pullRequest(number: $number) {\n reviewDecision\n }\n }\n }`,{owner:t,repo:r,number:o});return e.repository?.pullRequest?.reviewDecision??""}catch(e){s.warning(`Could not fetch reviewDecision via GraphQL: ${e instanceof Error?e.message:String(e)} — treating as unknown (empty string). Gates that key off review-decision must fail toward holding for human review, not toward auto-approving, when this is empty.`);return""}}async function main(){const e=s.getInput("github-token",{required:true});const A={highRiskPaths:csv(s.getInput("high-risk-paths")),gatedPaths:csv(s.getInput("gated-paths")),trivialPaths:csv(s.getInput("trivial-paths")),releaseStackBranches:csv(s.getInput("release-stack-branches")),skipBotAuthors:csv(s.getInput("skip-bot-authors")),protectedBranches:csv(s.getInput("protected-branches")),noAutoApproveTeams:csv(s.getInput("no-auto-approve-teams")),escalationReviewers:csv(s.getInput("escalation-reviewers"))};const t=await readAaoSecretariatMd();const r=parseAaoSecretariatMd(t);const i=resolveConfig({aaoSecretariatMd:r,actionInputs:A});const g=o.context;if(!isPullRequestEvent(g.eventName)){s.setOutput("should-run","false");s.setOutput("skip-reason","not-a-pull-request");return}const E=g.payload.pull_request;if(!E){s.setOutput("should-run","false");s.setOutput("skip-reason","missing-pr-payload");return}const l=o.getOctokit(e);const{owner:u,repo:h}=g.repo;const Q=E.number;const C=E.head.sha;const B=E.base.sha;const I=E.head.ref;const d=E.base.ref;const p=Boolean(E.draft);const m=E.state==="closed"?"closed":"open";const y=E.user?.login??"";const w=(E.labels??[]).map((e=>e.name));const R=w.includes(s.getInput("force-review-label"));const b=g.payload.action??"";let k=true;try{const{data:e}=await l.rest.pulls.get({owner:u,repo:h,pull_number:Q});k=e.mergeable!==false}catch{}const D=await computePrSurfaceFiles({octokit:l,owner:u,repo:h,prNumber:Q});if(!D.reliable){throw new Error("PR file surface could not be reliably determined (pulls.listFiles errored or hit the 3000-file cap). "+"Refusing to auto-review: an incomplete surface would silently clear the high-risk / gated-path gates. "+"Re-run once the API recovers, or review this PR manually.")}const S=D.files;const F=S.map((e=>e.path));let T=null;let N=F;let U=false;const L=s.getInput("aao-secretariat-bot-login")||"aao-secretariat[bot]";if(b==="synchronize"){try{const e=await l.paginate(l.rest.pulls.listReviews,{owner:u,repo:h,pull_number:Q,per_page:100});const A=[...e].reverse().find((e=>e.user?.login===L));T=A?.commit_id??null}catch(e){s.warning(`Could not read prior AAO-SECRETARIAT review SHA: ${e instanceof Error?e.message:String(e)}`)}if(T&&T!==C){const e=await computeChangedFiles({octokit:l,owner:u,repo:h,fromSha:T,toSha:C});if(e!==null){U=e.length===0;N=intersectChangedFiles({changedSincePrior:e,currentPrSurface:F})}else{try{const[{data:e},{data:A}]=await Promise.all([l.rest.git.getCommit({owner:u,repo:h,commit_sha:T}),l.rest.git.getCommit({owner:u,repo:h,commit_sha:C})]);U=e.tree.sha===A.tree.sha}catch(e){s.warning(`Could not compare tree SHAs for ${T}..${C}: ${e instanceof Error?e.message:String(e)}`)}}}}const v=filterTrivialFiles({files:N,trivialGlobs:i.trivialPaths});const G=evaluateShortCircuit({prState:m,isDraft:p,hasForceReviewLabel:R,authorLogin:y,triggeringActor:g.actor,aaoSecretariatBotLogin:L,skipBotAuthors:i.skipBotAuthors,mergeable:k,headRef:I,releaseStackBranches:i.releaseStackBranches,eventName:g.eventName,eventAction:b,deltaFiles:N,deltaFilesAfterTrivialFilter:v,isPureRebase:U});if(!G.shouldRun){if(G.skipReason==="bot-author"){await postBotSkipCommentOnce({octokit:l,owner:u,repo:h,prNumber:Q,marker:"aao-secretariat/bot-skip-noted"})}else if(G.skipReason==="merge-conflicts"){await postMergeConflictCommentOnce({octokit:l,owner:u,repo:h,prNumber:Q,marker:"aao-secretariat/merge-conflict-noted"})}s.setOutput("should-run","false");s.setOutput("skip-reason",G.skipReason??"");return}const M=evaluateHighRisk({files:S,globs:i.highRiskPaths});const _=evaluateGatedPaths({files:S,globs:i.gatedPaths});const H=await(0,n.mkdtemp)((0,a.join)((0,c.tmpdir)(),"aao-secretariat-setup-"));const O=(0,a.join)(H,"diff-full.patch");await writeDiffFile({octokit:l,owner:u,repo:h,prNumber:Q,target:O});const P=T&&N.length!==F.length?await writeDiffFile({octokit:l,owner:u,repo:h,fromSha:T,toSha:C,target:(0,a.join)(H,"diff-delta.patch")}):O;let Y="";try{Y=await fetchPriorDecision({octokit:l,owner:u,repo:h,prNumber:Q,aaoSecretariatBotLogin:L})}catch(e){s.warning(`Could not fetch prior decision marker: ${e instanceof Error?e.message:String(e)}`)}const J=await fetchReviewDecision({octokit:l,owner:u,repo:h,prNumber:Q});if(_.flag&&!J){s.warning("gated-paths matched but review-decision came back empty — this gate can never be satisfied unless the matched path(s) are also covered by branch protection / CODEOWNERS required reviews. See the Gated Paths documentation for details.")}s.setOutput("should-run","true");s.setOutput("skip-reason","");s.setOutput("aao-secretariat-md-body",i.repoContext??"");s.setOutput("high-risk",M.flag?"true":"false");s.setOutput("high-risk-reasons",JSON.stringify(M.reasons));s.setOutput("gated-paths",_.flag?"true":"false");s.setOutput("gated-paths-reasons",JSON.stringify(_.reasons));s.setOutput("review-decision",J);s.setOutput("escalation-reviewers",i.escalationReviewers.join(","));s.setOutput("no-auto-approve-teams",i.noAutoApproveTeams.join(","));s.setOutput("protected-branches",i.protectedBranches.join(","));s.setOutput("prior-decision",Y);s.setOutput("diff-full-path",O);s.setOutput("diff-delta-path",P);s.setOutput("pr-number",String(Q));s.setOutput("head-sha",C);s.setOutput("base-sha",B);s.info(`Base ref: ${d}`)}main().catch((e=>{s.setFailed(e instanceof Error?e.message:String(e))})); \ No newline at end of file diff --git a/.secretariat/ai-review/setup/dist/package.json b/.secretariat/ai-review/setup/dist/package.json deleted file mode 100644 index 3dbc1ca59..000000000 --- a/.secretariat/ai-review/setup/dist/package.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "type": "module" -} diff --git a/.secretariat/ai-review/setup/package-lock.json b/.secretariat/ai-review/setup/package-lock.json deleted file mode 100644 index 9ccf015a4..000000000 --- a/.secretariat/ai-review/setup/package-lock.json +++ /dev/null @@ -1,1598 +0,0 @@ -{ - "name": "@adcp/aao-secretariat-setup", - "version": "0.1.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "@adcp/aao-secretariat-setup", - "version": "0.1.0", - "dependencies": { - "@actions/core": "^1.11.1", - "@actions/exec": "^1.1.1", - "@actions/github": "^6.0.1", - "picomatch": "^4.0.2" - }, - "devDependencies": { - "@types/node": "^22.10.5", - "@types/picomatch": "^3.0.2", - "@vercel/ncc": "^0.38.3", - "typescript": "^5.7.3", - "vitest": "^4.1.1" - } - }, - "node_modules/@actions/core": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.11.1.tgz", - "integrity": "sha512-hXJCSrkwfA46Vd9Z3q4cpEpHB1rL5NG04+/rbqW9d3+CSvtB1tYe8UTpAlixa1vj0m/ULglfEK2UKxMGxCxv5A==", - "license": "MIT", - "dependencies": { - "@actions/exec": "^1.1.1", - "@actions/http-client": "^2.0.1" - } - }, - "node_modules/@actions/exec": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@actions/exec/-/exec-1.1.1.tgz", - "integrity": "sha512-+sCcHHbVdk93a0XT19ECtO/gIXoxvdsgQLzb2fE2/5sIZmWQuluYyjPQtrtTHdU1YzTZ7bAPN4sITq2xi1679w==", - "license": "MIT", - "dependencies": { - "@actions/io": "^1.0.1" - } - }, - "node_modules/@actions/github": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@actions/github/-/github-6.0.1.tgz", - "integrity": "sha512-xbZVcaqD4XnQAe35qSQqskb3SqIAfRyLBrHMd/8TuL7hJSz2QtbDwnNM8zWx4zO5l2fnGtseNE3MbEvD7BxVMw==", - "license": "MIT", - "dependencies": { - "@actions/http-client": "^2.2.0", - "@octokit/core": "^5.0.1", - "@octokit/plugin-paginate-rest": "^9.2.2", - "@octokit/plugin-rest-endpoint-methods": "^10.4.0", - "@octokit/request": "^8.4.1", - "@octokit/request-error": "^5.1.1", - "undici": "^5.28.5" - } - }, - "node_modules/@actions/http-client": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-2.2.3.tgz", - "integrity": "sha512-mx8hyJi/hjFvbPokCg4uRd4ZX78t+YyRPtnKWwIl+RzNaVuFpQHfmlGVfsKEJN8LwTCvL+DfVgAM04XaHkm6bA==", - "license": "MIT", - "dependencies": { - "tunnel": "^0.0.6", - "undici": "^5.25.4" - } - }, - "node_modules/@actions/io": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@actions/io/-/io-1.1.3.tgz", - "integrity": "sha512-wi9JjgKLYS7U/z8PPbco+PvTb/nRWjeoFlJ1Qer83k/3C5PHQi28hiVdeE2kHXmIL99mQFawx8qt/JPjZilJ8Q==", - "license": "MIT" - }, - "node_modules/@emnapi/core": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.11.1.tgz", - "integrity": "sha512-RSvbQmHzdKzNsLYa/wHrbc3KN4sYLKAdPZxqiM2HATqv/SBk2/ENSHpvXGaLOMcsAyz0poEGqkmmKYG3OWiJEQ==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "@emnapi/wasi-threads": "1.2.2", - "tslib": "^2.4.0" - } - }, - "node_modules/@emnapi/runtime": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.11.1.tgz", - "integrity": "sha512-vgj7R3y3Wgx24IQaGPA/R6YFXLHVMOZ0uVEyIQPaWs+rd1AzfEMXlAC22FYwO1XkKR6NPsq7mUandH8oIRdZFw==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/@emnapi/wasi-threads": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.2.tgz", - "integrity": "sha512-c95qOXkHdydNKhscBTebqEC1CVAZpyqOfVfBzQ1qgzyl3gfeldUjIggDbIZgDKsHLgnsM+igH7TJ/eAasaVuMA==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/@fastify/busboy": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.1.tgz", - "integrity": "sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==", - "license": "MIT", - "engines": { - "node": ">=14" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", - "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", - "dev": true, - "license": "MIT" - }, - "node_modules/@napi-rs/wasm-runtime": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.6.tgz", - "integrity": "sha512-ZLv/JdUfkvOy9eCnnBaGfiO+XimbjebAeO+MRQqD/B+FR1tnRN0tpKSJHRbE8sFfS6aqsXZ67TQjfwfsxULVbg==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@tybys/wasm-util": "^0.10.3" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Brooooooklyn" - }, - "peerDependencies": { - "@emnapi/core": "^1.7.1", - "@emnapi/runtime": "^1.7.1" - } - }, - "node_modules/@octokit/auth-token": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-4.0.0.tgz", - "integrity": "sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==", - "license": "MIT", - "engines": { - "node": ">= 18" - } - }, - "node_modules/@octokit/core": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/@octokit/core/-/core-5.2.2.tgz", - "integrity": "sha512-/g2d4sW9nUDJOMz3mabVQvOGhVa4e/BN/Um7yca9Bb2XTzPPnfTWHWQg+IsEYO7M3Vx+EXvaM/I2pJWIMun1bg==", - "license": "MIT", - "peer": true, - "dependencies": { - "@octokit/auth-token": "^4.0.0", - "@octokit/graphql": "^7.1.0", - "@octokit/request": "^8.4.1", - "@octokit/request-error": "^5.1.1", - "@octokit/types": "^13.0.0", - "before-after-hook": "^2.2.0", - "universal-user-agent": "^6.0.0" - }, - "engines": { - "node": ">= 18" - } - }, - "node_modules/@octokit/endpoint": { - "version": "9.0.6", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-9.0.6.tgz", - "integrity": "sha512-H1fNTMA57HbkFESSt3Y9+FBICv+0jFceJFPWDePYlR/iMGrwM5ph+Dd4XRQs+8X+PUFURLQgX9ChPfhJ/1uNQw==", - "license": "MIT", - "dependencies": { - "@octokit/types": "^13.1.0", - "universal-user-agent": "^6.0.0" - }, - "engines": { - "node": ">= 18" - } - }, - "node_modules/@octokit/graphql": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-7.1.1.tgz", - "integrity": "sha512-3mkDltSfcDUoa176nlGoA32RGjeWjl3K7F/BwHwRMJUW/IteSa4bnSV8p2ThNkcIcZU2umkZWxwETSSCJf2Q7g==", - "license": "MIT", - "dependencies": { - "@octokit/request": "^8.4.1", - "@octokit/types": "^13.0.0", - "universal-user-agent": "^6.0.0" - }, - "engines": { - "node": ">= 18" - } - }, - "node_modules/@octokit/openapi-types": { - "version": "24.2.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-24.2.0.tgz", - "integrity": "sha512-9sIH3nSUttelJSXUrmGzl7QUBFul0/mB8HRYl3fOlgHbIWG+WnYDXU3v/2zMtAvuzZ/ed00Ei6on975FhBfzrg==", - "license": "MIT" - }, - "node_modules/@octokit/plugin-paginate-rest": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-9.2.2.tgz", - "integrity": "sha512-u3KYkGF7GcZnSD/3UP0S7K5XUFT2FkOQdcfXZGZQPGv3lm4F2Xbf71lvjldr8c1H3nNbF+33cLEkWYbokGWqiQ==", - "license": "MIT", - "dependencies": { - "@octokit/types": "^12.6.0" - }, - "engines": { - "node": ">= 18" - }, - "peerDependencies": { - "@octokit/core": "5" - } - }, - "node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/openapi-types": { - "version": "20.0.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-20.0.0.tgz", - "integrity": "sha512-EtqRBEjp1dL/15V7WiX5LJMIxxkdiGJnabzYx5Apx4FkQIFgAfKumXeYAqqJCj1s+BMX4cPFIFC4OLCR6stlnA==", - "license": "MIT" - }, - "node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types": { - "version": "12.6.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-12.6.0.tgz", - "integrity": "sha512-1rhSOfRa6H9w4YwK0yrf5faDaDTb+yLyBUKOCV4xtCDB5VmIPqd/v9yr9o6SAzOAlRxMiRiCic6JVM1/kunVkw==", - "license": "MIT", - "dependencies": { - "@octokit/openapi-types": "^20.0.0" - } - }, - "node_modules/@octokit/plugin-rest-endpoint-methods": { - "version": "10.4.1", - "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-10.4.1.tgz", - "integrity": "sha512-xV1b+ceKV9KytQe3zCVqjg+8GTGfDYwaT1ATU5isiUyVtlVAO3HNdzpS4sr4GBx4hxQ46s7ITtZrAsxG22+rVg==", - "license": "MIT", - "dependencies": { - "@octokit/types": "^12.6.0" - }, - "engines": { - "node": ">= 18" - }, - "peerDependencies": { - "@octokit/core": "5" - } - }, - "node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/openapi-types": { - "version": "20.0.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-20.0.0.tgz", - "integrity": "sha512-EtqRBEjp1dL/15V7WiX5LJMIxxkdiGJnabzYx5Apx4FkQIFgAfKumXeYAqqJCj1s+BMX4cPFIFC4OLCR6stlnA==", - "license": "MIT" - }, - "node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types": { - "version": "12.6.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-12.6.0.tgz", - "integrity": "sha512-1rhSOfRa6H9w4YwK0yrf5faDaDTb+yLyBUKOCV4xtCDB5VmIPqd/v9yr9o6SAzOAlRxMiRiCic6JVM1/kunVkw==", - "license": "MIT", - "dependencies": { - "@octokit/openapi-types": "^20.0.0" - } - }, - "node_modules/@octokit/request": { - "version": "8.4.1", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-8.4.1.tgz", - "integrity": "sha512-qnB2+SY3hkCmBxZsR/MPCybNmbJe4KAlfWErXq+rBKkQJlbjdJeS85VI9r8UqeLYLvnAenU8Q1okM/0MBsAGXw==", - "license": "MIT", - "dependencies": { - "@octokit/endpoint": "^9.0.6", - "@octokit/request-error": "^5.1.1", - "@octokit/types": "^13.1.0", - "universal-user-agent": "^6.0.0" - }, - "engines": { - "node": ">= 18" - } - }, - "node_modules/@octokit/request-error": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-5.1.1.tgz", - "integrity": "sha512-v9iyEQJH6ZntoENr9/yXxjuezh4My67CBSu9r6Ve/05Iu5gNgnisNWOsoJHTP6k0Rr0+HQIpnH+kyammu90q/g==", - "license": "MIT", - "dependencies": { - "@octokit/types": "^13.1.0", - "deprecation": "^2.0.0", - "once": "^1.4.0" - }, - "engines": { - "node": ">= 18" - } - }, - "node_modules/@octokit/types": { - "version": "13.10.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.10.0.tgz", - "integrity": "sha512-ifLaO34EbbPj0Xgro4G5lP5asESjwHracYJvVaPIyXMuiuXLlhic3S47cBdTb+jfODkTE5YtGCLt3Ay3+J97sA==", - "license": "MIT", - "dependencies": { - "@octokit/openapi-types": "^24.2.0" - } - }, - "node_modules/@oxc-project/types": { - "version": "0.139.0", - "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.139.0.tgz", - "integrity": "sha512-r9gHphtCs+1M7J0pw6Sn/hh/Wpa/iQrOOkrNAlVLF/gHq+/CJmHIWKKUUhdWjcD6CIa8idarspCsASiXCXvFUw==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/Boshen" - } - }, - "node_modules/@rolldown/binding-android-arm64": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.1.5.tgz", - "integrity": "sha512-lZg8fqIv2v7FF237bwMgzGZEJvGL79/s5knJ/i6FmsGF4XXlzccZ4jb+TrFIxtSSxFtIpdsgrPZeMk1I9AFcyQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-darwin-arm64": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.1.5.tgz", - "integrity": "sha512-51Bnx9pNiMRKSUNtBfySkNJ9vMU9Hh3I1ozDd6gyPPYzaXCfnptUcEZxXGYFn+ul2dtcMUiqGR1Yai2K10uoTw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-darwin-x64": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.1.5.tgz", - "integrity": "sha512-Tm+gbfC0aHu1tBA/JvKQh32S0K6YgCHkiAF4/W6xX0K0RmNuc94VeK419dJoE65R5aRxmo+noZQSWrAMF6yb6g==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-freebsd-x64": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.1.5.tgz", - "integrity": "sha512-JMzDKCCXq93YccG5gz3hvOs1oXRKAf0XYpfOS88e+wZrC8Iugj6j68867vrYZkvpDDpKn/KoKORThmchMpF6TA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-linux-arm-gnueabihf": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.1.5.tgz", - "integrity": "sha512-uML21j2K5TfPGutKxub+M+nLjZIrWjXQ5Grx4lCe/nimTj9B4L63zHpjXLl4y0L3mcm2htEQIb06oCG/szerNw==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-linux-arm64-gnu": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.1.5.tgz", - "integrity": "sha512-navSiuTMogvnQoZoM/v+l3ZWo50/NTwSHSzheABx/RCnmUPaKwq9qSo4Br2OYRs21+Fz8uFqITZM3H4opOB0/Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-linux-arm64-musl": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.1.5.tgz", - "integrity": "sha512-lAryqH7IteztmCXQXk0etKj4wBQ7Gx5S6LjKhsgp9zb8I5bsuvU/2llH1hDQcjsFeqIsovMVN339/8pUDDBXxA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-linux-ppc64-gnu": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.1.5.tgz", - "integrity": "sha512-fsK/sNBnxzBlL4O1JNrZakVQxPspqpED5dLtNsZS9oOKmtSpdNIzxH2kkol5HYTWJN47sE20ztMJPxfZ89qGOg==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-linux-s390x-gnu": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.1.5.tgz", - "integrity": "sha512-gLYb4BIadlfTOYT5gO503n8zQjXflgzpD0FcyKh0Mzx3rqCZKnHoJWV9xe1KXUJ5lx2JfcSHr/mhzS0PC/McAA==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-linux-x64-gnu": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.1.5.tgz", - "integrity": "sha512-FjcpEKUyJygHgs1o50VYNvkt5+7Le/VEdYt0AkRpkL33MnyQfwr8l5mXwMmfmTbyMPr5vJLC+8/Gd9gXnwU1QQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-linux-x64-musl": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.1.5.tgz", - "integrity": "sha512-Me+PfPI2TMeOQk0gYWfLQZtTktrmzbr8cDboqX83XKc7UrgAi55gF+2dUkWdxd19n55Essp2yeca+O9N5rBxHg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-openharmony-arm64": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.1.5.tgz", - "integrity": "sha512-yc5WrLzXks6zCQfn9Oxr8pORKyl/pF+QjHmW/Qx3qu0oyrrNC+y2JLTU1E2rcWYAmzlnqngWXHQjy51VzW70Vw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openharmony" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-wasm32-wasi": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.1.5.tgz", - "integrity": "sha512-VbQGPX2b4r48TAMIM2cjgluIM1HYutm4pcTEJsle7iEP7sB1dFqtPLBVbdLAZCxy1txCcPxf4QFf4v8uvltPqA==", - "cpu": [ - "wasm32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@emnapi/core": "1.11.1", - "@emnapi/runtime": "1.11.1", - "@napi-rs/wasm-runtime": "^1.1.6" - }, - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-win32-arm64-msvc": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.1.5.tgz", - "integrity": "sha512-gHv82k63z4qpV5+Q1y/12KrK0ltWBukVDI8nZcbT7Tt/ZlOIVwppazneq0F93oDxTo3IgAMEDIoQh3E2n6mVsw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-win32-x64-msvc": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.1.5.tgz", - "integrity": "sha512-tTZuDBPw85tEN5PQi1pnEBzDy0Z49HtScLAbD5t6hyeU92A95pRWaSMw1GZZi/RwgSgUIl0xrSlXIT/9QzvYSA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/pluginutils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.1.tgz", - "integrity": "sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@standard-schema/spec": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz", - "integrity": "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==", - "dev": true, - "license": "MIT" - }, - "node_modules/@tybys/wasm-util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.3.tgz", - "integrity": "sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/@types/chai": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.2.3.tgz", - "integrity": "sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/deep-eql": "*", - "assertion-error": "^2.0.1" - } - }, - "node_modules/@types/deep-eql": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz", - "integrity": "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/estree": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.9.tgz", - "integrity": "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/node": { - "version": "22.20.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.20.1.tgz", - "integrity": "sha512-EANqOCF9QFyra+4pfxUcX9STKJpCLjMbObVzljIJomAWSnuSIEAvyzEU53GaajbXJEgdh0iEcPL+DGvpUd4k1Q==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "undici-types": "~6.21.0" - } - }, - "node_modules/@types/picomatch": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/picomatch/-/picomatch-3.0.2.tgz", - "integrity": "sha512-n0i8TD3UDB7paoMMxA3Y65vUncFJXjcUf7lQY7YyKGl6031FNjfsLs6pdLFCy2GNFxItPJG8GvvpbZc2skH7WA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@vercel/ncc": { - "version": "0.38.4", - "resolved": "https://registry.npmjs.org/@vercel/ncc/-/ncc-0.38.4.tgz", - "integrity": "sha512-8LwjnlP39s08C08J5NstzriPvW1SP8Zfpp1BvC2sI35kPeZnHfxVkCwu4/+Wodgnd60UtT1n8K8zw+Mp7J9JmQ==", - "dev": true, - "license": "MIT", - "bin": { - "ncc": "dist/ncc/cli.js" - } - }, - "node_modules/@vitest/expect": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-4.1.10.tgz", - "integrity": "sha512-YsCn+qAk1GWjQOWFEsEcL2gNQ0zmVmQu3T03qP6UyjhtmdtwtbuI+DASn/7iQB3HGTXkdBwGddzxPlmiql5vlA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@standard-schema/spec": "^1.1.0", - "@types/chai": "^5.2.2", - "@vitest/spy": "4.1.10", - "@vitest/utils": "4.1.10", - "chai": "^6.2.2", - "tinyrainbow": "^3.1.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/@vitest/mocker": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-4.1.10.tgz", - "integrity": "sha512-v0xaezt+DKEmKfaxg133ldzADrwLGd7Ze1MfQQTYfvs8OqZIwbxyxaYURivwV7sWy5fqn3rH5uOrSp07bp44Ow==", - "dev": true, - "license": "MIT", - "dependencies": { - "@vitest/spy": "4.1.10", - "estree-walker": "^3.0.3", - "magic-string": "^0.30.21" - }, - "funding": { - "url": "https://opencollective.com/vitest" - }, - "peerDependencies": { - "msw": "^2.4.9", - "vite": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "msw": { - "optional": true - }, - "vite": { - "optional": true - } - } - }, - "node_modules/@vitest/pretty-format": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.1.10.tgz", - "integrity": "sha512-W1HsjSH4MXQ9YfmmhLAoIYf1HRfekQCGngeIgcei6MP5QQGWUe0gkopdZQaVCFO+JDJMrAJGwa5pRpNpvy4P8Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "tinyrainbow": "^3.1.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/@vitest/runner": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-4.1.10.tgz", - "integrity": "sha512-IKI6kpIH+LmpROplyLwBBaCfMgOZOMsygVa6BARD6ahA04VRuJSa6OaVG7kRvSEMD870Vd91rSSw0eegtWyLGg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@vitest/utils": "4.1.10", - "pathe": "^2.0.3" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/@vitest/snapshot": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-4.1.10.tgz", - "integrity": "sha512-xRkfOT1qpTAi/Ti4Y1LtfRc3kEuqxGw59eN2jN9pRWMtS/XDevekhcFSqvQqjUNGksfjMJu3Y+oJ+4Ypn2OaJw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@vitest/pretty-format": "4.1.10", - "@vitest/utils": "4.1.10", - "magic-string": "^0.30.21", - "pathe": "^2.0.3" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/@vitest/spy": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-4.1.10.tgz", - "integrity": "sha512-PLf/Ugvoq5wO/b4rwYCR1h2PSIdXz7wnkQFMiUpLdtM7l6pqVFcQIBEHyT1+l+cj7mNwAfZHzqXqDyjvOuwbDw==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/@vitest/utils": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-4.1.10.tgz", - "integrity": "sha512-fy9am/HWxbaGt/Sawrp90vt6Y6jQwf1RX77cz3uwoJwJVMli/e1IEwRPnMNJ7vKfPTwo0diXifkpPvwH9v7nGA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@vitest/pretty-format": "4.1.10", - "convert-source-map": "^2.0.0", - "tinyrainbow": "^3.1.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/assertion-error": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", - "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - } - }, - "node_modules/before-after-hook": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz", - "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==", - "license": "Apache-2.0" - }, - "node_modules/chai": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/chai/-/chai-6.2.2.tgz", - "integrity": "sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - } - }, - "node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true, - "license": "MIT" - }, - "node_modules/deprecation": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", - "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==", - "license": "ISC" - }, - "node_modules/detect-libc": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", - "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=8" - } - }, - "node_modules/es-module-lexer": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.3.0.tgz", - "integrity": "sha512-KLdwQm2NvGLDkQDCGvmiQrhkd0JbMzXthwQAUgWjQuQdBLFa3eiBP5arXZyA+f8x+x7OXgud6bq2rxjGtHV2tw==", - "dev": true, - "license": "MIT" - }, - "node_modules/estree-walker": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", - "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0" - } - }, - "node_modules/expect-type": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.4.0.tgz", - "integrity": "sha512-KfYbmpRm0VbLjEvVa9yGwCi9GI34xvi7A/HXYWQO65CSD2u3MczUJSuwXKFIxlGsgBQizV9q5J9NHj4VG0n+pA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/fdir": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", - "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "picomatch": "^3 || ^4" - }, - "peerDependenciesMeta": { - "picomatch": { - "optional": true - } - } - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/lightningcss": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.32.0.tgz", - "integrity": "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==", - "dev": true, - "license": "MPL-2.0", - "dependencies": { - "detect-libc": "^2.0.3" - }, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - }, - "optionalDependencies": { - "lightningcss-android-arm64": "1.32.0", - "lightningcss-darwin-arm64": "1.32.0", - "lightningcss-darwin-x64": "1.32.0", - "lightningcss-freebsd-x64": "1.32.0", - "lightningcss-linux-arm-gnueabihf": "1.32.0", - "lightningcss-linux-arm64-gnu": "1.32.0", - "lightningcss-linux-arm64-musl": "1.32.0", - "lightningcss-linux-x64-gnu": "1.32.0", - "lightningcss-linux-x64-musl": "1.32.0", - "lightningcss-win32-arm64-msvc": "1.32.0", - "lightningcss-win32-x64-msvc": "1.32.0" - } - }, - "node_modules/lightningcss-android-arm64": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.32.0.tgz", - "integrity": "sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-darwin-arm64": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.32.0.tgz", - "integrity": "sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-darwin-x64": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.32.0.tgz", - "integrity": "sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-freebsd-x64": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.32.0.tgz", - "integrity": "sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-arm-gnueabihf": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.32.0.tgz", - "integrity": "sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-arm64-gnu": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.32.0.tgz", - "integrity": "sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-arm64-musl": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.32.0.tgz", - "integrity": "sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-x64-gnu": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.32.0.tgz", - "integrity": "sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-x64-musl": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.32.0.tgz", - "integrity": "sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-win32-arm64-msvc": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.32.0.tgz", - "integrity": "sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-win32-x64-msvc": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.32.0.tgz", - "integrity": "sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/magic-string": { - "version": "0.30.21", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", - "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.5" - } - }, - "node_modules/nanoid": { - "version": "3.3.15", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.15.tgz", - "integrity": "sha512-y7Wygv/7mEOvxTuEQDB8StXdMRBWf1kR/tlhAzBRUFkB2jfcLOAxO/SHmOO2zgz1pVgK29/kyupn059/bCHdjA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/obug": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/obug/-/obug-2.1.3.tgz", - "integrity": "sha512-9miFgM2OFba7hB+pRgvtV84pYTBaoTHohvmIgiRt6dRIzbwEOIaNaP+dIlGs2fNFoB0SeISs0Jz5WFVRid6Xyg==", - "dev": true, - "funding": [ - "https://github.com/sponsors/sxzz", - "https://opencollective.com/debug" - ], - "license": "MIT", - "engines": { - "node": ">=12.20.0" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "license": "ISC", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/pathe": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", - "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", - "dev": true, - "license": "MIT" - }, - "node_modules/picocolors": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", - "dev": true, - "license": "ISC" - }, - "node_modules/picomatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.5.tgz", - "integrity": "sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/postcss": { - "version": "8.5.16", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.16.tgz", - "integrity": "sha512-vuwillviilfKZsg0VGj5R/YwwcHx4SLsIOI/7K6mQkWx+l5cUHTjj5g0AasTBcyXsbfTgrwsUNmVUb5xVwyPwg==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "nanoid": "^3.3.12", - "picocolors": "^1.1.1", - "source-map-js": "^1.2.1" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/rolldown": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.1.5.tgz", - "integrity": "sha512-t9z29cJjXf/vxQ8dyhCSpt6H6aSwHTk8cT5I3iy6SMXuFpk5mB6PL6XfC8PCwrPTx93udwKUm9HRteAlTGBLiA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@oxc-project/types": "=0.139.0", - "@rolldown/pluginutils": "^1.0.0" - }, - "bin": { - "rolldown": "bin/cli.mjs" - }, - "engines": { - "node": "^20.19.0 || >=22.12.0" - }, - "optionalDependencies": { - "@rolldown/binding-android-arm64": "1.1.5", - "@rolldown/binding-darwin-arm64": "1.1.5", - "@rolldown/binding-darwin-x64": "1.1.5", - "@rolldown/binding-freebsd-x64": "1.1.5", - "@rolldown/binding-linux-arm-gnueabihf": "1.1.5", - "@rolldown/binding-linux-arm64-gnu": "1.1.5", - "@rolldown/binding-linux-arm64-musl": "1.1.5", - "@rolldown/binding-linux-ppc64-gnu": "1.1.5", - "@rolldown/binding-linux-s390x-gnu": "1.1.5", - "@rolldown/binding-linux-x64-gnu": "1.1.5", - "@rolldown/binding-linux-x64-musl": "1.1.5", - "@rolldown/binding-openharmony-arm64": "1.1.5", - "@rolldown/binding-wasm32-wasi": "1.1.5", - "@rolldown/binding-win32-arm64-msvc": "1.1.5", - "@rolldown/binding-win32-x64-msvc": "1.1.5" - } - }, - "node_modules/siginfo": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", - "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", - "dev": true, - "license": "ISC" - }, - "node_modules/source-map-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", - "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/stackback": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", - "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", - "dev": true, - "license": "MIT" - }, - "node_modules/std-env": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/std-env/-/std-env-4.2.0.tgz", - "integrity": "sha512-oCUKSupKTHX53EyjDtuZQ64pjLJ6yYCtpmEw0goYxtjG9KpbRe8KAsl2tBUGU9DyMcJ0RwJ8GqJAFzMXcXW1Rw==", - "dev": true, - "license": "MIT" - }, - "node_modules/tinybench": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", - "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==", - "dev": true, - "license": "MIT" - }, - "node_modules/tinyexec": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.2.4.tgz", - "integrity": "sha512-SHf/r48b7vOrjve9PxJo3MN5v5yuyjHvdUcrQffT3WXMUfnGmHDVbC4k3sHJaJTgZCwpUplIaAo5ANtMyp3YHg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - } - }, - "node_modules/tinyglobby": { - "version": "0.2.17", - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz", - "integrity": "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==", - "dev": true, - "license": "MIT", - "dependencies": { - "fdir": "^6.5.0", - "picomatch": "^4.0.4" - }, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/SuperchupuDev" - } - }, - "node_modules/tinyrainbow": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-3.1.0.tgz", - "integrity": "sha512-Bf+ILmBgretUrdJxzXM0SgXLZ3XfiaUuOj/IKQHuTXip+05Xn+uyEYdVg0kYDipTBcLrCVyUzAPz7QmArb0mmw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true, - "license": "0BSD", - "optional": true - }, - "node_modules/tunnel": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", - "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", - "license": "MIT", - "engines": { - "node": ">=0.6.11 <=0.7.0 || >=0.7.3" - } - }, - "node_modules/typescript": { - "version": "5.9.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", - "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", - "dev": true, - "license": "Apache-2.0", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/undici": { - "version": "5.29.0", - "resolved": "https://registry.npmjs.org/undici/-/undici-5.29.0.tgz", - "integrity": "sha512-raqeBD6NQK4SkWhQzeYKd1KmIG6dllBOTt55Rmkt4HtI9mwdWtJljnrXjAFUBLTSN67HWrOIZ3EPF4kjUw80Bg==", - "license": "MIT", - "dependencies": { - "@fastify/busboy": "^2.0.0" - }, - "engines": { - "node": ">=14.0" - } - }, - "node_modules/undici-types": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", - "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/universal-user-agent": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.1.tgz", - "integrity": "sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==", - "license": "ISC" - }, - "node_modules/vite": { - "version": "8.1.4", - "resolved": "https://registry.npmjs.org/vite/-/vite-8.1.4.tgz", - "integrity": "sha512-bTT9PsdWO+MQMNG9ZXIP/qM9wGh37DFxTV/sPq9cFpHr3w4jkgef032PkAL9jAqhk3Nz8NQw3O8n6/xFkqO4QQ==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "lightningcss": "^1.32.0", - "picomatch": "^4.0.5", - "postcss": "^8.5.16", - "rolldown": "~1.1.4", - "tinyglobby": "^0.2.17" - }, - "bin": { - "vite": "bin/vite.js" - }, - "engines": { - "node": "^20.19.0 || >=22.12.0" - }, - "funding": { - "url": "https://github.com/vitejs/vite?sponsor=1" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" - }, - "peerDependencies": { - "@types/node": "^20.19.0 || >=22.12.0", - "@vitejs/devtools": "^0.3.0", - "esbuild": "^0.27.0 || ^0.28.0", - "jiti": ">=1.21.0", - "less": "^4.0.0", - "sass": "^1.70.0", - "sass-embedded": "^1.70.0", - "stylus": ">=0.54.8", - "sugarss": "^5.0.0", - "terser": "^5.16.0", - "tsx": "^4.8.1", - "yaml": "^2.4.2" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "@vitejs/devtools": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "jiti": { - "optional": true - }, - "less": { - "optional": true - }, - "sass": { - "optional": true - }, - "sass-embedded": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - }, - "tsx": { - "optional": true - }, - "yaml": { - "optional": true - } - } - }, - "node_modules/vitest": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-4.1.10.tgz", - "integrity": "sha512-R9jUTe5S4Qb0HCd4TNqpC7oGcrMssMRGXLW80ubjWsW9VH5GF8y1Y0SFLY9AbqSk6nt0PnOx4H4WNJYZ13GUPw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@vitest/expect": "4.1.10", - "@vitest/mocker": "4.1.10", - "@vitest/pretty-format": "4.1.10", - "@vitest/runner": "4.1.10", - "@vitest/snapshot": "4.1.10", - "@vitest/spy": "4.1.10", - "@vitest/utils": "4.1.10", - "es-module-lexer": "^2.0.0", - "expect-type": "^1.3.0", - "magic-string": "^0.30.21", - "obug": "^2.1.1", - "pathe": "^2.0.3", - "picomatch": "^4.0.3", - "std-env": "^4.0.0-rc.1", - "tinybench": "^2.9.0", - "tinyexec": "^1.0.2", - "tinyglobby": "^0.2.15", - "tinyrainbow": "^3.1.0", - "vite": "^6.0.0 || ^7.0.0 || ^8.0.0", - "why-is-node-running": "^2.3.0" - }, - "bin": { - "vitest": "vitest.mjs" - }, - "engines": { - "node": "^20.0.0 || ^22.0.0 || >=24.0.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - }, - "peerDependencies": { - "@edge-runtime/vm": "*", - "@opentelemetry/api": "^1.9.0", - "@types/node": "^20.0.0 || ^22.0.0 || >=24.0.0", - "@vitest/browser-playwright": "4.1.10", - "@vitest/browser-preview": "4.1.10", - "@vitest/browser-webdriverio": "4.1.10", - "@vitest/coverage-istanbul": "4.1.10", - "@vitest/coverage-v8": "4.1.10", - "@vitest/ui": "4.1.10", - "happy-dom": "*", - "jsdom": "*", - "vite": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "@edge-runtime/vm": { - "optional": true - }, - "@opentelemetry/api": { - "optional": true - }, - "@types/node": { - "optional": true - }, - "@vitest/browser-playwright": { - "optional": true - }, - "@vitest/browser-preview": { - "optional": true - }, - "@vitest/browser-webdriverio": { - "optional": true - }, - "@vitest/coverage-istanbul": { - "optional": true - }, - "@vitest/coverage-v8": { - "optional": true - }, - "@vitest/ui": { - "optional": true - }, - "happy-dom": { - "optional": true - }, - "jsdom": { - "optional": true - }, - "vite": { - "optional": false - } - } - }, - "node_modules/why-is-node-running": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz", - "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==", - "dev": true, - "license": "MIT", - "dependencies": { - "siginfo": "^2.0.0", - "stackback": "0.0.2" - }, - "bin": { - "why-is-node-running": "cli.js" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "license": "ISC" - } - } -} diff --git a/.secretariat/ai-review/setup/package.json b/.secretariat/ai-review/setup/package.json deleted file mode 100644 index 695870bc9..000000000 --- a/.secretariat/ai-review/setup/package.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "name": "@adcp/aao-secretariat-setup", - "version": "0.1.0", - "description": "AAO-SECRETARIAT v2 setup action — parses AAO-SECRETARIAT.md, computes diff/delta, evaluates short-circuit conditions.", - "type": "module", - "main": "dist/index.js", - "private": true, - "scripts": { - "build": "ncc build src/index.ts -o dist --minify", - "type-check": "tsc --noEmit", - "test": "vitest run" - }, - "dependencies": { - "@actions/core": "^1.11.1", - "@actions/exec": "^1.1.1", - "@actions/github": "^6.0.1", - "picomatch": "^4.0.2" - }, - "devDependencies": { - "@types/node": "^22.10.5", - "@types/picomatch": "^3.0.2", - "@vercel/ncc": "^0.38.3", - "typescript": "^5.7.3", - "vitest": "^4.1.1" - } -} diff --git a/.secretariat/ai-review/setup/src/aao-secretariat-md.test.ts b/.secretariat/ai-review/setup/src/aao-secretariat-md.test.ts deleted file mode 100644 index bae407872..000000000 --- a/.secretariat/ai-review/setup/src/aao-secretariat-md.test.ts +++ /dev/null @@ -1,157 +0,0 @@ -import { describe, expect, test } from 'vitest' -import { parseAaoSecretariatMd } from './aao-secretariat-md.js' - -describe('parseAaoSecretariatMd', () => { - test('returns all-empty config when input is null', () => { - const result = parseAaoSecretariatMd(null) - expect(result).toEqual({ - repoContext: null, - highRiskPaths: [], - gatedPaths: [], - escalationReviewers: [], - noAutoApproveTeams: [], - protectedBranches: [], - trivialPaths: [], - releaseStackBranches: [], - skipBotAuthors: [], - }) - }) - - test('returns all-empty config when input is empty string', () => { - const result = parseAaoSecretariatMd('') - expect(result).toEqual({ - repoContext: null, - highRiskPaths: [], - gatedPaths: [], - escalationReviewers: [], - noAutoApproveTeams: [], - protectedBranches: [], - trivialPaths: [], - releaseStackBranches: [], - skipBotAuthors: [], - }) - }) -}) - -describe('parseAaoSecretariatMd — H2 bulleted lists', () => { - test('extracts High-Risk Paths section', () => { - const md = `# AAO-SECRETARIAT configuration - -## High-Risk Paths -- \`terraform/**/*.tf\` -- \`**/schema.prisma\` -` - expect(parseAaoSecretariatMd(md).highRiskPaths).toEqual([ - 'terraform/**/*.tf', - '**/schema.prisma', - ]) - }) - - test('extracts Escalation Reviewers as a list', () => { - const md = `## Escalation Reviewers -- nastassiafulconis -- EmmaLouise2018 -` - expect(parseAaoSecretariatMd(md).escalationReviewers).toEqual([ - 'nastassiafulconis', - 'EmmaLouise2018', - ]) - }) - - test('extracts No-Auto-Approve Teams as list', () => { - const md = `## No-Auto-Approve Teams -- example-org/security -- example-org/finance -` - expect(parseAaoSecretariatMd(md).noAutoApproveTeams).toEqual([ - 'example-org/security', - 'example-org/finance', - ]) - }) - - test('extracts Protected Branches', () => { - const md = `## Protected Branches -- main -- release/next -` - expect(parseAaoSecretariatMd(md).protectedBranches).toEqual(['main', 'release/next']) - }) - - test('extracts Trivial Paths', () => { - const md = `## Trivial Paths -- \`**/*.md\` -- \`.changeset/**\` -` - expect(parseAaoSecretariatMd(md).trivialPaths).toEqual(['**/*.md', '.changeset/**']) - }) - - test('extracts Release Stack Branches', () => { - const md = `## Release Stack Branches -- release/next -` - expect(parseAaoSecretariatMd(md).releaseStackBranches).toEqual(['release/next']) - }) - - test('extracts Skip Bot Authors', () => { - const md = `## Skip Bot Authors -- \`dependabot[bot]\` -- \`example-bot[bot]\` -` - expect(parseAaoSecretariatMd(md).skipBotAuthors).toEqual([ - 'dependabot[bot]', - 'example-bot[bot]', - ]) - }) - - test('extracts Gated Paths section', () => { - const md = `## Gated Paths -- \`.github/workflows/deploy.yml\` -- \`.github/workflows/hotfix.yml\` -` - expect(parseAaoSecretariatMd(md).gatedPaths).toEqual([ - '.github/workflows/deploy.yml', - '.github/workflows/hotfix.yml', - ]) - }) - - test('strips backtick wrappers around bullet entries', () => { - const md = `## High-Risk Paths -- \`**/version.yml\` -` - expect(parseAaoSecretariatMd(md).highRiskPaths).toEqual(['**/version.yml']) - }) - - test('ignores unknown sections', () => { - const md = `## Some Other Section -- not parsed -` - expect(parseAaoSecretariatMd(md)).toEqual({ - repoContext: null, - highRiskPaths: [], - gatedPaths: [], - escalationReviewers: [], - noAutoApproveTeams: [], - protectedBranches: [], - trivialPaths: [], - releaseStackBranches: [], - skipBotAuthors: [], - }) - }) - - test('extracts repo context as everything under ## Repo Context until next H2', () => { - const md = `## Repo Context - -This is the repo context. - -It can have multiple paragraphs. - -## High-Risk Paths -- terraform/** -` - const parsed = parseAaoSecretariatMd(md) - expect(parsed.repoContext?.trim()).toBe( - 'This is the repo context.\n\nIt can have multiple paragraphs.', - ) - expect(parsed.highRiskPaths).toEqual(['terraform/**']) - }) -}) diff --git a/.secretariat/ai-review/setup/src/aao-secretariat-md.ts b/.secretariat/ai-review/setup/src/aao-secretariat-md.ts deleted file mode 100644 index 2fe35ee28..000000000 --- a/.secretariat/ai-review/setup/src/aao-secretariat-md.ts +++ /dev/null @@ -1,95 +0,0 @@ -export interface AaoSecretariatConfig { - repoContext: string | null - highRiskPaths: string[] - gatedPaths: string[] - escalationReviewers: string[] - noAutoApproveTeams: string[] - protectedBranches: string[] - trivialPaths: string[] - releaseStackBranches: string[] - skipBotAuthors: string[] -} - -const EMPTY_CONFIG: AaoSecretariatConfig = { - repoContext: null, - highRiskPaths: [], - gatedPaths: [], - escalationReviewers: [], - noAutoApproveTeams: [], - protectedBranches: [], - trivialPaths: [], - releaseStackBranches: [], - skipBotAuthors: [], -} - -const SECTION_TO_KEY = new Map<string, keyof AaoSecretariatConfig>([ - ['repo context', 'repoContext'], - ['high-risk paths', 'highRiskPaths'], - ['gated paths', 'gatedPaths'], - ['escalation reviewers', 'escalationReviewers'], - ['no-auto-approve teams', 'noAutoApproveTeams'], - ['protected branches', 'protectedBranches'], - ['trivial paths', 'trivialPaths'], - ['release stack branches', 'releaseStackBranches'], - ['skip bot authors', 'skipBotAuthors'], -]) - -interface ParsedSection { - key: keyof AaoSecretariatConfig - body: string -} - -function splitSections(input: string): ParsedSection[] { - const lines = input.split(/\r?\n/) - const sections: ParsedSection[] = [] - let current: { key: keyof AaoSecretariatConfig; body: string[] } | null = null - - for (const line of lines) { - const h2 = /^##\s+(.+?)\s*$/.exec(line) - if (h2) { - if (current) { - sections.push({ key: current.key, body: current.body.join('\n') }) - } - const key = SECTION_TO_KEY.get(h2[1].toLowerCase()) - current = key ? { key, body: [] } : null - continue - } - if (current) current.body.push(line) - } - if (current) - sections.push({ key: current.key, body: current.body.join('\n') }) - return sections -} - -function parseBullets(body: string): string[] { - return body - .split(/\r?\n/) - .map((l) => l.trim()) - .filter((l) => l.startsWith('-')) - .map((l) => l.replace(/^-\s*/, '').trim()) - .map((l) => l.replace(/^`(.+)`$/, '$1')) - .filter((l) => l.length > 0) -} - -export function parseAaoSecretariatMd(input: string | null): AaoSecretariatConfig { - if (!input) return { ...EMPTY_CONFIG } - const result: AaoSecretariatConfig = { ...EMPTY_CONFIG } - for (const { key, body } of splitSections(input)) { - switch (key) { - case 'repoContext': - result.repoContext = body.trim().length > 0 ? body : null - break - case 'escalationReviewers': - case 'highRiskPaths': - case 'gatedPaths': - case 'noAutoApproveTeams': - case 'protectedBranches': - case 'trivialPaths': - case 'releaseStackBranches': - case 'skipBotAuthors': - result[key] = parseBullets(body) - break - } - } - return result -} diff --git a/.secretariat/ai-review/setup/src/diff.test.ts b/.secretariat/ai-review/setup/src/diff.test.ts deleted file mode 100644 index 858a94cf2..000000000 --- a/.secretariat/ai-review/setup/src/diff.test.ts +++ /dev/null @@ -1,282 +0,0 @@ -import { describe, expect, test, vi } from 'vitest' -import { - computeChangedFiles, - computePrSurfaceFiles, - filterTrivialFiles, - intersectChangedFiles, - writeDiffFile, -} from './diff.js' - -async function tmpTarget(): Promise<string> { - const { mkdtemp } = await import('node:fs/promises') - const { tmpdir } = await import('node:os') - const { join } = await import('node:path') - const dir = await mkdtemp(join(tmpdir(), 'aao-secretariat-test-')) - return join(dir, 'diff.patch') -} - -describe('intersectChangedFiles', () => { - test('returns files present in both lists', () => { - expect( - intersectChangedFiles({ - changedSincePrior: ['a.ts', 'b.ts', 'c.ts'], - currentPrSurface: ['b.ts', 'c.ts', 'd.ts'], - }), - ).toEqual(['b.ts', 'c.ts']) - }) - - test('preserves order from currentPrSurface', () => { - expect( - intersectChangedFiles({ - changedSincePrior: ['c.ts', 'a.ts'], - currentPrSurface: ['a.ts', 'b.ts', 'c.ts'], - }), - ).toEqual(['a.ts', 'c.ts']) - }) - - test('returns [] when no overlap', () => { - expect( - intersectChangedFiles({ - changedSincePrior: ['a.ts'], - currentPrSurface: ['b.ts'], - }), - ).toEqual([]) - }) -}) - -describe('filterTrivialFiles', () => { - test('removes files matching trivial globs', () => { - expect( - filterTrivialFiles({ - files: ['src/index.ts', 'README.md', '.changeset/foo.md', '__generated__/x.ts'], - trivialGlobs: ['**/*.md', '.changeset/**', '**/__generated__/**'], - }), - ).toEqual(['src/index.ts']) - }) - - test('empty trivialGlobs returns input unchanged', () => { - expect( - filterTrivialFiles({ - files: ['a.md', 'b.ts'], - trivialGlobs: [], - }), - ).toEqual(['a.md', 'b.ts']) - }) -}) - -describe('computePrSurfaceFiles', () => { - test('lists PR files via the API and maps change kinds', async () => { - const octokit: any = { - paginate: vi.fn().mockResolvedValue([ - { filename: 'src/a.ts', status: 'added' }, - { filename: 'src/b.ts', status: 'modified' }, - { filename: 'src/c.ts', status: 'removed' }, - { filename: 'src/d.ts', status: 'renamed' }, - { filename: 'src/e.ts', status: 'copied' }, - ]), - rest: { pulls: { listFiles: vi.fn() } }, - } - const surface = await computePrSurfaceFiles({ - octokit, - owner: 'o', - repo: 'r', - prNumber: 7, - }) - expect(surface.reliable).toBe(true) - expect(surface.files).toEqual([ - { path: 'src/a.ts', changeKind: 'added' }, - { path: 'src/b.ts', changeKind: 'modified' }, - { path: 'src/c.ts', changeKind: 'deleted' }, - { path: 'src/d.ts', changeKind: 'renamed' }, - { path: 'src/e.ts', changeKind: 'modified' }, - ]) - expect(octokit.paginate).toHaveBeenCalledWith( - octokit.rest.pulls.listFiles, - expect.objectContaining({ - owner: 'o', - repo: 'r', - pull_number: 7, - per_page: 100, - }), - ) - }) - - test('reliable=false with empty files on API error (fail closed)', async () => { - const octokit: any = { - paginate: vi.fn().mockRejectedValue(new Error('boom')), - rest: { pulls: { listFiles: vi.fn() } }, - } - expect( - await computePrSurfaceFiles({ octokit, owner: 'o', repo: 'r', prNumber: 7 }), - ).toEqual({ files: [], reliable: false }) - }) - - test('reliable=false when the 3000-file cap is hit (truncated surface)', async () => { - const raw = Array.from({ length: 3000 }, (_, i) => ({ - filename: `src/f${i}.ts`, - status: 'modified', - })) - const octokit: any = { - paginate: vi.fn().mockResolvedValue(raw), - rest: { pulls: { listFiles: vi.fn() } }, - } - const surface = await computePrSurfaceFiles({ - octokit, - owner: 'o', - repo: 'r', - prNumber: 7, - }) - expect(surface.reliable).toBe(false) - expect(surface.files).toHaveLength(3000) - }) -}) - -describe('computeChangedFiles', () => { - test('compares fromSha...toSha via the API and returns filenames', async () => { - const octokit: any = { - rest: { - repos: { - compareCommitsWithBasehead: vi.fn().mockResolvedValue({ - data: { - files: [{ filename: 'src/a.ts' }, { filename: 'src/b.ts' }], - total_commits: 2, - commits: [{}, {}], - }, - }), - }, - }, - } - const files = await computeChangedFiles({ - octokit, - owner: 'o', - repo: 'r', - fromSha: 'aaaa', - toSha: 'bbbb', - }) - expect(files).toEqual(['src/a.ts', 'src/b.ts']) - expect(octokit.rest.repos.compareCommitsWithBasehead).toHaveBeenCalledWith( - expect.objectContaining({ owner: 'o', repo: 'r', basehead: 'aaaa...bbbb' }), - ) - }) - - test('returns [] when the API omits files', async () => { - const octokit: any = { - rest: { - repos: { - compareCommitsWithBasehead: vi - .fn() - .mockResolvedValue({ data: { total_commits: 0, commits: [] } }), - }, - }, - } - expect( - await computeChangedFiles({ - octokit, - owner: 'o', - repo: 'r', - fromSha: 'a', - toSha: 'b', - }), - ).toEqual([]) - }) - - test('returns null on API error', async () => { - const octokit: any = { - rest: { - repos: { - compareCommitsWithBasehead: vi.fn().mockRejectedValue(new Error('boom')), - }, - }, - } - expect( - await computeChangedFiles({ - octokit, - owner: 'o', - repo: 'r', - fromSha: 'a', - toSha: 'b', - }), - ).toBeNull() - }) -}) - -describe('writeDiffFile', () => { - test('full PR diff: requests pulls diff media type and writes it', async () => { - const octokit: any = { - request: vi.fn().mockResolvedValue({ data: 'diff --git a/x b/x\n' }), - } - const target = await tmpTarget() - const written = await writeDiffFile({ - octokit, - owner: 'o', - repo: 'r', - prNumber: 7, - target, - }) - expect(written).toBe(target) - const fs = await import('node:fs/promises') - expect(await fs.readFile(target, 'utf8')).toContain('diff --git a/x') - expect(octokit.request).toHaveBeenCalledWith( - 'GET /repos/{owner}/{repo}/pulls/{pull_number}', - expect.objectContaining({ - owner: 'o', - repo: 'r', - pull_number: 7, - mediaType: { format: 'diff' }, - }), - ) - }) - - test('delta diff: requests compare diff media type for from...to', async () => { - const octokit: any = { - request: vi.fn().mockResolvedValue({ data: 'diff --git a/y b/y\n' }), - } - const target = await tmpTarget() - const written = await writeDiffFile({ - octokit, - owner: 'o', - repo: 'r', - fromSha: 'p', - toSha: 'h', - target, - }) - expect(written).toBe(target) - const fs = await import('node:fs/promises') - expect(await fs.readFile(target, 'utf8')).toContain('diff --git a/y') - expect(octokit.request).toHaveBeenCalledWith( - 'GET /repos/{owner}/{repo}/compare/{basehead}', - expect.objectContaining({ - owner: 'o', - repo: 'r', - basehead: 'p...h', - mediaType: { format: 'diff' }, - }), - ) - }) - - test('degrades to a placeholder note (does not throw) on an oversized/failed diff (HTTP 406)', async () => { - const octokit: any = { - request: vi.fn().mockRejectedValue(new Error('HTTP 406: diff exceeded the maximum number of lines')), - } - const target = await tmpTarget() - const written = await writeDiffFile({ - octokit, - owner: 'o', - repo: 'r', - prNumber: 7, - target, - }) - expect(written).toBe(target) - const fs = await import('node:fs/promises') - const body = await fs.readFile(target, 'utf8') - expect(body).toContain('could not be retrieved') - }) - - test('throws only on the programmer error of neither prNumber nor from/to', async () => { - const octokit: any = { request: vi.fn() } - await expect( - writeDiffFile({ octokit, owner: 'o', repo: 'r', target: await tmpTarget() }), - ).rejects.toThrow(/requires either prNumber/) - expect(octokit.request).not.toHaveBeenCalled() - }) -}) diff --git a/.secretariat/ai-review/setup/src/diff.ts b/.secretariat/ai-review/setup/src/diff.ts deleted file mode 100644 index e9d2addcf..000000000 --- a/.secretariat/ai-review/setup/src/diff.ts +++ /dev/null @@ -1,196 +0,0 @@ -import picomatch from 'picomatch' -import { writeFile } from 'node:fs/promises' -import * as core from '@actions/core' -import type * as github from '@actions/github' -import type { ChangeKind, ChangedFile } from './high-risk.js' - -type Octokit = ReturnType<typeof github.getOctokit> - -/** - * Maps a GitHub file `status` (added|removed|modified|renamed|copied|changed| - * unchanged) onto the SDK's ChangeKind contract. - */ -function mapStatus(status: string): ChangeKind { - switch (status) { - case 'added': - return 'added' - case 'removed': - return 'deleted' - case 'renamed': - return 'renamed' - default: - return 'modified' - } -} - -export function intersectChangedFiles(params: { - changedSincePrior: string[] - currentPrSurface: string[] -}): string[] { - const { changedSincePrior, currentPrSurface } = params - const set = new Set(changedSincePrior) - return currentPrSurface.filter((f) => set.has(f)) -} - -export function filterTrivialFiles(params: { - files: string[] - trivialGlobs: string[] -}): string[] { - const { files, trivialGlobs } = params - if (trivialGlobs.length === 0) return [...files] - const isTrivial = picomatch(trivialGlobs) - return files.filter((f) => !isTrivial(f)) -} - -/** - * Delta since the prior review: files changed between two commits, derived from - * the GitHub compare API (never fetches the PR head). Returns null on error so - * callers can fall back to the tree-SHA comparison for unreachable commits. - */ -export async function computeChangedFiles(params: { - octokit: Octokit - owner: string - repo: string - fromSha: string - toSha: string -}): Promise<string[] | null> { - const { octokit, owner, repo, fromSha, toSha } = params - const basehead = `${fromSha}...${toSha}` - try { - const res = await octokit.rest.repos.compareCommitsWithBasehead({ - owner, - repo, - basehead, - }) - const returnedCommits = res.data.commits?.length ?? 0 - if ( - typeof res.data.total_commits === 'number' && - res.data.total_commits > returnedCommits - ) { - core.info( - `compare ${basehead}: ${res.data.total_commits} commits total but only ${returnedCommits} returned — delta file list may be truncated.`, - ) - } - const files = res.data.files ?? [] - if (files.length >= 300) { - core.info( - `compare ${basehead} returned ${files.length} files — GitHub caps the compare file list at 300; delta may be truncated.`, - ) - } - return files.map((f) => f.filename) - } catch (err) { - core.warning( - `compare ${basehead} failed: ${ - err instanceof Error ? err.message : String(err) - }`, - ) - return null - } -} - -// GitHub caps pulls.listFiles at 3000 files total, even across pagination. -// A response at the cap means the surface is truncated and cannot be trusted -// for the high-risk / gated-path gates. -const LIST_FILES_CAP = 3000 - -/** - * The PR's changed-file surface (equivalent to `base...head`), sourced from the - * pulls.listFiles API — never fetches or checks out the PR head. Each file - * carries its ChangeKind so high-risk / gated-path evaluation needs no extra - * API call. - * - * `reliable` is false when the surface could not be fully determined — the API - * errored, or the response hit the 3000-file cap. The high-risk / gated-path - * gates read this list, so the caller MUST fail closed on an unreliable - * surface: an empty or truncated list would otherwise silently clear those - * gates (fail-closed beats fail-open). - */ -export async function computePrSurfaceFiles(params: { - octokit: Octokit - owner: string - repo: string - prNumber: number -}): Promise<{ files: ChangedFile[]; reliable: boolean }> { - const { octokit, owner, repo, prNumber } = params - try { - const raw = await octokit.paginate(octokit.rest.pulls.listFiles, { - owner, - repo, - pull_number: prNumber, - per_page: 100, - }) - const files = raw.map((f) => ({ - path: f.filename, - changeKind: mapStatus(f.status), - })) - if (raw.length >= LIST_FILES_CAP) { - core.warning( - `pulls.listFiles for #${prNumber} returned ${raw.length} files — GitHub caps the PR file list at ${LIST_FILES_CAP}, so the surface is truncated. Treating it as unreliable so the high-risk / gated gates fail closed.`, - ) - return { files, reliable: false } - } - return { files, reliable: true } - } catch (err) { - core.warning( - `pulls.listFiles for #${prNumber} failed: ${ - err instanceof Error ? err.message : String(err) - }. Treating the PR surface as unreliable so the high-risk / gated gates fail closed.`, - ) - return { files: [], reliable: false } - } -} - -/** - * Writes a unified diff to `target`, fetched entirely from the GitHub API — the - * PR head is never fetched or checked out. Pass `prNumber` for the whole-PR - * diff, or `fromSha`+`toSha` for the delta (prior review → head) diff. Returns - * `target`. - */ -export async function writeDiffFile(params: { - octokit: Octokit - owner: string - repo: string - target: string - prNumber?: number - fromSha?: string - toSha?: string -}): Promise<string> { - const { octokit, owner, repo, target, prNumber, fromSha, toSha } = params - const isDelta = fromSha !== undefined && toSha !== undefined - if (!isDelta && prNumber === undefined) { - throw new Error( - 'writeDiffFile requires either prNumber (full PR diff) or fromSha+toSha (delta diff)', - ) - } - let diff: string - try { - const res = isDelta - ? await octokit.request('GET /repos/{owner}/{repo}/compare/{basehead}', { - owner, - repo, - basehead: `${fromSha}...${toSha}`, - mediaType: { format: 'diff' }, - }) - : await octokit.request('GET /repos/{owner}/{repo}/pulls/{pull_number}', { - owner, - repo, - pull_number: prNumber as number, - mediaType: { format: 'diff' }, - }) - diff = res.data as unknown as string - } catch (err) { - // GitHub returns HTTP 406 for diffs over its size limit; transient errors - // land here too. Degrade to a note rather than failing the whole review — - // unlike the old local `git diff`, the API diff has a size cap, and a large - // PR that used to review should still get a (human-flagged) review. - core.warning( - `Could not fetch the ${isDelta ? 'delta' : 'full'} diff for ${target}: ${ - err instanceof Error ? err.message : String(err) - }. Writing a placeholder — the diff is likely too large (HTTP 406).`, - ) - diff = - '> The diff could not be retrieved from the GitHub API — it is likely too large (HTTP 406) or the request failed. Review the changes from the PR page or via `gh pr diff`.\n' - } - await writeFile(target, diff) - return target -} diff --git a/.secretariat/ai-review/setup/src/event.test.ts b/.secretariat/ai-review/setup/src/event.test.ts deleted file mode 100644 index a37147069..000000000 --- a/.secretariat/ai-review/setup/src/event.test.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { describe, expect, test } from 'vitest' - -import { isPullRequestEvent } from './event.js' - -describe('isPullRequestEvent', () => { - test.each(['pull_request', 'pull_request_target'])( - 'accepts %s events', - (eventName) => { - expect(isPullRequestEvent(eventName)).toBe(true) - }, - ) - - test('rejects unrelated events', () => { - expect(isPullRequestEvent('push')).toBe(false) - }) -}) diff --git a/.secretariat/ai-review/setup/src/event.ts b/.secretariat/ai-review/setup/src/event.ts deleted file mode 100644 index 86cb4d57b..000000000 --- a/.secretariat/ai-review/setup/src/event.ts +++ /dev/null @@ -1,3 +0,0 @@ -export function isPullRequestEvent(eventName: string): boolean { - return eventName === 'pull_request' || eventName === 'pull_request_target' -} diff --git a/.secretariat/ai-review/setup/src/gated-paths.test.ts b/.secretariat/ai-review/setup/src/gated-paths.test.ts deleted file mode 100644 index 2f20a2811..000000000 --- a/.secretariat/ai-review/setup/src/gated-paths.test.ts +++ /dev/null @@ -1,64 +0,0 @@ -import { describe, expect, test } from 'vitest' -import { evaluateGatedPaths } from './gated-paths.js' - -describe('evaluateGatedPaths', () => { - test('no globs configured → flag false, reasons empty', () => { - expect( - evaluateGatedPaths({ - files: [{ path: 'src/foo.ts', changeKind: 'modified' }], - globs: [], - }), - ).toEqual({ flag: false, reasons: [] }) - }) - - test('no files matching globs → flag false', () => { - expect( - evaluateGatedPaths({ - files: [{ path: 'src/foo.ts', changeKind: 'modified' }], - globs: ['.github/workflows/deploy.yml'], - }), - ).toEqual({ flag: false, reasons: [] }) - }) - - test('single matching file → flag true with one reason', () => { - expect( - evaluateGatedPaths({ - files: [ - { path: '.github/workflows/deploy.yml', changeKind: 'modified' }, - ], - globs: ['.github/workflows/deploy.yml'], - }), - ).toEqual({ - flag: true, - reasons: [ - '.github/workflows/deploy.yml (modified) matches `.github/workflows/deploy.yml`', - ], - }) - }) - - test('multiple matching files → multiple reasons', () => { - const result = evaluateGatedPaths({ - files: [ - { path: '.github/workflows/deploy.yml', changeKind: 'modified' }, - { path: '.github/workflows/hotfix.yml', changeKind: 'modified' }, - ], - globs: ['.github/workflows/deploy.yml', '.github/workflows/hotfix.yml'], - }) - expect(result.flag).toBe(true) - expect(result.reasons).toHaveLength(2) - expect(result.reasons[0]).toContain( - '.github/workflows/deploy.yml (modified)', - ) - expect(result.reasons[1]).toContain( - '.github/workflows/hotfix.yml (modified)', - ) - }) - - test('deleted files are tagged "deleted"', () => { - const result = evaluateGatedPaths({ - files: [{ path: '.github/workflows/deploy.yml', changeKind: 'deleted' }], - globs: ['.github/workflows/deploy.yml'], - }) - expect(result.reasons[0]).toContain('(deleted)') - }) -}) diff --git a/.secretariat/ai-review/setup/src/gated-paths.ts b/.secretariat/ai-review/setup/src/gated-paths.ts deleted file mode 100644 index c66aa741a..000000000 --- a/.secretariat/ai-review/setup/src/gated-paths.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { - evaluatePathGlobs, - type ChangedFile, - type GlobMatchResult, -} from './high-risk.js' - -export type GatedPathsResult = GlobMatchResult - -export function evaluateGatedPaths(params: { - files: ChangedFile[] - globs: string[] -}): GatedPathsResult { - return evaluatePathGlobs(params) -} diff --git a/.secretariat/ai-review/setup/src/high-risk.test.ts b/.secretariat/ai-review/setup/src/high-risk.test.ts deleted file mode 100644 index afe2a1021..000000000 --- a/.secretariat/ai-review/setup/src/high-risk.test.ts +++ /dev/null @@ -1,70 +0,0 @@ -import { describe, expect, test } from 'vitest' -import { evaluateHighRisk } from './high-risk.js' -import { evaluateGatedPaths } from './gated-paths.js' - -describe('evaluateHighRisk', () => { - test('no globs configured → flag false, reasons empty', () => { - expect( - evaluateHighRisk({ - files: [{ path: 'src/foo.ts', changeKind: 'modified' }], - globs: [], - }), - ).toEqual({ flag: false, reasons: [] }) - }) - - test('no files matching globs → flag false', () => { - expect( - evaluateHighRisk({ - files: [{ path: 'src/foo.ts', changeKind: 'modified' }], - globs: ['terraform/**/*.tf'], - }), - ).toEqual({ flag: false, reasons: [] }) - }) - - test('single matching file → flag true with one reason', () => { - expect( - evaluateHighRisk({ - files: [{ path: 'terraform/prod/main.tf', changeKind: 'modified' }], - globs: ['terraform/**/*.tf'], - }), - ).toEqual({ - flag: true, - reasons: [ - 'terraform/prod/main.tf (modified) matches `terraform/**/*.tf`', - ], - }) - }) - - test('multiple matching files → multiple reasons', () => { - const result = evaluateHighRisk({ - files: [ - { path: 'terraform/prod/main.tf', changeKind: 'deleted' }, - { path: 'apps/web/schema.prisma', changeKind: 'modified' }, - ], - globs: ['terraform/**/*.tf', '**/schema.prisma'], - }) - expect(result.flag).toBe(true) - expect(result.reasons).toHaveLength(2) - expect(result.reasons[0]).toContain('terraform/prod/main.tf (deleted)') - expect(result.reasons[1]).toContain('apps/web/schema.prisma (modified)') - }) - - test('deleted files are tagged "deleted"', () => { - const result = evaluateHighRisk({ - files: [{ path: 'terraform/prod/main.tf', changeKind: 'deleted' }], - globs: ['terraform/**'], - }) - expect(result.reasons[0]).toContain('(deleted)') - }) - - test('shares identical core behavior with evaluateGatedPaths', () => { - const input = { - files: [ - { path: 'terraform/prod/main.tf', changeKind: 'modified' as const }, - { path: 'src/foo.ts', changeKind: 'modified' as const }, - ], - globs: ['terraform/**/*.tf'], - } - expect(evaluateHighRisk(input)).toEqual(evaluateGatedPaths(input)) - }) -}) diff --git a/.secretariat/ai-review/setup/src/high-risk.ts b/.secretariat/ai-review/setup/src/high-risk.ts deleted file mode 100644 index 2041693b5..000000000 --- a/.secretariat/ai-review/setup/src/high-risk.ts +++ /dev/null @@ -1,46 +0,0 @@ -import picomatch from 'picomatch' - -export type ChangeKind = 'added' | 'modified' | 'deleted' | 'renamed' - -export interface ChangedFile { - path: string - changeKind: ChangeKind -} - -export interface GlobMatchResult { - flag: boolean - reasons: string[] -} - -export type HighRiskResult = GlobMatchResult - -/** - * Matches changed files against a glob list, producing human-readable - * reasons ("path (kind) matches `glob`"). Shared core for evaluateHighRisk - * (## High-Risk Paths) and evaluateGatedPaths (## Gated Paths). - */ -export function evaluatePathGlobs(params: { - files: ChangedFile[] - globs: string[] -}): GlobMatchResult { - const { files, globs } = params - if (globs.length === 0) return { flag: false, reasons: [] } - const matchers = globs.map((g) => ({ glob: g, isMatch: picomatch(g) })) - const reasons: string[] = [] - for (const file of files) { - for (const { glob, isMatch } of matchers) { - if (isMatch(file.path)) { - reasons.push(`${file.path} (${file.changeKind}) matches \`${glob}\``) - break - } - } - } - return { flag: reasons.length > 0, reasons } -} - -export function evaluateHighRisk(params: { - files: ChangedFile[] - globs: string[] -}): HighRiskResult { - return evaluatePathGlobs(params) -} diff --git a/.secretariat/ai-review/setup/src/index.ts b/.secretariat/ai-review/setup/src/index.ts deleted file mode 100644 index ab8297087..000000000 --- a/.secretariat/ai-review/setup/src/index.ts +++ /dev/null @@ -1,423 +0,0 @@ -import * as core from '@actions/core' -import * as github from '@actions/github' -import { readFile, mkdtemp } from 'node:fs/promises' -import { existsSync } from 'node:fs' -import { join } from 'node:path' -import { tmpdir } from 'node:os' - -import { parseAaoSecretariatMd } from './aao-secretariat-md.js' -import { resolveConfig, type ActionInputs } from './resolve-config.js' -import { evaluateShortCircuit } from './short-circuit.js' -import { evaluateHighRisk } from './high-risk.js' -import { evaluateGatedPaths } from './gated-paths.js' -import { isPullRequestEvent } from './event.js' -import { - computeChangedFiles, - computePrSurfaceFiles, - filterTrivialFiles, - intersectChangedFiles, - writeDiffFile, -} from './diff.js' -import { - containsMarker, - parseDecisionMarker, - wrapWithMarker, -} from './markers.js' - -function csv(input: string): string[] { - return input - .split(',') - .map((s) => s.trim()) - .filter(Boolean) -} - -async function postBotSkipCommentOnce(params: { - octokit: ReturnType<typeof github.getOctokit> - owner: string - repo: string - prNumber: number - marker: string -}) { - const { octokit, owner, repo, prNumber, marker } = params - const comments = await octokit.paginate(octokit.rest.issues.listComments, { - owner, - repo, - issue_number: prNumber, - per_page: 100, - }) - if (comments.some((c) => containsMarker(c.body ?? '', marker))) return - await octokit.rest.issues.createComment({ - owner, - repo, - issue_number: prNumber, - body: wrapWithMarker({ - body: 'AAO-SECRETARIAT does not review bot-authored PRs.', - marker, - }), - }) -} - -async function postMergeConflictCommentOnce(params: { - octokit: ReturnType<typeof github.getOctokit> - owner: string - repo: string - prNumber: number - marker: string -}) { - const { octokit, owner, repo, prNumber, marker } = params - const comments = await octokit.paginate(octokit.rest.issues.listComments, { - owner, - repo, - issue_number: prNumber, - per_page: 100, - }) - if (comments.some((c) => containsMarker(c.body ?? '', marker))) return - await octokit.rest.issues.createComment({ - owner, - repo, - issue_number: prNumber, - body: wrapWithMarker({ - body: 'AAO-SECRETARIAT cannot review this PR until merge conflicts are resolved.', - marker, - }), - }) -} - -async function readAaoSecretariatMd(): Promise<string | null> { - const path = join(process.env.GITHUB_WORKSPACE ?? '.', 'AAO-SECRETARIAT.md') - if (!existsSync(path)) { - core.info('AAO-SECRETARIAT.md not found at repo root; using defaults.') - return null - } - return await readFile(path, 'utf8') -} - -async function fetchPriorDecision(params: { - octokit: ReturnType<typeof github.getOctokit> - owner: string - repo: string - prNumber: number - aaoSecretariatBotLogin: string -}): Promise<string> { - const { octokit, owner, repo, prNumber, aaoSecretariatBotLogin } = params - const reviews = await octokit.paginate(octokit.rest.pulls.listReviews, { - owner, - repo, - pull_number: prNumber, - per_page: 100, - }) - const mine = reviews.filter((r) => r.user?.login === aaoSecretariatBotLogin).reverse() - for (const review of mine) { - const parsed = parseDecisionMarker(review.body ?? '') - if (parsed) return JSON.stringify(parsed) - } - return '' -} - -async function fetchReviewDecision(params: { - octokit: ReturnType<typeof github.getOctokit> - owner: string - repo: string - prNumber: number -}): Promise<string> { - const { octokit, owner, repo, prNumber } = params - try { - const result = await octokit.graphql<{ - repository: { - pullRequest: { reviewDecision: string | null } | null - } | null - }>( - `query($owner: String!, $repo: String!, $number: Int!) { - repository(owner: $owner, name: $repo) { - pullRequest(number: $number) { - reviewDecision - } - } - }`, - { owner, repo, number: prNumber }, - ) - return result.repository?.pullRequest?.reviewDecision ?? '' - } catch (err) { - core.warning( - `Could not fetch reviewDecision via GraphQL: ${err instanceof Error ? err.message : String(err)} — treating as unknown (empty string). Gates that key off review-decision must fail toward holding for human review, not toward auto-approving, when this is empty.`, - ) - return '' - } -} - -async function main(): Promise<void> { - const githubToken = core.getInput('github-token', { required: true }) - const inputs: ActionInputs = { - highRiskPaths: csv(core.getInput('high-risk-paths')), - gatedPaths: csv(core.getInput('gated-paths')), - trivialPaths: csv(core.getInput('trivial-paths')), - releaseStackBranches: csv(core.getInput('release-stack-branches')), - skipBotAuthors: csv(core.getInput('skip-bot-authors')), - protectedBranches: csv(core.getInput('protected-branches')), - noAutoApproveTeams: csv(core.getInput('no-auto-approve-teams')), - escalationReviewers: csv(core.getInput('escalation-reviewers')), - } - - const aaoSecretariatMdBody = await readAaoSecretariatMd() - const aaoSecretariatMd = parseAaoSecretariatMd(aaoSecretariatMdBody) - const config = resolveConfig({ aaoSecretariatMd, actionInputs: inputs }) - - const ctx = github.context - if (!isPullRequestEvent(ctx.eventName)) { - core.setOutput('should-run', 'false') - core.setOutput('skip-reason', 'not-a-pull-request') - return - } - - const pr = ctx.payload.pull_request - if (!pr) { - core.setOutput('should-run', 'false') - core.setOutput('skip-reason', 'missing-pr-payload') - return - } - - const octokit = github.getOctokit(githubToken) - const { owner, repo } = ctx.repo - const prNumber = pr.number as number - const headSha = pr.head.sha as string - const baseSha = pr.base.sha as string - const headRef = pr.head.ref as string - const baseRef = pr.base.ref as string - const isDraft = Boolean(pr.draft) - const prState = pr.state === 'closed' ? 'closed' : 'open' - const authorLogin = (pr.user?.login as string) ?? '' - const labels = ((pr.labels ?? []) as Array<{ name: string }>).map( - (l) => l.name, - ) - const hasForceReviewLabel = labels.includes( - core.getInput('force-review-label'), - ) - const eventAction = ctx.payload.action ?? '' - - let mergeable = true - try { - const { data: prData } = await octokit.rest.pulls.get({ - owner, - repo, - pull_number: prNumber, - }) - mergeable = prData.mergeable !== false - } catch { - // Transient lookup failure — keep the default (assume mergeable); a PR - // metadata blip should not block the review. - } - - const surface = await computePrSurfaceFiles({ - octokit, - owner, - repo, - prNumber, - }) - // Fail closed: the high-risk / gated-path gates are computed from this - // surface, so an incomplete surface (API error or the 3000-file cap) would - // silently clear them and let a security-critical PR auto-approve. Refuse to - // review rather than review an unknown surface. - if (!surface.reliable) { - throw new Error( - 'PR file surface could not be reliably determined (pulls.listFiles errored or hit the 3000-file cap). ' + - 'Refusing to auto-review: an incomplete surface would silently clear the high-risk / gated-path gates. ' + - 'Re-run once the API recovers, or review this PR manually.', - ) - } - const surfaceFiles = surface.files - const surfacePaths = surfaceFiles.map((f) => f.path) - - let priorReviewedSha: string | null = null - let deltaFiles: string[] = surfacePaths - let isPureRebase = false - - const aaoSecretariatBotLogin = core.getInput('aao-secretariat-bot-login') || 'aao-secretariat[bot]' - - if (eventAction === 'synchronize') { - try { - const reviews = await octokit.paginate(octokit.rest.pulls.listReviews, { - owner, - repo, - pull_number: prNumber, - per_page: 100, - }) - const lastAaoSecretariat = [...reviews] - .reverse() - .find((r) => r.user?.login === aaoSecretariatBotLogin) - priorReviewedSha = lastAaoSecretariat?.commit_id ?? null - } catch (err) { - core.warning( - `Could not read prior AAO-SECRETARIAT review SHA: ${err instanceof Error ? err.message : String(err)}`, - ) - } - - if (priorReviewedSha && priorReviewedSha !== headSha) { - const changedSincePrior = await computeChangedFiles({ - octokit, - owner, - repo, - fromSha: priorReviewedSha, - toSha: headSha, - }) - if (changedSincePrior !== null) { - isPureRebase = changedSincePrior.length === 0 - deltaFiles = intersectChangedFiles({ - changedSincePrior, - currentPrSurface: surfacePaths, - }) - } else { - // git diff failed because the prior commit is no longer reachable in - // the local clone (force-push/rebase). Compare tree SHAs via the - // GitHub API — commit objects remain accessible there even after a - // force push. Identical trees mean the file content is unchanged. - try { - const [{ data: priorCommit }, { data: currentCommit }] = - await Promise.all([ - octokit.rest.git.getCommit({ - owner, - repo, - commit_sha: priorReviewedSha, - }), - octokit.rest.git.getCommit({ owner, repo, commit_sha: headSha }), - ]) - isPureRebase = priorCommit.tree.sha === currentCommit.tree.sha - } catch (err) { - core.warning( - `Could not compare tree SHAs for ${priorReviewedSha}..${headSha}: ${ - err instanceof Error ? err.message : String(err) - }`, - ) - } - } - } - } - - const deltaFilesAfterTrivialFilter = filterTrivialFiles({ - files: deltaFiles, - trivialGlobs: config.trivialPaths, - }) - - const decision = evaluateShortCircuit({ - prState, - isDraft, - hasForceReviewLabel, - authorLogin, - triggeringActor: ctx.actor, - aaoSecretariatBotLogin, - skipBotAuthors: config.skipBotAuthors, - mergeable, - headRef, - releaseStackBranches: config.releaseStackBranches, - eventName: ctx.eventName, - eventAction, - deltaFiles, - deltaFilesAfterTrivialFilter, - isPureRebase, - }) - - if (!decision.shouldRun) { - if (decision.skipReason === 'bot-author') { - await postBotSkipCommentOnce({ - octokit, - owner, - repo, - prNumber, - marker: 'aao-secretariat/bot-skip-noted', - }) - } else if (decision.skipReason === 'merge-conflicts') { - await postMergeConflictCommentOnce({ - octokit, - owner, - repo, - prNumber, - marker: 'aao-secretariat/merge-conflict-noted', - }) - } - core.setOutput('should-run', 'false') - core.setOutput('skip-reason', decision.skipReason ?? '') - return - } - - // High-risk / gated-path evaluation runs on the PR surface. Change kinds - // come from the pulls.listFiles response already fetched above — no extra - // API call and, crucially, no fetch of the PR head. - const highRisk = evaluateHighRisk({ - files: surfaceFiles, - globs: config.highRiskPaths, - }) - const gatedPaths = evaluateGatedPaths({ - files: surfaceFiles, - globs: config.gatedPaths, - }) - - // Write diff files. Both diffs are pulled from the GitHub API; the PR head - // is never fetched or checked out. The full diff is the whole PR; the delta - // is the compare (prior review → head) diff, written only when a prior review - // established a narrower surface. - const tempDir = await mkdtemp(join(tmpdir(), 'aao-secretariat-setup-')) - const fullPath = join(tempDir, 'diff-full.patch') - await writeDiffFile({ octokit, owner, repo, prNumber, target: fullPath }) - const deltaPath = - priorReviewedSha && deltaFiles.length !== surfacePaths.length - ? await writeDiffFile({ - octokit, - owner, - repo, - fromSha: priorReviewedSha, - toSha: headSha, - target: join(tempDir, 'diff-delta.patch'), - }) - : fullPath - - // Prior decision marker - let priorDecision = '' - try { - priorDecision = await fetchPriorDecision({ - octokit, - owner, - repo, - prNumber, - aaoSecretariatBotLogin, - }) - } catch (err) { - core.warning( - `Could not fetch prior decision marker: ${err instanceof Error ? err.message : String(err)}`, - ) - } - - const reviewDecision = await fetchReviewDecision({ - octokit, - owner, - repo, - prNumber, - }) - if (gatedPaths.flag && !reviewDecision) { - core.warning( - 'gated-paths matched but review-decision came back empty — this gate can never be satisfied unless the matched path(s) are also covered by branch protection / CODEOWNERS required reviews. See the Gated Paths documentation for details.', - ) - } - - core.setOutput('should-run', 'true') - core.setOutput('skip-reason', '') - core.setOutput('aao-secretariat-md-body', config.repoContext ?? '') - core.setOutput('high-risk', highRisk.flag ? 'true' : 'false') - core.setOutput('high-risk-reasons', JSON.stringify(highRisk.reasons)) - core.setOutput('gated-paths', gatedPaths.flag ? 'true' : 'false') - core.setOutput('gated-paths-reasons', JSON.stringify(gatedPaths.reasons)) - core.setOutput('review-decision', reviewDecision) - core.setOutput('escalation-reviewers', config.escalationReviewers.join(',')) - core.setOutput('no-auto-approve-teams', config.noAutoApproveTeams.join(',')) - core.setOutput('protected-branches', config.protectedBranches.join(',')) - core.setOutput('prior-decision', priorDecision) - core.setOutput('diff-full-path', fullPath) - core.setOutput('diff-delta-path', deltaPath) - core.setOutput('pr-number', String(prNumber)) - core.setOutput('head-sha', headSha) - core.setOutput('base-sha', baseSha) - // baseRef is informational - core.info(`Base ref: ${baseRef}`) -} - -main().catch((err: unknown) => { - core.setFailed(err instanceof Error ? err.message : String(err)) -}) diff --git a/.secretariat/ai-review/setup/src/markers.test.ts b/.secretariat/ai-review/setup/src/markers.test.ts deleted file mode 100644 index 2d87ab96b..000000000 --- a/.secretariat/ai-review/setup/src/markers.test.ts +++ /dev/null @@ -1,45 +0,0 @@ -import { describe, expect, test } from 'vitest' -import { containsMarker, parseDecisionMarker, type PriorDecision, wrapWithMarker } from './markers.js' - -describe('wrapWithMarker', () => { - test('appends an HTML comment marker', () => { - const body = wrapWithMarker({ - body: 'AAO-SECRETARIAT does not review bot PRs.', - marker: 'aao-secretariat/bot-skip-noted', - }) - expect(body).toContain('AAO-SECRETARIAT does not review bot PRs.') - expect(body).toContain('<!-- aao-secretariat-marker:aao-secretariat/bot-skip-noted -->') - }) -}) - -describe('containsMarker', () => { - test('finds marker in a wrapped body', () => { - const body = wrapWithMarker({ body: 'x', marker: 'aao-secretariat/test' }) - expect(containsMarker(body, 'aao-secretariat/test')).toBe(true) - }) - test('returns false when marker absent', () => { - expect(containsMarker('just a comment', 'aao-secretariat/test')).toBe(false) - }) -}) - -describe('parseDecisionMarker', () => { - test('extracts JSON from the marker in a body', () => { - const body = - 'Approve.\n\n<!-- aao-secretariat-decision:\n{"head":"abc","outcome":"escalate","high_risk":true,"reasons":["x"]}\n-->' - const expected: PriorDecision = { - head: 'abc', - outcome: 'escalate', - high_risk: true, - reasons: ['x'], - } - expect(parseDecisionMarker(body)).toEqual(expected) - }) - - test('returns null when no marker present', () => { - expect(parseDecisionMarker('plain body')).toBeNull() - }) - - test('returns null on malformed JSON inside marker', () => { - expect(parseDecisionMarker('<!-- aao-secretariat-decision:\nnot-json\n-->')).toBeNull() - }) -}) diff --git a/.secretariat/ai-review/setup/src/markers.ts b/.secretariat/ai-review/setup/src/markers.ts deleted file mode 100644 index 65dc4d2e6..000000000 --- a/.secretariat/ai-review/setup/src/markers.ts +++ /dev/null @@ -1,61 +0,0 @@ -export function wrapWithMarker(params: { body: string; marker: string }): string { - return `${params.body}\n\n<!-- aao-secretariat-marker:${params.marker} -->` -} - -export function containsMarker(body: string, marker: string): boolean { - return body.includes(`<!-- aao-secretariat-marker:${marker} -->`) -} - -export type Outcome = 'approve' | 'request-changes' | 'comment' | 'escalate' - -export interface PriorFinding { - severity: 'critical' | 'high' | 'medium' - title: string - file: string - line?: number -} - -export interface PriorDecision { - head: string - outcome: Outcome - high_risk: boolean - reasons: string[] - findings?: PriorFinding[] -} - -const DECISION_RE = /<!--\s*aao-secretariat-decision:\s*([\s\S]*?)\s*-->/ - -export function parseDecisionMarker(body: string): PriorDecision | null { - const m = DECISION_RE.exec(body) - if (!m) return null - try { - const parsed = JSON.parse(m[1]) - if ( - typeof parsed === 'object' && - parsed !== null && - typeof parsed.head === 'string' && - ['approve', 'request-changes', 'comment', 'escalate'].includes(parsed.outcome) && - typeof parsed.high_risk === 'boolean' && - Array.isArray(parsed.reasons) - ) { - const findings: PriorFinding[] | undefined = Array.isArray(parsed.findings) - ? (parsed.findings as unknown[]).filter( - (f): f is PriorFinding => - typeof f === 'object' && - f !== null && - ['critical', 'high', 'medium'].includes((f as Record<string, unknown>).severity as string) && - typeof (f as Record<string, unknown>).title === 'string' && - typeof (f as Record<string, unknown>).file === 'string', - ) - : undefined - return { ...parsed, findings } as PriorDecision - } - return null - } catch { - return null - } -} - -export function buildDecisionMarker(decision: PriorDecision): string { - return `<!-- aao-secretariat-decision:\n${JSON.stringify(decision)}\n-->` -} diff --git a/.secretariat/ai-review/setup/src/resolve-config.test.ts b/.secretariat/ai-review/setup/src/resolve-config.test.ts deleted file mode 100644 index eb534825f..000000000 --- a/.secretariat/ai-review/setup/src/resolve-config.test.ts +++ /dev/null @@ -1,96 +0,0 @@ -import { describe, expect, test } from 'vitest' -import { resolveConfig } from './resolve-config.js' - -describe('resolveConfig', () => { - test('action input overrides AAO-SECRETARIAT.md for high-risk-paths', () => { - const result = resolveConfig({ - aaoSecretariatMd: { - repoContext: null, - highRiskPaths: ['from-md/**'], - gatedPaths: [], - escalationReviewers: [], - noAutoApproveTeams: [], - protectedBranches: [], - trivialPaths: [], - releaseStackBranches: [], - skipBotAuthors: [], - }, - actionInputs: { highRiskPaths: ['from-input/**'] }, - }) - expect(result.highRiskPaths).toEqual(['from-input/**']) - }) - - test('falls back to AAO-SECRETARIAT.md when input is empty', () => { - const result = resolveConfig({ - aaoSecretariatMd: { - repoContext: null, - highRiskPaths: ['from-md/**'], - gatedPaths: [], - escalationReviewers: [], - noAutoApproveTeams: [], - protectedBranches: [], - trivialPaths: [], - releaseStackBranches: [], - skipBotAuthors: [], - }, - actionInputs: { highRiskPaths: [] }, - }) - expect(result.highRiskPaths).toEqual(['from-md/**']) - }) - - test('falls back to defaults when both empty', () => { - const result = resolveConfig({ - aaoSecretariatMd: null, - actionInputs: { releaseStackBranches: [] }, - }) - expect(result.releaseStackBranches).toEqual(['release/next']) - expect(result.skipBotAuthors).toContain('dependabot[bot]') - expect(result.skipBotAuthors).toContain('github-actions[bot]') - }) - - test('repoContext only comes from AAO-SECRETARIAT.md', () => { - const result = resolveConfig({ - aaoSecretariatMd: { - repoContext: 'hello', - highRiskPaths: [], - gatedPaths: [], - escalationReviewers: [], - noAutoApproveTeams: [], - protectedBranches: [], - trivialPaths: [], - releaseStackBranches: [], - skipBotAuthors: [], - }, - actionInputs: {}, - }) - expect(result.repoContext).toBe('hello') - }) - - test('gatedPaths resolves via the same override chain as highRiskPaths', () => { - const md = { - repoContext: null, - highRiskPaths: [], - gatedPaths: ['from-md/**'], - escalationReviewers: [], - noAutoApproveTeams: [], - protectedBranches: [], - trivialPaths: [], - releaseStackBranches: [], - skipBotAuthors: [], - } - - expect( - resolveConfig({ - aaoSecretariatMd: md, - actionInputs: { gatedPaths: ['from-input/**'] }, - }).gatedPaths, - ).toEqual(['from-input/**']) - expect( - resolveConfig({ aaoSecretariatMd: md, actionInputs: { gatedPaths: [] } }) - .gatedPaths, - ).toEqual(['from-md/**']) - expect( - resolveConfig({ aaoSecretariatMd: null, actionInputs: {} }).gatedPaths, - ).toEqual([]) - }) -}) diff --git a/.secretariat/ai-review/setup/src/resolve-config.ts b/.secretariat/ai-review/setup/src/resolve-config.ts deleted file mode 100644 index ac0e3eee2..000000000 --- a/.secretariat/ai-review/setup/src/resolve-config.ts +++ /dev/null @@ -1,104 +0,0 @@ -import type { AaoSecretariatConfig } from './aao-secretariat-md.js' - -export interface ActionInputs { - highRiskPaths?: string[] - gatedPaths?: string[] - trivialPaths?: string[] - releaseStackBranches?: string[] - skipBotAuthors?: string[] - protectedBranches?: string[] - noAutoApproveTeams?: string[] - escalationReviewers?: string[] -} - -export interface ResolvedConfig { - repoContext: string | null - highRiskPaths: string[] - gatedPaths: string[] - escalationReviewers: string[] - noAutoApproveTeams: string[] - protectedBranches: string[] - trivialPaths: string[] - releaseStackBranches: string[] - skipBotAuthors: string[] -} - -const DEFAULTS = { - trivialPaths: [ - '.changeset/**', - '**/*.md', - '**/__generated__/**', - '**/dist/**', - '**/*.snap', - ], - releaseStackBranches: ['release/next'], - skipBotAuthors: [ - 'dependabot[bot]', - 'renovate[bot]', - 'github-actions[bot]', - ], - protectedBranches: [] as string[], - noAutoApproveTeams: [] as string[], - highRiskPaths: [] as string[], - gatedPaths: [] as string[], -} - -function pick<T>(input: T[] | undefined, md: T[], fallback: T[]): T[] { - if (input && input.length > 0) return input - if (md.length > 0) return md - return fallback -} - -export function resolveConfig(params: { - aaoSecretariatMd: AaoSecretariatConfig | null - actionInputs: ActionInputs -}): ResolvedConfig { - const md = params.aaoSecretariatMd ?? { - repoContext: null, - highRiskPaths: [], - gatedPaths: [], - escalationReviewers: [], - noAutoApproveTeams: [], - protectedBranches: [], - trivialPaths: [], - releaseStackBranches: [], - skipBotAuthors: [], - } - const i = params.actionInputs - - return { - repoContext: md.repoContext, - highRiskPaths: pick( - i.highRiskPaths, - md.highRiskPaths, - DEFAULTS.highRiskPaths, - ), - gatedPaths: pick(i.gatedPaths, md.gatedPaths, DEFAULTS.gatedPaths), - escalationReviewers: pick( - i.escalationReviewers, - md.escalationReviewers, - [], - ), - noAutoApproveTeams: pick( - i.noAutoApproveTeams, - md.noAutoApproveTeams, - DEFAULTS.noAutoApproveTeams, - ), - protectedBranches: pick( - i.protectedBranches, - md.protectedBranches, - DEFAULTS.protectedBranches, - ), - trivialPaths: pick(i.trivialPaths, md.trivialPaths, DEFAULTS.trivialPaths), - releaseStackBranches: pick( - i.releaseStackBranches, - md.releaseStackBranches, - DEFAULTS.releaseStackBranches, - ), - skipBotAuthors: pick( - i.skipBotAuthors, - md.skipBotAuthors, - DEFAULTS.skipBotAuthors, - ), - } -} diff --git a/.secretariat/ai-review/setup/src/short-circuit.test.ts b/.secretariat/ai-review/setup/src/short-circuit.test.ts deleted file mode 100644 index 5f7aed0ca..000000000 --- a/.secretariat/ai-review/setup/src/short-circuit.test.ts +++ /dev/null @@ -1,153 +0,0 @@ -import { describe, expect, test } from 'vitest' -import { evaluateShortCircuit, type ShortCircuitContext } from './short-circuit.js' - -function ctx(overrides: Partial<ShortCircuitContext> = {}): ShortCircuitContext { - return { - prState: 'open', - isDraft: false, - hasForceReviewLabel: false, - authorLogin: 'alice', - triggeringActor: 'alice', - aaoSecretariatBotLogin: 'aao-secretariat-the-approver[bot]', - skipBotAuthors: ['dependabot[bot]', 'example-bot[bot]'], - mergeable: true, - headRef: 'feature/foo', - releaseStackBranches: ['release/next'], - eventName: 'pull_request', - eventAction: 'opened', - deltaFiles: ['src/foo.ts'], - deltaFilesAfterTrivialFilter: ['src/foo.ts'], - isPureRebase: false, - ...overrides, - } -} - -describe('evaluateShortCircuit', () => { - test('open PR with diff → should-run=true', () => { - expect(evaluateShortCircuit(ctx())).toEqual({ shouldRun: true, skipReason: null }) - }) - - test('closed PR → skip with pr-closed', () => { - expect(evaluateShortCircuit(ctx({ prState: 'closed' }))).toEqual({ - shouldRun: false, - skipReason: 'pr-closed', - }) - }) - - test('draft without force-review label → skip with pr-draft', () => { - expect(evaluateShortCircuit(ctx({ isDraft: true }))).toEqual({ - shouldRun: false, - skipReason: 'pr-draft', - }) - }) - - test('draft WITH force-review label → should-run=true', () => { - expect( - evaluateShortCircuit(ctx({ isDraft: true, hasForceReviewLabel: true })), - ).toEqual({ shouldRun: true, skipReason: null }) - }) - - test('bot author → skip with bot-author', () => { - expect(evaluateShortCircuit(ctx({ authorLogin: 'dependabot[bot]' }))).toEqual({ - shouldRun: false, - skipReason: 'bot-author', - }) - }) - - test('bot author (example-bot) → skip', () => { - expect( - evaluateShortCircuit(ctx({ authorLogin: 'example-bot[bot]' })), - ).toEqual({ shouldRun: false, skipReason: 'bot-author' }) - }) - - test('merge conflicts → skip with merge-conflicts', () => { - expect(evaluateShortCircuit(ctx({ mergeable: false }))).toEqual({ - shouldRun: false, - skipReason: 'merge-conflicts', - }) - }) - - test('head ref in release-stack-branches → skip with release-stack-branch', () => { - expect(evaluateShortCircuit(ctx({ headRef: 'release/next' }))).toEqual({ - shouldRun: false, - skipReason: 'release-stack-branch', - }) - }) - - test('pure rebase on synchronize → skip with pure-rebase', () => { - expect( - evaluateShortCircuit(ctx({ eventAction: 'synchronize', isPureRebase: true })), - ).toEqual({ shouldRun: false, skipReason: 'pure-rebase' }) - }) - - test('empty delta on synchronize → skip with empty-delta', () => { - expect( - evaluateShortCircuit( - ctx({ - eventAction: 'synchronize', - deltaFiles: [], - deltaFilesAfterTrivialFilter: [], - }), - ), - ).toEqual({ shouldRun: false, skipReason: 'empty-delta' }) - }) - - test('all-trivial delta on synchronize → skip with empty-delta', () => { - expect( - evaluateShortCircuit( - ctx({ - eventAction: 'synchronize', - deltaFiles: ['README.md'], - deltaFilesAfterTrivialFilter: [], - }), - ), - ).toEqual({ shouldRun: false, skipReason: 'empty-delta' }) - }) - - test('empty delta on opened → should still run (full review)', () => { - expect( - evaluateShortCircuit( - ctx({ - eventAction: 'opened', - deltaFiles: [], - deltaFilesAfterTrivialFilter: [], - }), - ), - ).toEqual({ shouldRun: true, skipReason: null }) - }) - - test('triggeringActor matches aaoSecretariatBotLogin → skip with self-triggered', () => { - expect( - evaluateShortCircuit( - ctx({ - triggeringActor: 'aao-secretariat-the-approver[bot]', - aaoSecretariatBotLogin: 'aao-secretariat-the-approver[bot]', - }), - ), - ).toEqual({ shouldRun: false, skipReason: 'self-triggered' }) - }) - - test('triggeringActor matches but aaoSecretariatBotLogin empty → still runs', () => { - expect( - evaluateShortCircuit( - ctx({ - triggeringActor: 'aao-secretariat-the-approver[bot]', - aaoSecretariatBotLogin: '', - }), - ), - ).toEqual({ shouldRun: true, skipReason: null }) - }) - - test('precedence: closed beats every other condition', () => { - expect( - evaluateShortCircuit( - ctx({ - prState: 'closed', - isDraft: true, - mergeable: false, - authorLogin: 'dependabot[bot]', - }), - ), - ).toEqual({ shouldRun: false, skipReason: 'pr-closed' }) - }) -}) diff --git a/.secretariat/ai-review/setup/src/short-circuit.ts b/.secretariat/ai-review/setup/src/short-circuit.ts deleted file mode 100644 index 6e2d48ec1..000000000 --- a/.secretariat/ai-review/setup/src/short-circuit.ts +++ /dev/null @@ -1,53 +0,0 @@ -export type SkipReason = - | 'pr-closed' - | 'pr-draft' - | 'bot-author' - | 'merge-conflicts' - | 'release-stack-branch' - | 'self-triggered' - | 'pure-rebase' - | 'empty-delta' - -export interface ShortCircuitContext { - prState: 'open' | 'closed' - isDraft: boolean - hasForceReviewLabel: boolean - authorLogin: string - triggeringActor: string - aaoSecretariatBotLogin: string - skipBotAuthors: string[] - mergeable: boolean - headRef: string - releaseStackBranches: string[] - eventName: string - eventAction: string - deltaFiles: string[] - deltaFilesAfterTrivialFilter: string[] - isPureRebase: boolean -} - -export interface ShortCircuitDecision { - shouldRun: boolean - skipReason: SkipReason | null -} - -export function evaluateShortCircuit(ctx: ShortCircuitContext): ShortCircuitDecision { - if (ctx.prState === 'closed') return { shouldRun: false, skipReason: 'pr-closed' } - if (ctx.isDraft && !ctx.hasForceReviewLabel) - return { shouldRun: false, skipReason: 'pr-draft' } - if (ctx.skipBotAuthors.includes(ctx.authorLogin)) - return { shouldRun: false, skipReason: 'bot-author' } - if (ctx.triggeringActor && ctx.triggeringActor === ctx.aaoSecretariatBotLogin) - return { shouldRun: false, skipReason: 'self-triggered' } - if (!ctx.mergeable) return { shouldRun: false, skipReason: 'merge-conflicts' } - if (ctx.releaseStackBranches.includes(ctx.headRef)) - return { shouldRun: false, skipReason: 'release-stack-branch' } - if (ctx.eventAction === 'synchronize') { - if (ctx.isPureRebase) return { shouldRun: false, skipReason: 'pure-rebase' } - if (ctx.deltaFiles.length === 0 && ctx.deltaFilesAfterTrivialFilter.length === 0) - return { shouldRun: false, skipReason: 'empty-delta' } - if (ctx.deltaFiles.length > 0 && ctx.deltaFilesAfterTrivialFilter.length === 0) - return { shouldRun: false, skipReason: 'empty-delta' } - } - return { shouldRun: true, skipReason: null } -} diff --git a/.secretariat/ai-review/setup/tsconfig.json b/.secretariat/ai-review/setup/tsconfig.json deleted file mode 100644 index b263a11f5..000000000 --- a/.secretariat/ai-review/setup/tsconfig.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "compilerOptions": { - "target": "ES2022", - "module": "NodeNext", - "moduleResolution": "NodeNext", - "strict": true, - "esModuleInterop": true, - "outDir": "./dist", - "rootDir": "./src" - }, - "include": ["src/**/*"], - "exclude": ["dist", "node_modules", "**/*.test.ts"] -} diff --git a/AAO-SECRETARIAT.md b/LADON.md similarity index 100% rename from AAO-SECRETARIAT.md rename to LADON.md diff --git a/scripts/install-hooks.js b/scripts/install-hooks.js index bcc71b033..aa875b56b 100644 --- a/scripts/install-hooks.js +++ b/scripts/install-hooks.js @@ -134,22 +134,6 @@ echo "✅ Pre-push validation passed! (~6s)" echo "💡 Full validation (tests, schemas) will run in GitHub Actions CI" `; -// Pre-commit hook content — a thin delegator. The actual rebuild logic lives -// with the review tree (.secretariat/ai-review/scripts/precommit.sh) so it -// travels with that tree; this hook just links .git/hooks to it. -const preCommitHook = `#!/bin/bash - -# Pre-commit hook — delegates to the self-contained AAO Secretariat rebuild -# script. Keeps a node action's committed dist/ in sync when its source is -# staged. No-op for commits that don't touch .secretariat/ai-review. - -REPO_ROOT=$(git rev-parse --show-toplevel 2>/dev/null) -[ -z "$REPO_ROOT" ] && exit 0 -HOOK="$REPO_ROOT/.secretariat/ai-review/scripts/precommit.sh" -[ -f "$HOOK" ] || exit 0 -exec bash "$HOOK" -`; - function installHooks() { // Handle both regular git repos and git worktrees let gitDir = path.join(process.cwd(), '.git'); @@ -174,7 +158,6 @@ function installHooks() { const hooksDir = path.join(gitDir, 'hooks'); const prePushPath = path.join(hooksDir, 'pre-push'); const commitMsgPath = path.join(hooksDir, 'commit-msg'); - const preCommitPath = path.join(hooksDir, 'pre-commit'); // Create hooks directory if it doesn't exist if (!fs.existsSync(hooksDir)) { @@ -222,24 +205,6 @@ function installHooks() { installed++; } - // Install pre-commit hook (delegates to the self-contained secretariat script). - // Never clobber a foreign pre-commit hook (husky, lint-staged, secret-scan, …) — - // overwriting one would silently disable a contributor's own checks. Only install - // when none exists; otherwise leave it and tell the developer how to chain ours in. - if (fs.existsSync(preCommitPath)) { - const existingContent = fs.readFileSync(preCommitPath, 'utf8'); - if (!existingContent.includes('.secretariat/ai-review/scripts/precommit.sh')) { - log(' ⚠️ Existing pre-commit hook found — not overwriting it.', 'yellow'); - log(' To keep .secretariat/ai-review dist/ in sync, add this line to it:', 'yellow'); - log(' bash "$(git rev-parse --show-toplevel)/.secretariat/ai-review/scripts/precommit.sh"', 'yellow'); - } - // else: it is already our delegator — up to date. - } else { - fs.writeFileSync(preCommitPath, preCommitHook); - fs.chmodSync(preCommitPath, 0o755); - installed++; - } - if (installed === 0) { log('✅ Git hooks are already configured', 'green'); return; @@ -250,7 +215,6 @@ function installHooks() { log('🪝 Installed hooks:', 'blue'); log(' • commit-msg - Validates commit message format (conventional commits)', 'reset'); log(' • pre-push - Fast validation: format + typecheck + build (~6s)', 'reset'); - log(' • pre-commit - Rebuilds .secretariat/ai-review dist/ when action source is staged', 'reset'); log('', 'reset'); log('⚡ What changed: Pre-push now runs FAST checks only (~6s)', 'green'); log(' Full tests, schema validation run in GitHub Actions CI', 'reset');