diff --git a/.editorconfig b/.editorconfig index 2de35d8..a336d0b 100644 --- a/.editorconfig +++ b/.editorconfig @@ -34,7 +34,6 @@ trim_trailing_whitespace = true # JavaScript, JSON, JSX, JavaScript Modules, TypeScript # https://github.com/feross/standard -# https://prettier.io [*.{cjs,js,json,jsx,mjs,ts,tsx}] indent_size = 4 tab_width = 4 diff --git a/.eslintignore b/.eslintignore deleted file mode 120000 index 656b796..0000000 --- a/.eslintignore +++ /dev/null @@ -1 +0,0 @@ -.prettierignore \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 31ba093..a8601e5 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -1,61 +1,61 @@ name: 🐞 Bug Report description: Report a bug labels: - - kind/bug - - status/needs-triage + - kind/bug + - status/needs-triage body: - - type: checkboxes - id: product - attributes: - label: Product name - description: What Polyfrost product are you using? - options: - - label: Website - - label: Launcher - - label: Installer + - type: checkboxes + id: product + attributes: + label: Product name + description: What Polyfrost product are you using? + options: + - label: Website + - label: Launcher + - label: Installer - - type: markdown - attributes: - value: | - ## First of all - 1. Please search for [existing issues](https://github.com/polyfrost/nexus/issues?q=is%3Aissue) about this problem first. - 2. Make sure it's an issue with our products and not something else you are using. - 3. Remember to follow our community guidelines and be friendly. + - type: markdown + attributes: + value: | + ## First of all + 1. Please search for [existing issues](https://github.com/polyfrost/nexus/issues?q=is%3Aissue) about this problem first. + 2. Make sure it's an issue with our products and not something else you are using. + 3. Remember to follow our community guidelines and be friendly. - - type: textarea - id: description - attributes: - label: Describe the bug - description: A clear description of what the bug is. Include screenshots if applicable. - placeholder: Bug description - validations: - required: true + - type: textarea + id: description + attributes: + label: Describe the bug + description: A clear description of what the bug is. Include screenshots if applicable. + placeholder: Bug description + validations: + required: true - - type: textarea - id: reproduction - attributes: - label: Reproduction - description: Steps to reproduce the behavior. - placeholder: | - 1. Go to ... - 2. Click on ... - 3. See error + - type: textarea + id: reproduction + attributes: + label: Reproduction + description: Steps to reproduce the behavior. + placeholder: | + 1. Go to ... + 2. Click on ... + 3. See error - - type: textarea - id: expected-behavior - attributes: - label: Expected behavior - description: A clear description of what you expected to happen. + - type: textarea + id: expected-behavior + attributes: + label: Expected behavior + description: A clear description of what you expected to happen. - - type: textarea - id: logs - attributes: - label: Stack trace (optional) - render: Shell + - type: textarea + id: logs + attributes: + label: Stack trace (optional) + render: Shell - - type: textarea - id: context - attributes: - label: Additional context - description: Add any other context about the problem here. + - type: textarea + id: context + attributes: + label: Additional context + description: Add any other context about the problem here. diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index 77fbf47..527a69f 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -2,12 +2,12 @@ # yaml-language-server: $schema=https://json.schemastore.org/github-issue-config.json blank_issues_enabled: false contact_links: - - name: 🙏 Get Help - url: https://github.com/polyfrost/nexus/discussions/new?category=help - about: If you can't get something to work the way you expect, open a question in our discussion forums. - - name: 💡 Feature Request - url: https://github.com/polyfrost/nexus/discussions/new?category=ideas - about: Suggest any ideas you have using our discussion forums. - - name: 💬 Discord Chat - url: https://polyfrost.cc/discord - about: Ask questions and talk to other Polyfrost product users and the devs. + - name: 🙏 Get Help + url: https://github.com/polyfrost/nexus/discussions/new?category=help + about: If you can't get something to work the way you expect, open a question in our discussion forums. + - name: 💡 Feature Request + url: https://github.com/polyfrost/nexus/discussions/new?category=ideas + about: Suggest any ideas you have using our discussion forums. + - name: 💬 Discord Chat + url: https://polyfrost.org/discord + about: Ask questions and talk to other Polyfrost product users and the devs. diff --git a/.github/actions/publish-artifacts/.gitignore b/.github/actions/publish-artifacts/.gitignore deleted file mode 100644 index 5c4b4fd..0000000 --- a/.github/actions/publish-artifacts/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -# pls tell me there is a better way -!dist diff --git a/.github/actions/publish-artifacts/action.yaml b/.github/actions/publish-artifacts/action.yaml deleted file mode 100644 index c3679af..0000000 --- a/.github/actions/publish-artifacts/action.yaml +++ /dev/null @@ -1,14 +0,0 @@ -name: Publish artifacts -description: Publishes artifacts after CI process -inputs: - target: - description: target triples for built artifact - profile: - description: "'debug' or 'release'" - os: - description: "'darwin', 'windows', or 'linux'" - arch: - description: "'x86_64' or 'aarch64'" -runs: - using: node20 - main: dist/index.js diff --git a/.github/actions/publish-artifacts/dist/index.js b/.github/actions/publish-artifacts/dist/index.js deleted file mode 100644 index ab88e6b..0000000 --- a/.github/actions/publish-artifacts/dist/index.js +++ /dev/null @@ -1,11 +0,0 @@ -(()=>{var A={5049:(A,e,t)=>{"use strict";var r;r={value:true};e.U=void 0;const n=t(7697);function create(){return n.DefaultArtifactClient.create()}e.U=create},7697:function(A,e,t){"use strict";var r=this&&this.__createBinding||(Object.create?function(A,e,t,r){if(r===undefined)r=t;var n=Object.getOwnPropertyDescriptor(e,t);if(!n||("get"in n?!e.__esModule:n.writable||n.configurable)){n={enumerable:true,get:function(){return e[t]}}}Object.defineProperty(A,r,n)}:function(A,e,t,r){if(r===undefined)r=t;A[r]=e[t]});var n=this&&this.__setModuleDefault||(Object.create?function(A,e){Object.defineProperty(A,"default",{enumerable:true,value:e})}:function(A,e){A["default"]=e});var i=this&&this.__importStar||function(A){if(A&&A.__esModule)return A;var e={};if(A!=null)for(var t in A)if(t!=="default"&&Object.prototype.hasOwnProperty.call(A,t))r(e,A,t);n(e,A);return e};var s=this&&this.__awaiter||function(A,e,t,r){function adopt(A){return A instanceof t?A:new t((function(e){e(A)}))}return new(t||(t=Promise))((function(t,n){function fulfilled(A){try{step(r.next(A))}catch(A){n(A)}}function rejected(A){try{step(r["throw"](A))}catch(A){n(A)}}function step(A){A.done?t(A.value):adopt(A.value).then(fulfilled,rejected)}step((r=r.apply(A,e||[])).next())}))};Object.defineProperty(e,"__esModule",{value:true});e.DefaultArtifactClient=void 0;const o=i(t(9050));const a=t(1661);const c=t(2523);const g=t(4172);const E=t(9574);const l=t(5339);const Q=t(7103);const B=t(2996);const h=t(1017);class DefaultArtifactClient{static create(){return new DefaultArtifactClient}uploadArtifact(A,e,t,r){return s(this,void 0,void 0,(function*(){o.info(`Starting artifact upload\nFor more detailed logs during the artifact upload process, enable step-debugging: https://docs.github.com/actions/monitoring-and-troubleshooting-workflows/enabling-debug-logging#enabling-step-debug-logging`);(0,E.checkArtifactName)(A);const n=(0,a.getUploadSpecification)(A,t,e);const i={artifactName:A,artifactItems:[],size:0,failedItems:[]};const s=new c.UploadHttpClient;if(n.length===0){o.warning(`No files found that can be uploaded`)}else{const e=yield s.createArtifactInFileContainer(A,r);if(!e.fileContainerResourceUrl){o.debug(e.toString());throw new Error("No URL provided by the Artifact Service to upload an artifact to")}o.debug(`Upload Resource URL: ${e.fileContainerResourceUrl}`);o.info(`Container for artifact "${A}" successfully created. Starting upload of file(s)`);const t=yield s.uploadArtifactToFileContainer(e.fileContainerResourceUrl,n,r);o.info(`File upload process has finished. Finalizing the artifact upload`);yield s.patchArtifactSize(t.totalSize,A);if(t.failedItems.length>0){o.info(`Upload finished. There were ${t.failedItems.length} items that failed to upload`)}else{o.info(`Artifact has been finalized. All files have been successfully uploaded!`)}o.info(`\nThe raw size of all the files that were specified for upload is ${t.totalSize} bytes\nThe size of all the files that were uploaded is ${t.uploadSize} bytes. This takes into account any gzip compression used to reduce the upload size, time and storage\n\nNote: The size of downloaded zips can differ significantly from the reported size. For more information see: https://github.com/actions/upload-artifact#zipped-artifact-downloads \r\n`);i.artifactItems=n.map((A=>A.absoluteFilePath));i.size=t.uploadSize;i.failedItems=t.failedItems}return i}))}downloadArtifact(A,e,t){return s(this,void 0,void 0,(function*(){const r=new l.DownloadHttpClient;const n=yield r.listArtifacts();if(n.count===0){throw new Error(`Unable to find any artifacts for the associated workflow`)}const i=n.value.find((e=>e.name===A));if(!i){throw new Error(`Unable to find an artifact with the name: ${A}`)}const s=yield r.getContainerItems(i.name,i.fileContainerResourceUrl);if(!e){e=(0,B.getWorkSpaceDirectory)()}e=(0,h.normalize)(e);e=(0,h.resolve)(e);const a=(0,Q.getDownloadSpecification)(A,s.value,e,(t===null||t===void 0?void 0:t.createArtifactFolder)||false);if(a.filesToDownload.length===0){o.info(`No downloadable files were found for the artifact: ${i.name}`)}else{yield(0,g.createDirectoriesForArtifact)(a.directoryStructure);o.info("Directory structure has been set up for the artifact");yield(0,g.createEmptyFilesForArtifact)(a.emptyFilesToCreate);yield r.downloadSingleArtifact(a.filesToDownload)}return{artifactName:A,downloadPath:a.rootDownloadLocation}}))}downloadAllArtifacts(A){return s(this,void 0,void 0,(function*(){const e=new l.DownloadHttpClient;const t=[];const r=yield e.listArtifacts();if(r.count===0){o.info("Unable to find any artifacts for the associated workflow");return t}if(!A){A=(0,B.getWorkSpaceDirectory)()}A=(0,h.normalize)(A);A=(0,h.resolve)(A);let n=0;while(n{"use strict";Object.defineProperty(e,"__esModule",{value:true});e.isGhes=e.getRetentionDays=e.getWorkSpaceDirectory=e.getWorkFlowRunId=e.getRuntimeUrl=e.getRuntimeToken=e.getDownloadFileConcurrency=e.getInitialRetryIntervalInMilliseconds=e.getRetryMultiplier=e.getRetryLimit=e.getUploadChunkSize=e.getUploadFileConcurrency=void 0;function getUploadFileConcurrency(){return 2}e.getUploadFileConcurrency=getUploadFileConcurrency;function getUploadChunkSize(){return 8*1024*1024}e.getUploadChunkSize=getUploadChunkSize;function getRetryLimit(){return 5}e.getRetryLimit=getRetryLimit;function getRetryMultiplier(){return 1.5}e.getRetryMultiplier=getRetryMultiplier;function getInitialRetryIntervalInMilliseconds(){return 3e3}e.getInitialRetryIntervalInMilliseconds=getInitialRetryIntervalInMilliseconds;function getDownloadFileConcurrency(){return 2}e.getDownloadFileConcurrency=getDownloadFileConcurrency;function getRuntimeToken(){const A=process.env["ACTIONS_RUNTIME_TOKEN"];if(!A){throw new Error("Unable to get ACTIONS_RUNTIME_TOKEN env variable")}return A}e.getRuntimeToken=getRuntimeToken;function getRuntimeUrl(){const A=process.env["ACTIONS_RUNTIME_URL"];if(!A){throw new Error("Unable to get ACTIONS_RUNTIME_URL env variable")}return A}e.getRuntimeUrl=getRuntimeUrl;function getWorkFlowRunId(){const A=process.env["GITHUB_RUN_ID"];if(!A){throw new Error("Unable to get GITHUB_RUN_ID env variable")}return A}e.getWorkFlowRunId=getWorkFlowRunId;function getWorkSpaceDirectory(){const A=process.env["GITHUB_WORKSPACE"];if(!A){throw new Error("Unable to get GITHUB_WORKSPACE env variable")}return A}e.getWorkSpaceDirectory=getWorkSpaceDirectory;function getRetentionDays(){return process.env["GITHUB_RETENTION_DAYS"]}e.getRetentionDays=getRetentionDays;function isGhes(){const A=new URL(process.env["GITHUB_SERVER_URL"]||"https://github.com");return A.hostname.toUpperCase()!=="GITHUB.COM"}e.isGhes=isGhes},5702:(A,e)=>{"use strict";Object.defineProperty(e,"__esModule",{value:true});const t=[BigInt("0x0000000000000000"),BigInt("0x7F6EF0C830358979"),BigInt("0xFEDDE190606B12F2"),BigInt("0x81B31158505E9B8B"),BigInt("0xC962E5739841B68F"),BigInt("0xB60C15BBA8743FF6"),BigInt("0x37BF04E3F82AA47D"),BigInt("0x48D1F42BC81F2D04"),BigInt("0xA61CECB46814FE75"),BigInt("0xD9721C7C5821770C"),BigInt("0x58C10D24087FEC87"),BigInt("0x27AFFDEC384A65FE"),BigInt("0x6F7E09C7F05548FA"),BigInt("0x1010F90FC060C183"),BigInt("0x91A3E857903E5A08"),BigInt("0xEECD189FA00BD371"),BigInt("0x78E0FF3B88BE6F81"),BigInt("0x078E0FF3B88BE6F8"),BigInt("0x863D1EABE8D57D73"),BigInt("0xF953EE63D8E0F40A"),BigInt("0xB1821A4810FFD90E"),BigInt("0xCEECEA8020CA5077"),BigInt("0x4F5FFBD87094CBFC"),BigInt("0x30310B1040A14285"),BigInt("0xDEFC138FE0AA91F4"),BigInt("0xA192E347D09F188D"),BigInt("0x2021F21F80C18306"),BigInt("0x5F4F02D7B0F40A7F"),BigInt("0x179EF6FC78EB277B"),BigInt("0x68F0063448DEAE02"),BigInt("0xE943176C18803589"),BigInt("0x962DE7A428B5BCF0"),BigInt("0xF1C1FE77117CDF02"),BigInt("0x8EAF0EBF2149567B"),BigInt("0x0F1C1FE77117CDF0"),BigInt("0x7072EF2F41224489"),BigInt("0x38A31B04893D698D"),BigInt("0x47CDEBCCB908E0F4"),BigInt("0xC67EFA94E9567B7F"),BigInt("0xB9100A5CD963F206"),BigInt("0x57DD12C379682177"),BigInt("0x28B3E20B495DA80E"),BigInt("0xA900F35319033385"),BigInt("0xD66E039B2936BAFC"),BigInt("0x9EBFF7B0E12997F8"),BigInt("0xE1D10778D11C1E81"),BigInt("0x606216208142850A"),BigInt("0x1F0CE6E8B1770C73"),BigInt("0x8921014C99C2B083"),BigInt("0xF64FF184A9F739FA"),BigInt("0x77FCE0DCF9A9A271"),BigInt("0x08921014C99C2B08"),BigInt("0x4043E43F0183060C"),BigInt("0x3F2D14F731B68F75"),BigInt("0xBE9E05AF61E814FE"),BigInt("0xC1F0F56751DD9D87"),BigInt("0x2F3DEDF8F1D64EF6"),BigInt("0x50531D30C1E3C78F"),BigInt("0xD1E00C6891BD5C04"),BigInt("0xAE8EFCA0A188D57D"),BigInt("0xE65F088B6997F879"),BigInt("0x9931F84359A27100"),BigInt("0x1882E91B09FCEA8B"),BigInt("0x67EC19D339C963F2"),BigInt("0xD75ADABD7A6E2D6F"),BigInt("0xA8342A754A5BA416"),BigInt("0x29873B2D1A053F9D"),BigInt("0x56E9CBE52A30B6E4"),BigInt("0x1E383FCEE22F9BE0"),BigInt("0x6156CF06D21A1299"),BigInt("0xE0E5DE5E82448912"),BigInt("0x9F8B2E96B271006B"),BigInt("0x71463609127AD31A"),BigInt("0x0E28C6C1224F5A63"),BigInt("0x8F9BD7997211C1E8"),BigInt("0xF0F5275142244891"),BigInt("0xB824D37A8A3B6595"),BigInt("0xC74A23B2BA0EECEC"),BigInt("0x46F932EAEA507767"),BigInt("0x3997C222DA65FE1E"),BigInt("0xAFBA2586F2D042EE"),BigInt("0xD0D4D54EC2E5CB97"),BigInt("0x5167C41692BB501C"),BigInt("0x2E0934DEA28ED965"),BigInt("0x66D8C0F56A91F461"),BigInt("0x19B6303D5AA47D18"),BigInt("0x980521650AFAE693"),BigInt("0xE76BD1AD3ACF6FEA"),BigInt("0x09A6C9329AC4BC9B"),BigInt("0x76C839FAAAF135E2"),BigInt("0xF77B28A2FAAFAE69"),BigInt("0x8815D86ACA9A2710"),BigInt("0xC0C42C4102850A14"),BigInt("0xBFAADC8932B0836D"),BigInt("0x3E19CDD162EE18E6"),BigInt("0x41773D1952DB919F"),BigInt("0x269B24CA6B12F26D"),BigInt("0x59F5D4025B277B14"),BigInt("0xD846C55A0B79E09F"),BigInt("0xA72835923B4C69E6"),BigInt("0xEFF9C1B9F35344E2"),BigInt("0x90973171C366CD9B"),BigInt("0x1124202993385610"),BigInt("0x6E4AD0E1A30DDF69"),BigInt("0x8087C87E03060C18"),BigInt("0xFFE938B633338561"),BigInt("0x7E5A29EE636D1EEA"),BigInt("0x0134D92653589793"),BigInt("0x49E52D0D9B47BA97"),BigInt("0x368BDDC5AB7233EE"),BigInt("0xB738CC9DFB2CA865"),BigInt("0xC8563C55CB19211C"),BigInt("0x5E7BDBF1E3AC9DEC"),BigInt("0x21152B39D3991495"),BigInt("0xA0A63A6183C78F1E"),BigInt("0xDFC8CAA9B3F20667"),BigInt("0x97193E827BED2B63"),BigInt("0xE877CE4A4BD8A21A"),BigInt("0x69C4DF121B863991"),BigInt("0x16AA2FDA2BB3B0E8"),BigInt("0xF86737458BB86399"),BigInt("0x8709C78DBB8DEAE0"),BigInt("0x06BAD6D5EBD3716B"),BigInt("0x79D4261DDBE6F812"),BigInt("0x3105D23613F9D516"),BigInt("0x4E6B22FE23CC5C6F"),BigInt("0xCFD833A67392C7E4"),BigInt("0xB0B6C36E43A74E9D"),BigInt("0x9A6C9329AC4BC9B5"),BigInt("0xE50263E19C7E40CC"),BigInt("0x64B172B9CC20DB47"),BigInt("0x1BDF8271FC15523E"),BigInt("0x530E765A340A7F3A"),BigInt("0x2C608692043FF643"),BigInt("0xADD397CA54616DC8"),BigInt("0xD2BD67026454E4B1"),BigInt("0x3C707F9DC45F37C0"),BigInt("0x431E8F55F46ABEB9"),BigInt("0xC2AD9E0DA4342532"),BigInt("0xBDC36EC59401AC4B"),BigInt("0xF5129AEE5C1E814F"),BigInt("0x8A7C6A266C2B0836"),BigInt("0x0BCF7B7E3C7593BD"),BigInt("0x74A18BB60C401AC4"),BigInt("0xE28C6C1224F5A634"),BigInt("0x9DE29CDA14C02F4D"),BigInt("0x1C518D82449EB4C6"),BigInt("0x633F7D4A74AB3DBF"),BigInt("0x2BEE8961BCB410BB"),BigInt("0x548079A98C8199C2"),BigInt("0xD53368F1DCDF0249"),BigInt("0xAA5D9839ECEA8B30"),BigInt("0x449080A64CE15841"),BigInt("0x3BFE706E7CD4D138"),BigInt("0xBA4D61362C8A4AB3"),BigInt("0xC52391FE1CBFC3CA"),BigInt("0x8DF265D5D4A0EECE"),BigInt("0xF29C951DE49567B7"),BigInt("0x732F8445B4CBFC3C"),BigInt("0x0C41748D84FE7545"),BigInt("0x6BAD6D5EBD3716B7"),BigInt("0x14C39D968D029FCE"),BigInt("0x95708CCEDD5C0445"),BigInt("0xEA1E7C06ED698D3C"),BigInt("0xA2CF882D2576A038"),BigInt("0xDDA178E515432941"),BigInt("0x5C1269BD451DB2CA"),BigInt("0x237C997575283BB3"),BigInt("0xCDB181EAD523E8C2"),BigInt("0xB2DF7122E51661BB"),BigInt("0x336C607AB548FA30"),BigInt("0x4C0290B2857D7349"),BigInt("0x04D364994D625E4D"),BigInt("0x7BBD94517D57D734"),BigInt("0xFA0E85092D094CBF"),BigInt("0x856075C11D3CC5C6"),BigInt("0x134D926535897936"),BigInt("0x6C2362AD05BCF04F"),BigInt("0xED9073F555E26BC4"),BigInt("0x92FE833D65D7E2BD"),BigInt("0xDA2F7716ADC8CFB9"),BigInt("0xA54187DE9DFD46C0"),BigInt("0x24F29686CDA3DD4B"),BigInt("0x5B9C664EFD965432"),BigInt("0xB5517ED15D9D8743"),BigInt("0xCA3F8E196DA80E3A"),BigInt("0x4B8C9F413DF695B1"),BigInt("0x34E26F890DC31CC8"),BigInt("0x7C339BA2C5DC31CC"),BigInt("0x035D6B6AF5E9B8B5"),BigInt("0x82EE7A32A5B7233E"),BigInt("0xFD808AFA9582AA47"),BigInt("0x4D364994D625E4DA"),BigInt("0x3258B95CE6106DA3"),BigInt("0xB3EBA804B64EF628"),BigInt("0xCC8558CC867B7F51"),BigInt("0x8454ACE74E645255"),BigInt("0xFB3A5C2F7E51DB2C"),BigInt("0x7A894D772E0F40A7"),BigInt("0x05E7BDBF1E3AC9DE"),BigInt("0xEB2AA520BE311AAF"),BigInt("0x944455E88E0493D6"),BigInt("0x15F744B0DE5A085D"),BigInt("0x6A99B478EE6F8124"),BigInt("0x224840532670AC20"),BigInt("0x5D26B09B16452559"),BigInt("0xDC95A1C3461BBED2"),BigInt("0xA3FB510B762E37AB"),BigInt("0x35D6B6AF5E9B8B5B"),BigInt("0x4AB846676EAE0222"),BigInt("0xCB0B573F3EF099A9"),BigInt("0xB465A7F70EC510D0"),BigInt("0xFCB453DCC6DA3DD4"),BigInt("0x83DAA314F6EFB4AD"),BigInt("0x0269B24CA6B12F26"),BigInt("0x7D0742849684A65F"),BigInt("0x93CA5A1B368F752E"),BigInt("0xECA4AAD306BAFC57"),BigInt("0x6D17BB8B56E467DC"),BigInt("0x12794B4366D1EEA5"),BigInt("0x5AA8BF68AECEC3A1"),BigInt("0x25C64FA09EFB4AD8"),BigInt("0xA4755EF8CEA5D153"),BigInt("0xDB1BAE30FE90582A"),BigInt("0xBCF7B7E3C7593BD8"),BigInt("0xC399472BF76CB2A1"),BigInt("0x422A5673A732292A"),BigInt("0x3D44A6BB9707A053"),BigInt("0x759552905F188D57"),BigInt("0x0AFBA2586F2D042E"),BigInt("0x8B48B3003F739FA5"),BigInt("0xF42643C80F4616DC"),BigInt("0x1AEB5B57AF4DC5AD"),BigInt("0x6585AB9F9F784CD4"),BigInt("0xE436BAC7CF26D75F"),BigInt("0x9B584A0FFF135E26"),BigInt("0xD389BE24370C7322"),BigInt("0xACE74EEC0739FA5B"),BigInt("0x2D545FB4576761D0"),BigInt("0x523AAF7C6752E8A9"),BigInt("0xC41748D84FE75459"),BigInt("0xBB79B8107FD2DD20"),BigInt("0x3ACAA9482F8C46AB"),BigInt("0x45A459801FB9CFD2"),BigInt("0x0D75ADABD7A6E2D6"),BigInt("0x721B5D63E7936BAF"),BigInt("0xF3A84C3BB7CDF024"),BigInt("0x8CC6BCF387F8795D"),BigInt("0x620BA46C27F3AA2C"),BigInt("0x1D6554A417C62355"),BigInt("0x9CD645FC4798B8DE"),BigInt("0xE3B8B53477AD31A7"),BigInt("0xAB69411FBFB21CA3"),BigInt("0xD407B1D78F8795DA"),BigInt("0x55B4A08FDFD90E51"),BigInt("0x2ADA5047EFEC8728")];class CRC64{constructor(){this._crc=BigInt(0)}update(A){const e=typeof A==="string"?Buffer.from(A):A;let r=CRC64.flip64Bits(this._crc);for(const A of e){const e=Number(r&BigInt(255));r=t[e^A]^r>>BigInt(8)}this._crc=CRC64.flip64Bits(r)}digest(A){switch(A){case"hex":return this._crc.toString(16).toUpperCase();case"base64":return this.toBuffer().toString("base64");default:return this.toBuffer()}}toBuffer(){return Buffer.from([0,8,16,24,32,40,48,56].map((A=>Number(this._crc>>BigInt(A)&BigInt(255)))))}static flip64Bits(A){return(BigInt(1)<s(this,void 0,void 0,(function*(){return e.get(A,t)}))));const n=yield r.readBody();return JSON.parse(n)}))}getContainerItems(A,e){return s(this,void 0,void 0,(function*(){const t=new E.URL(e);t.searchParams.append("itemPath",A);const r=this.downloadHttpManager.getClient(0);const n=(0,g.getDownloadHeaders)("application/json");const i=yield(0,C.retryHttpClientRequest)("Get Container Items",(()=>s(this,void 0,void 0,(function*(){return r.get(t.toString(),n)}))));const o=yield i.readBody();return JSON.parse(o)}))}downloadSingleArtifact(A){return s(this,void 0,void 0,(function*(){const e=(0,h.getDownloadFileConcurrency)();a.debug(`Download file concurrency is set to ${e}`);const t=[...new Array(e).keys()];let r=0;let n=0;a.info(`Total number of files that will be downloaded: ${A.length}`);this.statusReporter.setTotalNumberOfFilesToProcess(A.length);this.statusReporter.start();yield Promise.all(t.map((e=>s(this,void 0,void 0,(function*(){while(r{throw new Error(`Unable to download the artifact: ${A}`)})).finally((()=>{this.statusReporter.stop();this.downloadHttpManager.disposeAndReplaceAllClients()}))}))}downloadIndividualFile(A,e,t){return s(this,void 0,void 0,(function*(){let r=0;const n=(0,h.getRetryLimit)();let i=o.createWriteStream(t);const c=(0,g.getDownloadHeaders)("application/json",true,true);const makeDownloadRequest=()=>s(this,void 0,void 0,(function*(){const t=this.downloadHttpManager.getClient(A);return yield t.get(e,c)}));const isGzip=A=>"content-encoding"in A&&A["content-encoding"]==="gzip";const backOff=t=>s(this,void 0,void 0,(function*(){r++;if(r>n){return Promise.reject(new Error(`Retry limit has been reached. Unable to download ${e}`))}else{this.downloadHttpManager.disposeAndReplaceClient(A);if(t){a.info(`Backoff due to too many requests, retry #${r}. Waiting for ${t} milliseconds before continuing the download`);yield(0,g.sleep)(t)}else{const A=(0,g.getExponentialRetryTimeInMilliseconds)(r);a.info(`Exponential backoff for retry #${r}. Waiting for ${A} milliseconds before continuing the download`);yield(0,g.sleep)(A)}a.info(`Finished backoff for retry #${r}, continuing with download`)}}));const isAllBytesReceived=(A,e)=>{if(!A||!e||process.env["ACTIONS_ARTIFACT_SKIP_DOWNLOAD_VALIDATION"]){a.info("Skipping download validation.");return true}return parseInt(A)===e};const resetDestinationStream=A=>s(this,void 0,void 0,(function*(){i.close();yield new Promise((A=>{i.on("close",A);if(i.writableFinished){A()}}));yield(0,g.rmFile)(A);i=o.createWriteStream(A)}));while(r<=n){let A;try{A=yield makeDownloadRequest()}catch(A){a.info("An error occurred while attempting to download a file");console.log(A);yield backOff();continue}let r=false;if((0,g.isSuccessStatusCode)(A.message.statusCode)){try{const e=isGzip(A.message.headers);yield this.pipeResponseToFile(A,i,e);if(e||isAllBytesReceived(A.message.headers["content-length"],yield(0,g.getFileSize)(t))){return}else{r=true}}catch(A){r=true}}if(r||(0,g.isRetryableStatusCode)(A.message.statusCode)){a.info(`A ${A.message.statusCode} response code has been received while attempting to download an artifact`);resetDestinationStream(t);(0,g.isThrottledStatusCode)(A.message.statusCode)?yield backOff((0,g.tryGetRetryAfterValueTimeInMilliseconds)(A.message.headers)):yield backOff()}else{(0,g.displayHttpDiagnostics)(A);return Promise.reject(new Error(`Unexpected http ${A.message.statusCode} during download for ${e}`))}}}))}pipeResponseToFile(A,e,t){return s(this,void 0,void 0,(function*(){yield new Promise(((r,n)=>{if(t){const t=c.createGunzip();A.message.on("error",(A=>{a.info(`An error occurred while attempting to read the response stream`);t.close();e.close();n(A)})).pipe(t).on("error",(A=>{a.info(`An error occurred while attempting to decompress the response stream`);e.close();n(A)})).pipe(e).on("close",(()=>{r()})).on("error",(A=>{a.info(`An error occurred while writing a downloaded file to ${e.path}`);n(A)}))}else{A.message.on("error",(A=>{a.info(`An error occurred while attempting to read the response stream`);e.close();n(A)})).pipe(e).on("close",(()=>{r()})).on("error",(A=>{a.info(`An error occurred while writing a downloaded file to ${e.path}`);n(A)}))}}));return}))}}e.DownloadHttpClient=DownloadHttpClient},7103:function(A,e,t){"use strict";var r=this&&this.__createBinding||(Object.create?function(A,e,t,r){if(r===undefined)r=t;var n=Object.getOwnPropertyDescriptor(e,t);if(!n||("get"in n?!e.__esModule:n.writable||n.configurable)){n={enumerable:true,get:function(){return e[t]}}}Object.defineProperty(A,r,n)}:function(A,e,t,r){if(r===undefined)r=t;A[r]=e[t]});var n=this&&this.__setModuleDefault||(Object.create?function(A,e){Object.defineProperty(A,"default",{enumerable:true,value:e})}:function(A,e){A["default"]=e});var i=this&&this.__importStar||function(A){if(A&&A.__esModule)return A;var e={};if(A!=null)for(var t in A)if(t!=="default"&&Object.prototype.hasOwnProperty.call(A,t))r(e,A,t);n(e,A);return e};Object.defineProperty(e,"__esModule",{value:true});e.getDownloadSpecification=void 0;const s=i(t(1017));function getDownloadSpecification(A,e,t,r){const n=new Set;const i={rootDownloadLocation:r?s.join(t,A):t,directoryStructure:[],emptyFilesToCreate:[],filesToDownload:[]};for(const o of e){if(o.path.startsWith(`${A}/`)||o.path.startsWith(`${A}\\`)){const e=s.normalize(o.path);const a=s.join(t,r?e:e.replace(A,""));if(o.itemType==="file"){n.add(s.dirname(a));if(o.fileLength===0){i.emptyFilesToCreate.push(a)}else{i.filesToDownload.push({sourceLocation:o.contentLocation,targetPath:a})}}}}i.directoryStructure=Array.from(n);return i}e.getDownloadSpecification=getDownloadSpecification},6760:(A,e,t)=>{"use strict";Object.defineProperty(e,"__esModule",{value:true});e.HttpManager=void 0;const r=t(4172);class HttpManager{constructor(A,e){if(A<1){throw new Error("There must be at least one client")}this.userAgent=e;this.clients=new Array(A).fill((0,r.createHttpClient)(e))}getClient(A){return this.clients[A]}disposeAndReplaceClient(A){this.clients[A].dispose();this.clients[A]=(0,r.createHttpClient)(this.userAgent)}disposeAndReplaceAllClients(){for(const[A]of this.clients.entries()){this.disposeAndReplaceClient(A)}}}e.HttpManager=HttpManager},9574:(A,e,t)=>{"use strict";Object.defineProperty(e,"__esModule",{value:true});e.checkArtifactFilePath=e.checkArtifactName=void 0;const r=t(9050);const n=new Map([['"',' Double quote "'],[":"," Colon :"],["<"," Less than <"],[">"," Greater than >"],["|"," Vertical bar |"],["*"," Asterisk *"],["?"," Question mark ?"],["\r"," Carriage return \\r"],["\n"," Line feed \\n"]]);const i=new Map([...n,["\\"," Backslash \\"],["/"," Forward slash /"]]);function checkArtifactName(A){if(!A){throw new Error(`Artifact name: ${A}, is incorrectly provided`)}for(const[e,t]of i){if(A.includes(e)){throw new Error(`Artifact name is not valid: ${A}. Contains the following character: ${t}\n \nInvalid characters include: ${Array.from(i.values()).toString()}\n \nThese characters are not allowed in the artifact name due to limitations with certain file systems such as NTFS. To maintain file system agnostic behavior, these characters are intentionally not allowed to prevent potential problems with downloads on different file systems.`)}}(0,r.info)(`Artifact name is valid!`)}e.checkArtifactName=checkArtifactName;function checkArtifactFilePath(A){if(!A){throw new Error(`Artifact path: ${A}, is incorrectly provided`)}for(const[e,t]of n){if(A.includes(e)){throw new Error(`Artifact path is not valid: ${A}. Contains the following character: ${t}\n \nInvalid characters include: ${Array.from(n.values()).toString()}\n \nThe following characters are not allowed in files that are uploaded due to limitations with certain file systems such as NTFS. To maintain file system agnostic behavior, these characters are intentionally not allowed to prevent potential problems with downloads on different file systems.\n `)}}}e.checkArtifactFilePath=checkArtifactFilePath},2076:function(A,e,t){"use strict";var r=this&&this.__createBinding||(Object.create?function(A,e,t,r){if(r===undefined)r=t;var n=Object.getOwnPropertyDescriptor(e,t);if(!n||("get"in n?!e.__esModule:n.writable||n.configurable)){n={enumerable:true,get:function(){return e[t]}}}Object.defineProperty(A,r,n)}:function(A,e,t,r){if(r===undefined)r=t;A[r]=e[t]});var n=this&&this.__setModuleDefault||(Object.create?function(A,e){Object.defineProperty(A,"default",{enumerable:true,value:e})}:function(A,e){A["default"]=e});var i=this&&this.__importStar||function(A){if(A&&A.__esModule)return A;var e={};if(A!=null)for(var t in A)if(t!=="default"&&Object.prototype.hasOwnProperty.call(A,t))r(e,A,t);n(e,A);return e};var s=this&&this.__awaiter||function(A,e,t,r){function adopt(A){return A instanceof t?A:new t((function(e){e(A)}))}return new(t||(t=Promise))((function(t,n){function fulfilled(A){try{step(r.next(A))}catch(A){n(A)}}function rejected(A){try{step(r["throw"](A))}catch(A){n(A)}}function step(A){A.done?t(A.value):adopt(A.value).then(fulfilled,rejected)}step((r=r.apply(A,e||[])).next())}))};Object.defineProperty(e,"__esModule",{value:true});e.retryHttpClientRequest=e.retry=void 0;const o=t(4172);const a=i(t(9050));const c=t(2996);function retry(A,e,t,r){return s(this,void 0,void 0,(function*(){let n=undefined;let i=undefined;let s=false;let c="";let g=undefined;let E=1;while(E<=r){try{n=yield e();i=n.message.statusCode;if((0,o.isSuccessStatusCode)(i)){return n}if(i){g=t.get(i)}s=(0,o.isRetryableStatusCode)(i);c=`Artifact service responded with ${i}`}catch(A){s=true;c=A.message}if(!s){a.info(`${A} - Error is not retryable`);if(n){(0,o.displayHttpDiagnostics)(n)}break}a.info(`${A} - Attempt ${E} of ${r} failed with error: ${c}`);yield(0,o.sleep)((0,o.getExponentialRetryTimeInMilliseconds)(E));E++}if(n){(0,o.displayHttpDiagnostics)(n)}if(g){throw Error(`${A} failed: ${g}`)}throw Error(`${A} failed: ${c}`)}))}e.retry=retry;function retryHttpClientRequest(A,e,t=new Map,r=(0,c.getRetryLimit)()){return s(this,void 0,void 0,(function*(){return yield retry(A,e,t,r)}))}e.retryHttpClientRequest=retryHttpClientRequest},1284:(A,e,t)=>{"use strict";Object.defineProperty(e,"__esModule",{value:true});e.StatusReporter=void 0;const r=t(9050);class StatusReporter{constructor(A){this.totalNumberOfFilesToProcess=0;this.processedCount=0;this.largeFiles=new Map;this.totalFileStatus=undefined;this.displayFrequencyInMilliseconds=A}setTotalNumberOfFilesToProcess(A){this.totalNumberOfFilesToProcess=A;this.processedCount=0}start(){this.totalFileStatus=setInterval((()=>{const A=this.formatPercentage(this.processedCount,this.totalNumberOfFilesToProcess);(0,r.info)(`Total file count: ${this.totalNumberOfFilesToProcess} ---- Processed file #${this.processedCount} (${A.slice(0,A.indexOf(".")+2)}%)`)}),this.displayFrequencyInMilliseconds)}updateLargeFileStatus(A,e,t,n){const i=this.formatPercentage(t,n);(0,r.info)(`Uploaded ${A} (${i.slice(0,i.indexOf(".")+2)}%) bytes ${e}:${t}`)}stop(){if(this.totalFileStatus){clearInterval(this.totalFileStatus)}}incrementProcessedCount(){this.processedCount++}formatPercentage(A,e){return(A/e*100).toFixed(4).toString()}}e.StatusReporter=StatusReporter},888:function(A,e,t){"use strict";var r=this&&this.__createBinding||(Object.create?function(A,e,t,r){if(r===undefined)r=t;var n=Object.getOwnPropertyDescriptor(e,t);if(!n||("get"in n?!e.__esModule:n.writable||n.configurable)){n={enumerable:true,get:function(){return e[t]}}}Object.defineProperty(A,r,n)}:function(A,e,t,r){if(r===undefined)r=t;A[r]=e[t]});var n=this&&this.__setModuleDefault||(Object.create?function(A,e){Object.defineProperty(A,"default",{enumerable:true,value:e})}:function(A,e){A["default"]=e});var i=this&&this.__importStar||function(A){if(A&&A.__esModule)return A;var e={};if(A!=null)for(var t in A)if(t!=="default"&&Object.prototype.hasOwnProperty.call(A,t))r(e,A,t);n(e,A);return e};var s=this&&this.__awaiter||function(A,e,t,r){function adopt(A){return A instanceof t?A:new t((function(e){e(A)}))}return new(t||(t=Promise))((function(t,n){function fulfilled(A){try{step(r.next(A))}catch(A){n(A)}}function rejected(A){try{step(r["throw"](A))}catch(A){n(A)}}function step(A){A.done?t(A.value):adopt(A.value).then(fulfilled,rejected)}step((r=r.apply(A,e||[])).next())}))};var o=this&&this.__asyncValues||function(A){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e=A[Symbol.asyncIterator],t;return e?e.call(A):(A=typeof __values==="function"?__values(A):A[Symbol.iterator](),t={},verb("next"),verb("throw"),verb("return"),t[Symbol.asyncIterator]=function(){return this},t);function verb(e){t[e]=A[e]&&function(t){return new Promise((function(r,n){t=A[e](t),settle(r,n,t.done,t.value)}))}}function settle(A,e,t,r){Promise.resolve(r).then((function(e){A({value:e,done:t})}),e)}};Object.defineProperty(e,"__esModule",{value:true});e.createGZipFileInBuffer=e.createGZipFileOnDisk=void 0;const a=i(t(7147));const c=i(t(9796));const g=t(3837);const E=(0,g.promisify)(a.stat);const l=[".gz",".gzip",".tgz",".taz",".Z",".taZ",".bz2",".tbz",".tbz2",".tz2",".lz",".lzma",".tlz",".lzo",".xz",".txz",".zst",".zstd",".tzst",".zip",".7z"];function createGZipFileOnDisk(A,e){return s(this,void 0,void 0,(function*(){for(const e of l){if(A.endsWith(e)){return Number.MAX_SAFE_INTEGER}}return new Promise(((t,r)=>{const n=a.createReadStream(A);const i=c.createGzip();const o=a.createWriteStream(e);n.pipe(i).pipe(o);o.on("finish",(()=>s(this,void 0,void 0,(function*(){const A=(yield E(e)).size;t(A)}))));o.on("error",(A=>{console.log(A);r(A)}))}))}))}e.createGZipFileOnDisk=createGZipFileOnDisk;function createGZipFileInBuffer(A){return s(this,void 0,void 0,(function*(){return new Promise((e=>s(this,void 0,void 0,(function*(){var t,r,n,i;const s=a.createReadStream(A);const g=c.createGzip();s.pipe(g);const E=[];try{for(var l=true,Q=o(g),B;B=yield Q.next(),t=B.done,!t;){i=B.value;l=false;try{const A=i;E.push(A)}finally{l=true}}}catch(A){r={error:A}}finally{try{if(!l&&!t&&(n=Q.return))yield n.call(Q)}finally{if(r)throw r.error}}e(Buffer.concat(E))}))))}))}e.createGZipFileInBuffer=createGZipFileInBuffer},2523:function(A,e,t){"use strict";var r=this&&this.__createBinding||(Object.create?function(A,e,t,r){if(r===undefined)r=t;var n=Object.getOwnPropertyDescriptor(e,t);if(!n||("get"in n?!e.__esModule:n.writable||n.configurable)){n={enumerable:true,get:function(){return e[t]}}}Object.defineProperty(A,r,n)}:function(A,e,t,r){if(r===undefined)r=t;A[r]=e[t]});var n=this&&this.__setModuleDefault||(Object.create?function(A,e){Object.defineProperty(A,"default",{enumerable:true,value:e})}:function(A,e){A["default"]=e});var i=this&&this.__importStar||function(A){if(A&&A.__esModule)return A;var e={};if(A!=null)for(var t in A)if(t!=="default"&&Object.prototype.hasOwnProperty.call(A,t))r(e,A,t);n(e,A);return e};var s=this&&this.__awaiter||function(A,e,t,r){function adopt(A){return A instanceof t?A:new t((function(e){e(A)}))}return new(t||(t=Promise))((function(t,n){function fulfilled(A){try{step(r.next(A))}catch(A){n(A)}}function rejected(A){try{step(r["throw"](A))}catch(A){n(A)}}function step(A){A.done?t(A.value):adopt(A.value).then(fulfilled,rejected)}step((r=r.apply(A,e||[])).next())}))};Object.defineProperty(e,"__esModule",{value:true});e.UploadHttpClient=void 0;const o=i(t(7147));const a=i(t(9050));const c=i(t(8806));const g=i(t(2781));const E=t(4172);const l=t(2996);const Q=t(3837);const B=t(7310);const h=t(4074);const C=t(1284);const u=t(6182);const I=t(6760);const d=t(888);const p=t(2076);const y=(0,Q.promisify)(o.stat);class UploadHttpClient{constructor(){this.uploadHttpManager=new I.HttpManager((0,l.getUploadFileConcurrency)(),"@actions/artifact-upload");this.statusReporter=new C.StatusReporter(1e4)}createArtifactInFileContainer(A,e){return s(this,void 0,void 0,(function*(){const t={Type:"actions_storage",Name:A};if(e&&e.retentionDays){const A=(0,l.getRetentionDays)();t.RetentionDays=(0,E.getProperRetention)(e.retentionDays,A)}const r=JSON.stringify(t,null,2);const n=(0,E.getArtifactUrl)();const i=this.uploadHttpManager.getClient(0);const o=(0,E.getUploadHeaders)("application/json",false);const a=new Map([[u.HttpCodes.Forbidden,(0,l.isGhes)()?"Please reference [Enabling GitHub Actions for GitHub Enterprise Server](https://docs.github.com/en/enterprise-server@3.8/admin/github-actions/enabling-github-actions-for-github-enterprise-server) to ensure Actions storage is configured correctly.":"Artifact storage quota has been hit. Unable to upload any new artifacts"],[u.HttpCodes.BadRequest,`The artifact name ${A} is not valid. Request URL ${n}`]]);const c=yield(0,p.retryHttpClientRequest)("Create Artifact Container",(()=>s(this,void 0,void 0,(function*(){return i.post(n,r,o)}))),a);const g=yield c.readBody();return JSON.parse(g)}))}uploadArtifactToFileContainer(A,e,t){return s(this,void 0,void 0,(function*(){const r=(0,l.getUploadFileConcurrency)();const n=(0,l.getUploadChunkSize)();a.debug(`File Concurrency: ${r}, and Chunk Size: ${n}`);const i=[];let o=true;if(t){if(t.continueOnError===false){o=false}}for(const t of e){const e=new B.URL(A);e.searchParams.append("itemPath",t.uploadFilePath);i.push({file:t.absoluteFilePath,resourceUrl:e.toString(),maxChunkSize:n,continueOnError:o})}const c=[...new Array(r).keys()];const g=[];let E=0;let Q=0;let C=0;let u=0;let I=false;this.statusReporter.setTotalNumberOfFilesToProcess(e.length);this.statusReporter.start();yield Promise.all(c.map((A=>s(this,void 0,void 0,(function*(){while(Eo.createReadStream(e.file);Q=false;l=r}else{a.debug(`A gzip file created for ${e.file} helped with reducing the size of the original file. The file will be uploaded using gzip.`);n=()=>{const A=new g.PassThrough;A.end(t);return A};l=t.byteLength}const i=yield this.uploadChunk(A,e.resourceUrl,n,0,l-1,l,Q,r);if(!i){s=false;E+=l;a.warning(`Aborting upload for ${e.file} due to failure`)}return{isSuccess:s,successfulUploadSize:l-E,totalSize:r}}else{const t=yield c.file();a.debug(`${e.file} is greater than 64k in size. Creating a gzip file on-disk ${t.path} to potentially reduce the upload size`);l=yield(0,d.createGZipFileOnDisk)(e.file,t.path);let g=t.path;if(!n&&ro.createReadStream(g,{start:n,end:c,autoClose:false})),n,c,l,Q,r);if(!h){s=false;E+=t;a.warning(`Aborting upload for ${e.file} due to failure`);B=true}else{if(l>8388608){this.statusReporter.updateLargeFileStatus(e.file,n,c,l)}}}a.debug(`deleting temporary gzip file ${t.path}`);yield t.cleanup();return{isSuccess:s,successfulUploadSize:l-E,totalSize:r}}}))}uploadChunk(A,e,t,r,n,i,o,c){return s(this,void 0,void 0,(function*(){const g=yield(0,E.digestForStream)(t());const Q=(0,E.getUploadHeaders)("application/octet-stream",true,o,c,n-r+1,(0,E.getContentRange)(r,n,i),g);const uploadChunkRequest=()=>s(this,void 0,void 0,(function*(){const r=this.uploadHttpManager.getClient(A);return yield r.sendStream("PUT",e,t(),Q)}));let B=0;const h=(0,l.getRetryLimit)();const incrementAndCheckRetryLimit=A=>{B++;if(B>h){if(A){(0,E.displayHttpDiagnostics)(A)}a.info(`Retry limit has been reached for chunk at offset ${r} to ${e}`);return true}return false};const backOff=e=>s(this,void 0,void 0,(function*(){this.uploadHttpManager.disposeAndReplaceClient(A);if(e){a.info(`Backoff due to too many requests, retry #${B}. Waiting for ${e} milliseconds before continuing the upload`);yield(0,E.sleep)(e)}else{const A=(0,E.getExponentialRetryTimeInMilliseconds)(B);a.info(`Exponential backoff for retry #${B}. Waiting for ${A} milliseconds before continuing the upload at offset ${r}`);yield(0,E.sleep)(A)}a.info(`Finished backoff for retry #${B}, continuing with upload`);return}));while(B<=h){let t;try{t=yield uploadChunkRequest()}catch(e){a.info(`An error has been caught http-client index ${A}, retrying the upload`);console.log(e);if(incrementAndCheckRetryLimit()){return false}yield backOff();continue}yield t.readBody();if((0,E.isSuccessStatusCode)(t.message.statusCode)){return true}else if((0,E.isRetryableStatusCode)(t.message.statusCode)){a.info(`A ${t.message.statusCode} status code has been received, will attempt to retry the upload`);if(incrementAndCheckRetryLimit(t)){return false}(0,E.isThrottledStatusCode)(t.message.statusCode)?yield backOff((0,E.tryGetRetryAfterValueTimeInMilliseconds)(t.message.headers)):yield backOff()}else{a.error(`Unexpected response. Unable to upload chunk to ${e}`);(0,E.displayHttpDiagnostics)(t);return false}}return false}))}patchArtifactSize(A,e){return s(this,void 0,void 0,(function*(){const t=new B.URL((0,E.getArtifactUrl)());t.searchParams.append("artifactName",e);const r={Size:A};const n=JSON.stringify(r,null,2);a.debug(`URL is ${t.toString()}`);const i=this.uploadHttpManager.getClient(0);const o=(0,E.getUploadHeaders)("application/json",false);const c=new Map([[u.HttpCodes.NotFound,`An Artifact with the name ${e} was not found`]]);const g=yield(0,p.retryHttpClientRequest)("Finalize artifact upload",(()=>s(this,void 0,void 0,(function*(){return i.patch(t.toString(),n,o)}))),c);yield g.readBody();a.debug(`Artifact ${e} has been successfully uploaded, total size in bytes: ${A}`)}))}}e.UploadHttpClient=UploadHttpClient},1661:function(A,e,t){"use strict";var r=this&&this.__createBinding||(Object.create?function(A,e,t,r){if(r===undefined)r=t;var n=Object.getOwnPropertyDescriptor(e,t);if(!n||("get"in n?!e.__esModule:n.writable||n.configurable)){n={enumerable:true,get:function(){return e[t]}}}Object.defineProperty(A,r,n)}:function(A,e,t,r){if(r===undefined)r=t;A[r]=e[t]});var n=this&&this.__setModuleDefault||(Object.create?function(A,e){Object.defineProperty(A,"default",{enumerable:true,value:e})}:function(A,e){A["default"]=e});var i=this&&this.__importStar||function(A){if(A&&A.__esModule)return A;var e={};if(A!=null)for(var t in A)if(t!=="default"&&Object.prototype.hasOwnProperty.call(A,t))r(e,A,t);n(e,A);return e};Object.defineProperty(e,"__esModule",{value:true});e.getUploadSpecification=void 0;const s=i(t(7147));const o=t(9050);const a=t(1017);const c=t(9574);function getUploadSpecification(A,e,t){const r=[];if(!s.existsSync(e)){throw new Error(`Provided rootDirectory ${e} does not exist`)}if(!s.statSync(e).isDirectory()){throw new Error(`Provided rootDirectory ${e} is not a valid directory`)}e=(0,a.normalize)(e);e=(0,a.resolve)(e);for(let n of t){if(!s.existsSync(n)){throw new Error(`File ${n} does not exist`)}if(!s.statSync(n).isDirectory()){n=(0,a.normalize)(n);n=(0,a.resolve)(n);if(!n.startsWith(e)){throw new Error(`The rootDirectory: ${e} is not a parent directory of the file: ${n}`)}const t=n.replace(e,"");(0,c.checkArtifactFilePath)(t);r.push({absoluteFilePath:n,uploadFilePath:(0,a.join)(A,t)})}else{(0,o.debug)(`Removing ${n} from rawSearchResults because it is a directory`)}}return r}e.getUploadSpecification=getUploadSpecification},4172:function(A,e,t){"use strict";var r=this&&this.__awaiter||function(A,e,t,r){function adopt(A){return A instanceof t?A:new t((function(e){e(A)}))}return new(t||(t=Promise))((function(t,n){function fulfilled(A){try{step(r.next(A))}catch(A){n(A)}}function rejected(A){try{step(r["throw"](A))}catch(A){n(A)}}function step(A){A.done?t(A.value):adopt(A.value).then(fulfilled,rejected)}step((r=r.apply(A,e||[])).next())}))};var n=this&&this.__importDefault||function(A){return A&&A.__esModule?A:{default:A}};Object.defineProperty(e,"__esModule",{value:true});e.digestForStream=e.sleep=e.getProperRetention=e.rmFile=e.getFileSize=e.createEmptyFilesForArtifact=e.createDirectoriesForArtifact=e.displayHttpDiagnostics=e.getArtifactUrl=e.createHttpClient=e.getUploadHeaders=e.getDownloadHeaders=e.getContentRange=e.tryGetRetryAfterValueTimeInMilliseconds=e.isThrottledStatusCode=e.isRetryableStatusCode=e.isForbiddenStatusCode=e.isSuccessStatusCode=e.getApiVersion=e.parseEnvNumber=e.getExponentialRetryTimeInMilliseconds=void 0;const i=n(t(6113));const s=t(7147);const o=t(9050);const a=t(6182);const c=t(5840);const g=t(2996);const E=n(t(5702));function getExponentialRetryTimeInMilliseconds(A){if(A<0){throw new Error("RetryCount should not be negative")}else if(A===0){return(0,g.getInitialRetryIntervalInMilliseconds)()}const e=(0,g.getInitialRetryIntervalInMilliseconds)()*(0,g.getRetryMultiplier)()*A;const t=e*(0,g.getRetryMultiplier)();return Math.trunc(Math.random()*(t-e)+e)}e.getExponentialRetryTimeInMilliseconds=getExponentialRetryTimeInMilliseconds;function parseEnvNumber(A){const e=Number(process.env[A]);if(Number.isNaN(e)||e<0){return undefined}return e}e.parseEnvNumber=parseEnvNumber;function getApiVersion(){return"6.0-preview"}e.getApiVersion=getApiVersion;function isSuccessStatusCode(A){if(!A){return false}return A>=200&&A<300}e.isSuccessStatusCode=isSuccessStatusCode;function isForbiddenStatusCode(A){if(!A){return false}return A===a.HttpCodes.Forbidden}e.isForbiddenStatusCode=isForbiddenStatusCode;function isRetryableStatusCode(A){if(!A){return false}const e=[a.HttpCodes.BadGateway,a.HttpCodes.GatewayTimeout,a.HttpCodes.InternalServerError,a.HttpCodes.ServiceUnavailable,a.HttpCodes.TooManyRequests,413];return e.includes(A)}e.isRetryableStatusCode=isRetryableStatusCode;function isThrottledStatusCode(A){if(!A){return false}return A===a.HttpCodes.TooManyRequests}e.isThrottledStatusCode=isThrottledStatusCode;function tryGetRetryAfterValueTimeInMilliseconds(A){if(A["retry-after"]){const e=Number(A["retry-after"]);if(!isNaN(e)){(0,o.info)(`Retry-After header is present with a value of ${e}`);return e*1e3}(0,o.info)(`Returned retry-after header value: ${e} is non-numeric and cannot be used`);return undefined}(0,o.info)(`No retry-after header was found. Dumping all headers for diagnostic purposes`);console.log(A);return undefined}e.tryGetRetryAfterValueTimeInMilliseconds=tryGetRetryAfterValueTimeInMilliseconds;function getContentRange(A,e,t){return`bytes ${A}-${e}/${t}`}e.getContentRange=getContentRange;function getDownloadHeaders(A,e,t){const r={};if(A){r["Content-Type"]=A}if(e){r["Connection"]="Keep-Alive";r["Keep-Alive"]="10"}if(t){r["Accept-Encoding"]="gzip";r["Accept"]=`application/octet-stream;api-version=${getApiVersion()}`}else{r["Accept"]=`application/json;api-version=${getApiVersion()}`}return r}e.getDownloadHeaders=getDownloadHeaders;function getUploadHeaders(A,e,t,r,n,i,s){const o={};o["Accept"]=`application/json;api-version=${getApiVersion()}`;if(A){o["Content-Type"]=A}if(e){o["Connection"]="Keep-Alive";o["Keep-Alive"]="10"}if(t){o["Content-Encoding"]="gzip";o["x-tfs-filelength"]=r}if(n){o["Content-Length"]=n}if(i){o["Content-Range"]=i}if(s){o["x-actions-results-crc64"]=s.crc64;o["x-actions-results-md5"]=s.md5}return o}e.getUploadHeaders=getUploadHeaders;function createHttpClient(A){return new a.HttpClient(A,[new c.BearerCredentialHandler((0,g.getRuntimeToken)())])}e.createHttpClient=createHttpClient;function getArtifactUrl(){const A=`${(0,g.getRuntimeUrl)()}_apis/pipelines/workflows/${(0,g.getWorkFlowRunId)()}/artifacts?api-version=${getApiVersion()}`;(0,o.debug)(`Artifact Url: ${A}`);return A}e.getArtifactUrl=getArtifactUrl;function displayHttpDiagnostics(A){(0,o.info)(`##### Begin Diagnostic HTTP information #####\nStatus Code: ${A.message.statusCode}\nStatus Message: ${A.message.statusMessage}\nHeader Information: ${JSON.stringify(A.message.headers,undefined,2)}\n###### End Diagnostic HTTP information ######`)}e.displayHttpDiagnostics=displayHttpDiagnostics;function createDirectoriesForArtifact(A){return r(this,void 0,void 0,(function*(){for(const e of A){yield s.promises.mkdir(e,{recursive:true})}}))}e.createDirectoriesForArtifact=createDirectoriesForArtifact;function createEmptyFilesForArtifact(A){return r(this,void 0,void 0,(function*(){for(const e of A){yield(yield s.promises.open(e,"w")).close()}}))}e.createEmptyFilesForArtifact=createEmptyFilesForArtifact;function getFileSize(A){return r(this,void 0,void 0,(function*(){const e=yield s.promises.stat(A);(0,o.debug)(`${A} size:(${e.size}) blksize:(${e.blksize}) blocks:(${e.blocks})`);return e.size}))}e.getFileSize=getFileSize;function rmFile(A){return r(this,void 0,void 0,(function*(){yield s.promises.unlink(A)}))}e.rmFile=rmFile;function getProperRetention(A,e){if(A<0){throw new Error("Invalid retention, minimum value is 1.")}let t=A;if(e){const A=parseInt(e);if(!isNaN(A)&&AsetTimeout(e,A)))}))}e.sleep=sleep;function digestForStream(A){return r(this,void 0,void 0,(function*(){return new Promise(((e,t)=>{const r=new E.default;const n=i.default.createHash("md5");A.on("data",(A=>{r.update(A);n.update(A)})).on("end",(()=>e({crc64:r.digest("base64"),md5:n.digest("base64")}))).on("error",t)}))}))}e.digestForStream=digestForStream},2256:function(A,e,t){"use strict";var r=this&&this.__createBinding||(Object.create?function(A,e,t,r){if(r===undefined)r=t;Object.defineProperty(A,r,{enumerable:true,get:function(){return e[t]}})}:function(A,e,t,r){if(r===undefined)r=t;A[r]=e[t]});var n=this&&this.__setModuleDefault||(Object.create?function(A,e){Object.defineProperty(A,"default",{enumerable:true,value:e})}:function(A,e){A["default"]=e});var i=this&&this.__importStar||function(A){if(A&&A.__esModule)return A;var e={};if(A!=null)for(var t in A)if(t!=="default"&&Object.hasOwnProperty.call(A,t))r(e,A,t);n(e,A);return e};Object.defineProperty(e,"__esModule",{value:true});e.issue=e.issueCommand=void 0;const s=i(t(2037));const o=t(1054);function issueCommand(A,e,t){const r=new Command(A,e,t);process.stdout.write(r.toString()+s.EOL)}e.issueCommand=issueCommand;function issue(A,e=""){issueCommand(A,{},e)}e.issue=issue;const a="::";class Command{constructor(A,e,t){if(!A){A="missing.command"}this.command=A;this.properties=e;this.message=t}toString(){let A=a+this.command;if(this.properties&&Object.keys(this.properties).length>0){A+=" ";let e=true;for(const t in this.properties){if(this.properties.hasOwnProperty(t)){const r=this.properties[t];if(r){if(e){e=false}else{A+=","}A+=`${t}=${escapeProperty(r)}`}}}}A+=`${a}${escapeData(this.message)}`;return A}}function escapeData(A){return o.toCommandValue(A).replace(/%/g,"%25").replace(/\r/g,"%0D").replace(/\n/g,"%0A")}function escapeProperty(A){return o.toCommandValue(A).replace(/%/g,"%25").replace(/\r/g,"%0D").replace(/\n/g,"%0A").replace(/:/g,"%3A").replace(/,/g,"%2C")}},9050:function(A,e,t){"use strict";var r=this&&this.__createBinding||(Object.create?function(A,e,t,r){if(r===undefined)r=t;Object.defineProperty(A,r,{enumerable:true,get:function(){return e[t]}})}:function(A,e,t,r){if(r===undefined)r=t;A[r]=e[t]});var n=this&&this.__setModuleDefault||(Object.create?function(A,e){Object.defineProperty(A,"default",{enumerable:true,value:e})}:function(A,e){A["default"]=e});var i=this&&this.__importStar||function(A){if(A&&A.__esModule)return A;var e={};if(A!=null)for(var t in A)if(t!=="default"&&Object.hasOwnProperty.call(A,t))r(e,A,t);n(e,A);return e};var s=this&&this.__awaiter||function(A,e,t,r){function adopt(A){return A instanceof t?A:new t((function(e){e(A)}))}return new(t||(t=Promise))((function(t,n){function fulfilled(A){try{step(r.next(A))}catch(A){n(A)}}function rejected(A){try{step(r["throw"](A))}catch(A){n(A)}}function step(A){A.done?t(A.value):adopt(A.value).then(fulfilled,rejected)}step((r=r.apply(A,e||[])).next())}))};Object.defineProperty(e,"__esModule",{value:true});e.getIDToken=e.getState=e.saveState=e.group=e.endGroup=e.startGroup=e.info=e.notice=e.warning=e.error=e.debug=e.isDebug=e.setFailed=e.setCommandEcho=e.setOutput=e.getBooleanInput=e.getMultilineInput=e.getInput=e.addPath=e.setSecret=e.exportVariable=e.ExitCode=void 0;const o=t(2256);const a=t(6463);const c=t(1054);const g=i(t(2037));const E=i(t(1017));const l=t(7779);var Q;(function(A){A[A["Success"]=0]="Success";A[A["Failure"]=1]="Failure"})(Q=e.ExitCode||(e.ExitCode={}));function exportVariable(A,e){const t=c.toCommandValue(e);process.env[A]=t;const r=process.env["GITHUB_ENV"]||"";if(r){return a.issueFileCommand("ENV",a.prepareKeyValueMessage(A,e))}o.issueCommand("set-env",{name:A},t)}e.exportVariable=exportVariable;function setSecret(A){o.issueCommand("add-mask",{},A)}e.setSecret=setSecret;function addPath(A){const e=process.env["GITHUB_PATH"]||"";if(e){a.issueFileCommand("PATH",A)}else{o.issueCommand("add-path",{},A)}process.env["PATH"]=`${A}${E.delimiter}${process.env["PATH"]}`}e.addPath=addPath;function getInput(A,e){const t=process.env[`INPUT_${A.replace(/ /g,"_").toUpperCase()}`]||"";if(e&&e.required&&!t){throw new Error(`Input required and not supplied: ${A}`)}if(e&&e.trimWhitespace===false){return t}return t.trim()}e.getInput=getInput;function getMultilineInput(A,e){const t=getInput(A,e).split("\n").filter((A=>A!==""));if(e&&e.trimWhitespace===false){return t}return t.map((A=>A.trim()))}e.getMultilineInput=getMultilineInput;function getBooleanInput(A,e){const t=["true","True","TRUE"];const r=["false","False","FALSE"];const n=getInput(A,e);if(t.includes(n))return true;if(r.includes(n))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\``)}e.getBooleanInput=getBooleanInput;function setOutput(A,e){const t=process.env["GITHUB_OUTPUT"]||"";if(t){return a.issueFileCommand("OUTPUT",a.prepareKeyValueMessage(A,e))}process.stdout.write(g.EOL);o.issueCommand("set-output",{name:A},c.toCommandValue(e))}e.setOutput=setOutput;function setCommandEcho(A){o.issue("echo",A?"on":"off")}e.setCommandEcho=setCommandEcho;function setFailed(A){process.exitCode=Q.Failure;error(A)}e.setFailed=setFailed;function isDebug(){return process.env["RUNNER_DEBUG"]==="1"}e.isDebug=isDebug;function debug(A){o.issueCommand("debug",{},A)}e.debug=debug;function error(A,e={}){o.issueCommand("error",c.toCommandProperties(e),A instanceof Error?A.toString():A)}e.error=error;function warning(A,e={}){o.issueCommand("warning",c.toCommandProperties(e),A instanceof Error?A.toString():A)}e.warning=warning;function notice(A,e={}){o.issueCommand("notice",c.toCommandProperties(e),A instanceof Error?A.toString():A)}e.notice=notice;function info(A){process.stdout.write(A+g.EOL)}e.info=info;function startGroup(A){o.issue("group",A)}e.startGroup=startGroup;function endGroup(){o.issue("endgroup")}e.endGroup=endGroup;function group(A,e){return s(this,void 0,void 0,(function*(){startGroup(A);let t;try{t=yield e()}finally{endGroup()}return t}))}e.group=group;function saveState(A,e){const t=process.env["GITHUB_STATE"]||"";if(t){return a.issueFileCommand("STATE",a.prepareKeyValueMessage(A,e))}o.issueCommand("save-state",{name:A},c.toCommandValue(e))}e.saveState=saveState;function getState(A){return process.env[`STATE_${A}`]||""}e.getState=getState;function getIDToken(A){return s(this,void 0,void 0,(function*(){return yield l.OidcClient.getIDToken(A)}))}e.getIDToken=getIDToken;var B=t(5977);Object.defineProperty(e,"summary",{enumerable:true,get:function(){return B.summary}});var h=t(5977);Object.defineProperty(e,"markdownSummary",{enumerable:true,get:function(){return h.markdownSummary}});var C=t(7265);Object.defineProperty(e,"toPosixPath",{enumerable:true,get:function(){return C.toPosixPath}});Object.defineProperty(e,"toWin32Path",{enumerable:true,get:function(){return C.toWin32Path}});Object.defineProperty(e,"toPlatformPath",{enumerable:true,get:function(){return C.toPlatformPath}})},6463:function(A,e,t){"use strict";var r=this&&this.__createBinding||(Object.create?function(A,e,t,r){if(r===undefined)r=t;Object.defineProperty(A,r,{enumerable:true,get:function(){return e[t]}})}:function(A,e,t,r){if(r===undefined)r=t;A[r]=e[t]});var n=this&&this.__setModuleDefault||(Object.create?function(A,e){Object.defineProperty(A,"default",{enumerable:true,value:e})}:function(A,e){A["default"]=e});var i=this&&this.__importStar||function(A){if(A&&A.__esModule)return A;var e={};if(A!=null)for(var t in A)if(t!=="default"&&Object.hasOwnProperty.call(A,t))r(e,A,t);n(e,A);return e};Object.defineProperty(e,"__esModule",{value:true});e.prepareKeyValueMessage=e.issueFileCommand=void 0;const s=i(t(7147));const o=i(t(2037));const a=t(35);const c=t(1054);function issueFileCommand(A,e){const t=process.env[`GITHUB_${A}`];if(!t){throw new Error(`Unable to find environment variable for file command ${A}`)}if(!s.existsSync(t)){throw new Error(`Missing file at path: ${t}`)}s.appendFileSync(t,`${c.toCommandValue(e)}${o.EOL}`,{encoding:"utf8"})}e.issueFileCommand=issueFileCommand;function prepareKeyValueMessage(A,e){const t=`ghadelimiter_${a.v4()}`;const r=c.toCommandValue(e);if(A.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`${A}<<${t}${o.EOL}${r}${o.EOL}${t}`}e.prepareKeyValueMessage=prepareKeyValueMessage},7779:function(A,e,t){"use strict";var r=this&&this.__awaiter||function(A,e,t,r){function adopt(A){return A instanceof t?A:new t((function(e){e(A)}))}return new(t||(t=Promise))((function(t,n){function fulfilled(A){try{step(r.next(A))}catch(A){n(A)}}function rejected(A){try{step(r["throw"](A))}catch(A){n(A)}}function step(A){A.done?t(A.value):adopt(A.value).then(fulfilled,rejected)}step((r=r.apply(A,e||[])).next())}))};Object.defineProperty(e,"__esModule",{value:true});e.OidcClient=void 0;const n=t(6182);const i=t(5840);const s=t(9050);class OidcClient{static createHttpClient(A=true,e=10){const t={allowRetries:A,maxRetries:e};return new n.HttpClient("actions/oidc-client",[new i.BearerCredentialHandler(OidcClient.getRequestToken())],t)}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 e;return r(this,void 0,void 0,(function*(){const t=OidcClient.createHttpClient();const r=yield t.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 n=(e=r.result)===null||e===void 0?void 0:e.value;if(!n){throw new Error("Response json body do not have ID Token field")}return n}))}static getIDToken(A){return r(this,void 0,void 0,(function*(){try{let e=OidcClient.getIDTokenUrl();if(A){const t=encodeURIComponent(A);e=`${e}&audience=${t}`}s.debug(`ID token url is ${e}`);const t=yield OidcClient.getCall(e);s.setSecret(t);return t}catch(A){throw new Error(`Error message: ${A.message}`)}}))}}e.OidcClient=OidcClient},7265:function(A,e,t){"use strict";var r=this&&this.__createBinding||(Object.create?function(A,e,t,r){if(r===undefined)r=t;Object.defineProperty(A,r,{enumerable:true,get:function(){return e[t]}})}:function(A,e,t,r){if(r===undefined)r=t;A[r]=e[t]});var n=this&&this.__setModuleDefault||(Object.create?function(A,e){Object.defineProperty(A,"default",{enumerable:true,value:e})}:function(A,e){A["default"]=e});var i=this&&this.__importStar||function(A){if(A&&A.__esModule)return A;var e={};if(A!=null)for(var t in A)if(t!=="default"&&Object.hasOwnProperty.call(A,t))r(e,A,t);n(e,A);return e};Object.defineProperty(e,"__esModule",{value:true});e.toPlatformPath=e.toWin32Path=e.toPosixPath=void 0;const s=i(t(1017));function toPosixPath(A){return A.replace(/[\\]/g,"/")}e.toPosixPath=toPosixPath;function toWin32Path(A){return A.replace(/[/]/g,"\\")}e.toWin32Path=toWin32Path;function toPlatformPath(A){return A.replace(/[/\\]/g,s.sep)}e.toPlatformPath=toPlatformPath},5977:function(A,e,t){"use strict";var r=this&&this.__awaiter||function(A,e,t,r){function adopt(A){return A instanceof t?A:new t((function(e){e(A)}))}return new(t||(t=Promise))((function(t,n){function fulfilled(A){try{step(r.next(A))}catch(A){n(A)}}function rejected(A){try{step(r["throw"](A))}catch(A){n(A)}}function step(A){A.done?t(A.value):adopt(A.value).then(fulfilled,rejected)}step((r=r.apply(A,e||[])).next())}))};Object.defineProperty(e,"__esModule",{value:true});e.summary=e.markdownSummary=e.SUMMARY_DOCS_URL=e.SUMMARY_ENV_VAR=void 0;const n=t(2037);const i=t(7147);const{access:s,appendFile:o,writeFile:a}=i.promises;e.SUMMARY_ENV_VAR="GITHUB_STEP_SUMMARY";e.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 A=process.env[e.SUMMARY_ENV_VAR];if(!A){throw new Error(`Unable to find environment variable for $${e.SUMMARY_ENV_VAR}. Check if your runtime environment supports job summaries.`)}try{yield s(A,i.constants.R_OK|i.constants.W_OK)}catch(e){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,e,t={}){const r=Object.entries(t).map((([A,e])=>` ${A}="${e}"`)).join("");if(!e){return`<${A}${r}>`}return`<${A}${r}>${e}`}write(A){return r(this,void 0,void 0,(function*(){const e=!!(A===null||A===void 0?void 0:A.overwrite);const t=yield this.filePath();const r=e?a:o;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(A,e=false){this._buffer+=A;return e?this.addEOL():this}addEOL(){return this.addRaw(n.EOL)}addCodeBlock(A,e){const t=Object.assign({},e&&{lang:e});const r=this.wrap("pre",this.wrap("code",A),t);return this.addRaw(r).addEOL()}addList(A,e=false){const t=e?"ol":"ul";const r=A.map((A=>this.wrap("li",A))).join("");const n=this.wrap(t,r);return this.addRaw(n).addEOL()}addTable(A){const e=A.map((A=>{const e=A.map((A=>{if(typeof A==="string"){return this.wrap("td",A)}const{header:e,data:t,colspan:r,rowspan:n}=A;const i=e?"th":"td";const s=Object.assign(Object.assign({},r&&{colspan:r}),n&&{rowspan:n});return this.wrap(i,t,s)})).join("");return this.wrap("tr",e)})).join("");const t=this.wrap("table",e);return this.addRaw(t).addEOL()}addDetails(A,e){const t=this.wrap("details",this.wrap("summary",A)+e);return this.addRaw(t).addEOL()}addImage(A,e,t){const{width:r,height:n}=t||{};const i=Object.assign(Object.assign({},r&&{width:r}),n&&{height:n});const s=this.wrap("img",null,Object.assign({src:A,alt:e},i));return this.addRaw(s).addEOL()}addHeading(A,e){const t=`h${e}`;const r=["h1","h2","h3","h4","h5","h6"].includes(t)?t:"h1";const n=this.wrap(r,A);return this.addRaw(n).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,e){const t=Object.assign({},e&&{cite:e});const r=this.wrap("blockquote",A,t);return this.addRaw(r).addEOL()}addLink(A,e){const t=this.wrap("a",A,{href:e});return this.addRaw(t).addEOL()}}const c=new Summary;e.markdownSummary=c;e.summary=c},1054:(A,e)=>{"use strict";Object.defineProperty(e,"__esModule",{value:true});e.toCommandProperties=e.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)}e.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}}e.toCommandProperties=toCommandProperties},8487:function(A,e,t){"use strict";var r=this&&this.__awaiter||function(A,e,t,r){function adopt(A){return A instanceof t?A:new t((function(e){e(A)}))}return new(t||(t=Promise))((function(t,n){function fulfilled(A){try{step(r.next(A))}catch(A){n(A)}}function rejected(A){try{step(r["throw"](A))}catch(A){n(A)}}function step(A){A.done?t(A.value):adopt(A.value).then(fulfilled,rejected)}step((r=r.apply(A,e||[])).next())}))};Object.defineProperty(e,"__esModule",{value:true});e.hashFiles=e.create=void 0;const n=t(7907);const i=t(9147);function create(A,e){return r(this,void 0,void 0,(function*(){return yield n.DefaultGlobber.create(A,e)}))}e.create=create;function hashFiles(A,e="",t,n=false){return r(this,void 0,void 0,(function*(){let r=true;if(t&&typeof t.followSymbolicLinks==="boolean"){r=t.followSymbolicLinks}const s=yield create(A,{followSymbolicLinks:r});return i.hashFiles(s,e,n)}))}e.hashFiles=hashFiles},2845:function(A,e,t){"use strict";var r=this&&this.__createBinding||(Object.create?function(A,e,t,r){if(r===undefined)r=t;Object.defineProperty(A,r,{enumerable:true,get:function(){return e[t]}})}:function(A,e,t,r){if(r===undefined)r=t;A[r]=e[t]});var n=this&&this.__setModuleDefault||(Object.create?function(A,e){Object.defineProperty(A,"default",{enumerable:true,value:e})}:function(A,e){A["default"]=e});var i=this&&this.__importStar||function(A){if(A&&A.__esModule)return A;var e={};if(A!=null)for(var t in A)if(t!=="default"&&Object.hasOwnProperty.call(A,t))r(e,A,t);n(e,A);return e};Object.defineProperty(e,"__esModule",{value:true});e.getOptions=void 0;const s=i(t(9050));function getOptions(A){const e={followSymbolicLinks:true,implicitDescendants:true,matchDirectories:true,omitBrokenSymbolicLinks:true};if(A){if(typeof A.followSymbolicLinks==="boolean"){e.followSymbolicLinks=A.followSymbolicLinks;s.debug(`followSymbolicLinks '${e.followSymbolicLinks}'`)}if(typeof A.implicitDescendants==="boolean"){e.implicitDescendants=A.implicitDescendants;s.debug(`implicitDescendants '${e.implicitDescendants}'`)}if(typeof A.matchDirectories==="boolean"){e.matchDirectories=A.matchDirectories;s.debug(`matchDirectories '${e.matchDirectories}'`)}if(typeof A.omitBrokenSymbolicLinks==="boolean"){e.omitBrokenSymbolicLinks=A.omitBrokenSymbolicLinks;s.debug(`omitBrokenSymbolicLinks '${e.omitBrokenSymbolicLinks}'`)}}return e}e.getOptions=getOptions},7907:function(A,e,t){"use strict";var r=this&&this.__createBinding||(Object.create?function(A,e,t,r){if(r===undefined)r=t;Object.defineProperty(A,r,{enumerable:true,get:function(){return e[t]}})}:function(A,e,t,r){if(r===undefined)r=t;A[r]=e[t]});var n=this&&this.__setModuleDefault||(Object.create?function(A,e){Object.defineProperty(A,"default",{enumerable:true,value:e})}:function(A,e){A["default"]=e});var i=this&&this.__importStar||function(A){if(A&&A.__esModule)return A;var e={};if(A!=null)for(var t in A)if(t!=="default"&&Object.hasOwnProperty.call(A,t))r(e,A,t);n(e,A);return e};var s=this&&this.__awaiter||function(A,e,t,r){function adopt(A){return A instanceof t?A:new t((function(e){e(A)}))}return new(t||(t=Promise))((function(t,n){function fulfilled(A){try{step(r.next(A))}catch(A){n(A)}}function rejected(A){try{step(r["throw"](A))}catch(A){n(A)}}function step(A){A.done?t(A.value):adopt(A.value).then(fulfilled,rejected)}step((r=r.apply(A,e||[])).next())}))};var o=this&&this.__asyncValues||function(A){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e=A[Symbol.asyncIterator],t;return e?e.call(A):(A=typeof __values==="function"?__values(A):A[Symbol.iterator](),t={},verb("next"),verb("throw"),verb("return"),t[Symbol.asyncIterator]=function(){return this},t);function verb(e){t[e]=A[e]&&function(t){return new Promise((function(r,n){t=A[e](t),settle(r,n,t.done,t.value)}))}}function settle(A,e,t,r){Promise.resolve(r).then((function(e){A({value:e,done:t})}),e)}};var a=this&&this.__await||function(A){return this instanceof a?(this.v=A,this):new a(A)};var c=this&&this.__asyncGenerator||function(A,e,t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r=t.apply(A,e||[]),n,i=[];return n={},verb("next"),verb("throw"),verb("return"),n[Symbol.asyncIterator]=function(){return this},n;function verb(A){if(r[A])n[A]=function(e){return new Promise((function(t,r){i.push([A,e,t,r])>1||resume(A,e)}))}}function resume(A,e){try{step(r[A](e))}catch(A){settle(i[0][3],A)}}function step(A){A.value instanceof a?Promise.resolve(A.value.v).then(fulfill,reject):settle(i[0][2],A)}function fulfill(A){resume("next",A)}function reject(A){resume("throw",A)}function settle(A,e){if(A(e),i.shift(),i.length)resume(i[0][0],i[0][1])}};Object.defineProperty(e,"__esModule",{value:true});e.DefaultGlobber=void 0;const g=i(t(9050));const E=i(t(7147));const l=i(t(2845));const Q=i(t(1017));const B=i(t(7024));const h=t(1537);const C=t(8162);const u=t(8714);const I=process.platform==="win32";class DefaultGlobber{constructor(A){this.patterns=[];this.searchPaths=[];this.options=l.getOptions(A)}getSearchPaths(){return this.searchPaths.slice()}glob(){var A,e;return s(this,void 0,void 0,(function*(){const t=[];try{for(var r=o(this.globGenerator()),n;n=yield r.next(),!n.done;){const A=n.value;t.push(A)}}catch(e){A={error:e}}finally{try{if(n&&!n.done&&(e=r.return))yield e.call(r)}finally{if(A)throw A.error}}return t}))}globGenerator(){return c(this,arguments,(function*globGenerator_1(){const A=l.getOptions(this.options);const e=[];for(const t of this.patterns){e.push(t);if(A.implicitDescendants&&(t.trailingSeparator||t.segments[t.segments.length-1]!=="**")){e.push(new C.Pattern(t.negate,true,t.segments.concat("**")))}}const t=[];for(const A of B.getSearchPaths(e)){g.debug(`Search path '${A}'`);try{yield a(E.promises.lstat(A))}catch(A){if(A.code==="ENOENT"){continue}throw A}t.unshift(new u.SearchState(A,1))}const r=[];while(t.length){const n=t.pop();const i=B.match(e,n.path);const s=!!i||B.partialMatch(e,n.path);if(!i&&!s){continue}const o=yield a(DefaultGlobber.stat(n,A,r));if(!o){continue}if(o.isDirectory()){if(i&h.MatchKind.Directory&&A.matchDirectories){yield yield a(n.path)}else if(!s){continue}const e=n.level+1;const r=(yield a(E.promises.readdir(n.path))).map((A=>new u.SearchState(Q.join(n.path,A),e)));t.push(...r.reverse())}else if(i&h.MatchKind.File){yield yield a(n.path)}}}))}static create(A,e){return s(this,void 0,void 0,(function*(){const t=new DefaultGlobber(e);if(I){A=A.replace(/\r\n/g,"\n");A=A.replace(/\r/g,"\n")}const r=A.split("\n").map((A=>A.trim()));for(const A of r){if(!A||A.startsWith("#")){continue}else{t.patterns.push(new C.Pattern(A))}}t.searchPaths.push(...B.getSearchPaths(t.patterns));return t}))}static stat(A,e,t){return s(this,void 0,void 0,(function*(){let r;if(e.followSymbolicLinks){try{r=yield E.promises.stat(A.path)}catch(t){if(t.code==="ENOENT"){if(e.omitBrokenSymbolicLinks){g.debug(`Broken symlink '${A.path}'`);return undefined}throw new Error(`No information found for the path '${A.path}'. This may indicate a broken symbolic link.`)}throw t}}else{r=yield E.promises.lstat(A.path)}if(r.isDirectory()&&e.followSymbolicLinks){const e=yield E.promises.realpath(A.path);while(t.length>=A.level){t.pop()}if(t.some((A=>A===e))){g.debug(`Symlink cycle detected for path '${A.path}' and realpath '${e}'`);return undefined}t.push(e)}return r}))}}e.DefaultGlobber=DefaultGlobber},9147:function(A,e,t){"use strict";var r=this&&this.__createBinding||(Object.create?function(A,e,t,r){if(r===undefined)r=t;Object.defineProperty(A,r,{enumerable:true,get:function(){return e[t]}})}:function(A,e,t,r){if(r===undefined)r=t;A[r]=e[t]});var n=this&&this.__setModuleDefault||(Object.create?function(A,e){Object.defineProperty(A,"default",{enumerable:true,value:e})}:function(A,e){A["default"]=e});var i=this&&this.__importStar||function(A){if(A&&A.__esModule)return A;var e={};if(A!=null)for(var t in A)if(t!=="default"&&Object.hasOwnProperty.call(A,t))r(e,A,t);n(e,A);return e};var s=this&&this.__awaiter||function(A,e,t,r){function adopt(A){return A instanceof t?A:new t((function(e){e(A)}))}return new(t||(t=Promise))((function(t,n){function fulfilled(A){try{step(r.next(A))}catch(A){n(A)}}function rejected(A){try{step(r["throw"](A))}catch(A){n(A)}}function step(A){A.done?t(A.value):adopt(A.value).then(fulfilled,rejected)}step((r=r.apply(A,e||[])).next())}))};var o=this&&this.__asyncValues||function(A){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e=A[Symbol.asyncIterator],t;return e?e.call(A):(A=typeof __values==="function"?__values(A):A[Symbol.iterator](),t={},verb("next"),verb("throw"),verb("return"),t[Symbol.asyncIterator]=function(){return this},t);function verb(e){t[e]=A[e]&&function(t){return new Promise((function(r,n){t=A[e](t),settle(r,n,t.done,t.value)}))}}function settle(A,e,t,r){Promise.resolve(r).then((function(e){A({value:e,done:t})}),e)}};Object.defineProperty(e,"__esModule",{value:true});e.hashFiles=void 0;const a=i(t(6113));const c=i(t(9050));const g=i(t(7147));const E=i(t(2781));const l=i(t(3837));const Q=i(t(1017));function hashFiles(A,e,t=false){var r,n;var i;return s(this,void 0,void 0,(function*(){const s=t?c.info:c.debug;let B=false;const h=e?e:(i=process.env["GITHUB_WORKSPACE"])!==null&&i!==void 0?i:process.cwd();const C=a.createHash("sha256");let u=0;try{for(var I=o(A.globGenerator()),d;d=yield I.next(),!d.done;){const A=d.value;s(A);if(!A.startsWith(`${h}${Q.sep}`)){s(`Ignore '${A}' since it is not under GITHUB_WORKSPACE.`);continue}if(g.statSync(A).isDirectory()){s(`Skip directory '${A}'.`);continue}const e=a.createHash("sha256");const t=l.promisify(E.pipeline);yield t(g.createReadStream(A),e);C.write(e.digest());u++;if(!B){B=true}}}catch(A){r={error:A}}finally{try{if(d&&!d.done&&(n=I.return))yield n.call(I)}finally{if(r)throw r.error}}C.end();if(B){s(`Found ${u} files to hash.`);return C.digest("hex")}else{s(`No matches found for glob`);return""}}))}e.hashFiles=hashFiles},1537:(A,e)=>{"use strict";Object.defineProperty(e,"__esModule",{value:true});e.MatchKind=void 0;var t;(function(A){A[A["None"]=0]="None";A[A["Directory"]=1]="Directory";A[A["File"]=2]="File";A[A["All"]=3]="All"})(t=e.MatchKind||(e.MatchKind={}))},7682:function(A,e,t){"use strict";var r=this&&this.__createBinding||(Object.create?function(A,e,t,r){if(r===undefined)r=t;Object.defineProperty(A,r,{enumerable:true,get:function(){return e[t]}})}:function(A,e,t,r){if(r===undefined)r=t;A[r]=e[t]});var n=this&&this.__setModuleDefault||(Object.create?function(A,e){Object.defineProperty(A,"default",{enumerable:true,value:e})}:function(A,e){A["default"]=e});var i=this&&this.__importStar||function(A){if(A&&A.__esModule)return A;var e={};if(A!=null)for(var t in A)if(t!=="default"&&Object.hasOwnProperty.call(A,t))r(e,A,t);n(e,A);return e};var s=this&&this.__importDefault||function(A){return A&&A.__esModule?A:{default:A}};Object.defineProperty(e,"__esModule",{value:true});e.safeTrimTrailingSeparator=e.normalizeSeparators=e.hasRoot=e.hasAbsoluteRoot=e.ensureAbsoluteRoot=e.dirname=void 0;const o=i(t(1017));const a=s(t(9491));const c=process.platform==="win32";function dirname(A){A=safeTrimTrailingSeparator(A);if(c&&/^\\\\[^\\]+(\\[^\\]+)?$/.test(A)){return A}let e=o.dirname(A);if(c&&/^\\\\[^\\]+\\[^\\]+\\$/.test(e)){e=safeTrimTrailingSeparator(e)}return e}e.dirname=dirname;function ensureAbsoluteRoot(A,e){a.default(A,`ensureAbsoluteRoot parameter 'root' must not be empty`);a.default(e,`ensureAbsoluteRoot parameter 'itemPath' must not be empty`);if(hasAbsoluteRoot(e)){return e}if(c){if(e.match(/^[A-Z]:[^\\/]|^[A-Z]:$/i)){let A=process.cwd();a.default(A.match(/^[A-Z]:\\/i),`Expected current directory to start with an absolute drive root. Actual '${A}'`);if(e[0].toUpperCase()===A[0].toUpperCase()){if(e.length===2){return`${e[0]}:\\${A.substr(3)}`}else{if(!A.endsWith("\\")){A+="\\"}return`${e[0]}:\\${A.substr(3)}${e.substr(2)}`}}else{return`${e[0]}:\\${e.substr(2)}`}}else if(normalizeSeparators(e).match(/^\\$|^\\[^\\]/)){const A=process.cwd();a.default(A.match(/^[A-Z]:\\/i),`Expected current directory to start with an absolute drive root. Actual '${A}'`);return`${A[0]}:\\${e.substr(1)}`}}a.default(hasAbsoluteRoot(A),`ensureAbsoluteRoot parameter 'root' must have an absolute root`);if(A.endsWith("/")||c&&A.endsWith("\\")){}else{A+=o.sep}return A+e}e.ensureAbsoluteRoot=ensureAbsoluteRoot;function hasAbsoluteRoot(A){a.default(A,`hasAbsoluteRoot parameter 'itemPath' must not be empty`);A=normalizeSeparators(A);if(c){return A.startsWith("\\\\")||/^[A-Z]:\\/i.test(A)}return A.startsWith("/")}e.hasAbsoluteRoot=hasAbsoluteRoot;function hasRoot(A){a.default(A,`isRooted parameter 'itemPath' must not be empty`);A=normalizeSeparators(A);if(c){return A.startsWith("\\")||/^[A-Z]:/i.test(A)}return A.startsWith("/")}e.hasRoot=hasRoot;function normalizeSeparators(A){A=A||"";if(c){A=A.replace(/\//g,"\\");const e=/^\\\\+[^\\]/.test(A);return(e?"\\":"")+A.replace(/\\\\+/g,"\\")}return A.replace(/\/\/+/g,"/")}e.normalizeSeparators=normalizeSeparators;function safeTrimTrailingSeparator(A){if(!A){return""}A=normalizeSeparators(A);if(!A.endsWith(o.sep)){return A}if(A===o.sep){return A}if(c&&/^[A-Z]:\\$/i.test(A)){return A}return A.substr(0,A.length-1)}e.safeTrimTrailingSeparator=safeTrimTrailingSeparator},545:function(A,e,t){"use strict";var r=this&&this.__createBinding||(Object.create?function(A,e,t,r){if(r===undefined)r=t;Object.defineProperty(A,r,{enumerable:true,get:function(){return e[t]}})}:function(A,e,t,r){if(r===undefined)r=t;A[r]=e[t]});var n=this&&this.__setModuleDefault||(Object.create?function(A,e){Object.defineProperty(A,"default",{enumerable:true,value:e})}:function(A,e){A["default"]=e});var i=this&&this.__importStar||function(A){if(A&&A.__esModule)return A;var e={};if(A!=null)for(var t in A)if(t!=="default"&&Object.hasOwnProperty.call(A,t))r(e,A,t);n(e,A);return e};var s=this&&this.__importDefault||function(A){return A&&A.__esModule?A:{default:A}};Object.defineProperty(e,"__esModule",{value:true});e.Path=void 0;const o=i(t(1017));const a=i(t(7682));const c=s(t(9491));const g=process.platform==="win32";class Path{constructor(A){this.segments=[];if(typeof A==="string"){c.default(A,`Parameter 'itemPath' must not be empty`);A=a.safeTrimTrailingSeparator(A);if(!a.hasRoot(A)){this.segments=A.split(o.sep)}else{let e=A;let t=a.dirname(e);while(t!==e){const A=o.basename(e);this.segments.unshift(A);e=t;t=a.dirname(e)}this.segments.unshift(e)}}else{c.default(A.length>0,`Parameter 'itemPath' must not be an empty array`);for(let e=0;e!A.negate));const e={};for(const t of A){const A=a?t.searchPath.toUpperCase():t.searchPath;e[A]="candidate"}const t=[];for(const r of A){const A=a?r.searchPath.toUpperCase():r.searchPath;if(e[A]==="included"){continue}let n=false;let i=A;let o=s.dirname(i);while(o!==i){if(e[o]){n=true;break}i=o;o=s.dirname(i)}if(!n){t.push(r.searchPath);e[A]="included"}}return t}e.getSearchPaths=getSearchPaths;function match(A,e){let t=o.MatchKind.None;for(const r of A){if(r.negate){t&=~r.match(e)}else{t|=r.match(e)}}return t}e.match=match;function partialMatch(A,e){return A.some((A=>!A.negate&&A.partialMatch(e)))}e.partialMatch=partialMatch},8162:function(A,e,t){"use strict";var r=this&&this.__createBinding||(Object.create?function(A,e,t,r){if(r===undefined)r=t;Object.defineProperty(A,r,{enumerable:true,get:function(){return e[t]}})}:function(A,e,t,r){if(r===undefined)r=t;A[r]=e[t]});var n=this&&this.__setModuleDefault||(Object.create?function(A,e){Object.defineProperty(A,"default",{enumerable:true,value:e})}:function(A,e){A["default"]=e});var i=this&&this.__importStar||function(A){if(A&&A.__esModule)return A;var e={};if(A!=null)for(var t in A)if(t!=="default"&&Object.hasOwnProperty.call(A,t))r(e,A,t);n(e,A);return e};var s=this&&this.__importDefault||function(A){return A&&A.__esModule?A:{default:A}};Object.defineProperty(e,"__esModule",{value:true});e.Pattern=void 0;const o=i(t(2037));const a=i(t(1017));const c=i(t(7682));const g=s(t(9491));const E=t(7607);const l=t(1537);const Q=t(545);const B=process.platform==="win32";class Pattern{constructor(A,e=false,t,r){this.negate=false;let n;if(typeof A==="string"){n=A.trim()}else{t=t||[];g.default(t.length,`Parameter 'segments' must not empty`);const e=Pattern.getLiteral(t[0]);g.default(e&&c.hasAbsoluteRoot(e),`Parameter 'segments' first element must be a root path`);n=new Q.Path(t).toString().trim();if(A){n=`!${n}`}}while(n.startsWith("!")){this.negate=!this.negate;n=n.substr(1).trim()}n=Pattern.fixupPattern(n,r);this.segments=new Q.Path(n).segments;this.trailingSeparator=c.normalizeSeparators(n).endsWith(a.sep);n=c.safeTrimTrailingSeparator(n);let i=false;const s=this.segments.map((A=>Pattern.getLiteral(A))).filter((A=>!i&&!(i=A==="")));this.searchPath=new Q.Path(s).toString();this.rootRegExp=new RegExp(Pattern.regExpEscape(s[0]),B?"i":"");this.isImplicitPattern=e;const o={dot:true,nobrace:true,nocase:B,nocomment:true,noext:true,nonegate:true};n=B?n.replace(/\\/g,"/"):n;this.minimatch=new E.Minimatch(n,o)}match(A){if(this.segments[this.segments.length-1]==="**"){A=c.normalizeSeparators(A);if(!A.endsWith(a.sep)&&this.isImplicitPattern===false){A=`${A}${a.sep}`}}else{A=c.safeTrimTrailingSeparator(A)}if(this.minimatch.match(A)){return this.trailingSeparator?l.MatchKind.Directory:l.MatchKind.All}return l.MatchKind.None}partialMatch(A){A=c.safeTrimTrailingSeparator(A);if(c.dirname(A)===A){return this.rootRegExp.test(A)}return this.minimatch.matchOne(A.split(B?/\\+/:/\/+/),this.minimatch.set[0],true)}static globEscape(A){return(B?A:A.replace(/\\/g,"\\\\")).replace(/(\[)(?=[^/]+\])/g,"[[]").replace(/\?/g,"[?]").replace(/\*/g,"[*]")}static fixupPattern(A,e){g.default(A,"pattern cannot be empty");const t=new Q.Path(A).segments.map((A=>Pattern.getLiteral(A)));g.default(t.every(((A,e)=>(A!=="."||e===0)&&A!=="..")),`Invalid pattern '${A}'. Relative pathing '.' and '..' is not allowed.`);g.default(!c.hasRoot(A)||t[0],`Invalid pattern '${A}'. Root segment must not contain globs.`);A=c.normalizeSeparators(A);if(A==="."||A.startsWith(`.${a.sep}`)){A=Pattern.globEscape(process.cwd())+A.substr(1)}else if(A==="~"||A.startsWith(`~${a.sep}`)){e=e||o.homedir();g.default(e,"Unable to determine HOME directory");g.default(c.hasAbsoluteRoot(e),`Expected HOME directory to be a rooted path. Actual '${e}'`);A=Pattern.globEscape(e)+A.substr(1)}else if(B&&(A.match(/^[A-Z]:$/i)||A.match(/^[A-Z]:[^\\]/i))){let e=c.ensureAbsoluteRoot("C:\\dummy-root",A.substr(0,2));if(A.length>2&&!e.endsWith("\\")){e+="\\"}A=Pattern.globEscape(e)+A.substr(2)}else if(B&&(A==="\\"||A.match(/^\\[^\\]/))){let e=c.ensureAbsoluteRoot("C:\\dummy-root","\\");if(!e.endsWith("\\")){e+="\\"}A=Pattern.globEscape(e)+A.substr(1)}else{A=c.ensureAbsoluteRoot(Pattern.globEscape(process.cwd()),A)}return c.normalizeSeparators(A)}static getLiteral(A){let e="";for(let t=0;t=0){if(r.length>1){return""}if(r){e+=r;t=n;continue}}}e+=r}return e}static regExpEscape(A){return A.replace(/[[\\^$.|?*+()]/g,"\\$&")}}e.Pattern=Pattern},8714:(A,e)=>{"use strict";Object.defineProperty(e,"__esModule",{value:true});e.SearchState=void 0;class SearchState{constructor(A,e){this.path=A;this.level=e}}e.SearchState=SearchState},5840:function(A,e){"use strict";var t=this&&this.__awaiter||function(A,e,t,r){function adopt(A){return A instanceof t?A:new t((function(e){e(A)}))}return new(t||(t=Promise))((function(t,n){function fulfilled(A){try{step(r.next(A))}catch(A){n(A)}}function rejected(A){try{step(r["throw"](A))}catch(A){n(A)}}function step(A){A.done?t(A.value):adopt(A.value).then(fulfilled,rejected)}step((r=r.apply(A,e||[])).next())}))};Object.defineProperty(e,"__esModule",{value:true});e.PersonalAccessTokenCredentialHandler=e.BearerCredentialHandler=e.BasicCredentialHandler=void 0;class BasicCredentialHandler{constructor(A,e){this.username=A;this.password=e}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 t(this,void 0,void 0,(function*(){throw new Error("not implemented")}))}}e.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 t(this,void 0,void 0,(function*(){throw new Error("not implemented")}))}}e.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 t(this,void 0,void 0,(function*(){throw new Error("not implemented")}))}}e.PersonalAccessTokenCredentialHandler=PersonalAccessTokenCredentialHandler},6182:function(A,e,t){"use strict";var r=this&&this.__createBinding||(Object.create?function(A,e,t,r){if(r===undefined)r=t;var n=Object.getOwnPropertyDescriptor(e,t);if(!n||("get"in n?!e.__esModule:n.writable||n.configurable)){n={enumerable:true,get:function(){return e[t]}}}Object.defineProperty(A,r,n)}:function(A,e,t,r){if(r===undefined)r=t;A[r]=e[t]});var n=this&&this.__setModuleDefault||(Object.create?function(A,e){Object.defineProperty(A,"default",{enumerable:true,value:e})}:function(A,e){A["default"]=e});var i=this&&this.__importStar||function(A){if(A&&A.__esModule)return A;var e={};if(A!=null)for(var t in A)if(t!=="default"&&Object.prototype.hasOwnProperty.call(A,t))r(e,A,t);n(e,A);return e};var s=this&&this.__awaiter||function(A,e,t,r){function adopt(A){return A instanceof t?A:new t((function(e){e(A)}))}return new(t||(t=Promise))((function(t,n){function fulfilled(A){try{step(r.next(A))}catch(A){n(A)}}function rejected(A){try{step(r["throw"](A))}catch(A){n(A)}}function step(A){A.done?t(A.value):adopt(A.value).then(fulfilled,rejected)}step((r=r.apply(A,e||[])).next())}))};Object.defineProperty(e,"__esModule",{value:true});e.HttpClient=e.isHttps=e.HttpClientResponse=e.HttpClientError=e.getProxyUrl=e.MediaTypes=e.Headers=e.HttpCodes=void 0;const o=i(t(3685));const a=i(t(5687));const c=i(t(758));const g=i(t(2530));const E=t(6221);var l;(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"})(l||(e.HttpCodes=l={}));var Q;(function(A){A["Accept"]="accept";A["ContentType"]="content-type"})(Q||(e.Headers=Q={}));var B;(function(A){A["ApplicationJson"]="application/json"})(B||(e.MediaTypes=B={}));function getProxyUrl(A){const e=c.getProxyUrl(new URL(A));return e?e.href:""}e.getProxyUrl=getProxyUrl;const h=[l.MovedPermanently,l.ResourceMoved,l.SeeOther,l.TemporaryRedirect,l.PermanentRedirect];const C=[l.BadGateway,l.ServiceUnavailable,l.GatewayTimeout];const u=["OPTIONS","GET","DELETE","HEAD"];const I=10;const d=5;class HttpClientError extends Error{constructor(A,e){super(A);this.name="HttpClientError";this.statusCode=e;Object.setPrototypeOf(this,HttpClientError.prototype)}}e.HttpClientError=HttpClientError;class HttpClientResponse{constructor(A){this.message=A}readBody(){return s(this,void 0,void 0,(function*(){return new Promise((A=>s(this,void 0,void 0,(function*(){let e=Buffer.alloc(0);this.message.on("data",(A=>{e=Buffer.concat([e,A])}));this.message.on("end",(()=>{A(e.toString())}))}))))}))}readBodyBuffer(){return s(this,void 0,void 0,(function*(){return new Promise((A=>s(this,void 0,void 0,(function*(){const e=[];this.message.on("data",(A=>{e.push(A)}));this.message.on("end",(()=>{A(Buffer.concat(e))}))}))))}))}}e.HttpClientResponse=HttpClientResponse;function isHttps(A){const e=new URL(A);return e.protocol==="https:"}e.isHttps=isHttps;class HttpClient{constructor(A,e,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=A;this.handlers=e||[];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(A,e){return s(this,void 0,void 0,(function*(){return this.request("OPTIONS",A,null,e||{})}))}get(A,e){return s(this,void 0,void 0,(function*(){return this.request("GET",A,null,e||{})}))}del(A,e){return s(this,void 0,void 0,(function*(){return this.request("DELETE",A,null,e||{})}))}post(A,e,t){return s(this,void 0,void 0,(function*(){return this.request("POST",A,e,t||{})}))}patch(A,e,t){return s(this,void 0,void 0,(function*(){return this.request("PATCH",A,e,t||{})}))}put(A,e,t){return s(this,void 0,void 0,(function*(){return this.request("PUT",A,e,t||{})}))}head(A,e){return s(this,void 0,void 0,(function*(){return this.request("HEAD",A,null,e||{})}))}sendStream(A,e,t,r){return s(this,void 0,void 0,(function*(){return this.request(A,e,t,r)}))}getJson(A,e={}){return s(this,void 0,void 0,(function*(){e[Q.Accept]=this._getExistingOrDefaultHeader(e,Q.Accept,B.ApplicationJson);const t=yield this.get(A,e);return this._processResponse(t,this.requestOptions)}))}postJson(A,e,t={}){return s(this,void 0,void 0,(function*(){const r=JSON.stringify(e,null,2);t[Q.Accept]=this._getExistingOrDefaultHeader(t,Q.Accept,B.ApplicationJson);t[Q.ContentType]=this._getExistingOrDefaultHeader(t,Q.ContentType,B.ApplicationJson);const n=yield this.post(A,r,t);return this._processResponse(n,this.requestOptions)}))}putJson(A,e,t={}){return s(this,void 0,void 0,(function*(){const r=JSON.stringify(e,null,2);t[Q.Accept]=this._getExistingOrDefaultHeader(t,Q.Accept,B.ApplicationJson);t[Q.ContentType]=this._getExistingOrDefaultHeader(t,Q.ContentType,B.ApplicationJson);const n=yield this.put(A,r,t);return this._processResponse(n,this.requestOptions)}))}patchJson(A,e,t={}){return s(this,void 0,void 0,(function*(){const r=JSON.stringify(e,null,2);t[Q.Accept]=this._getExistingOrDefaultHeader(t,Q.Accept,B.ApplicationJson);t[Q.ContentType]=this._getExistingOrDefaultHeader(t,Q.ContentType,B.ApplicationJson);const n=yield this.patch(A,r,t);return this._processResponse(n,this.requestOptions)}))}request(A,e,t,r){return s(this,void 0,void 0,(function*(){if(this._disposed){throw new Error("Client has already been disposed.")}const n=new URL(e);let i=this._prepareRequest(A,n,r);const s=this._allowRetries&&u.includes(A)?this._maxRetries+1:1;let o=0;let a;do{a=yield this.requestRaw(i,t);if(a&&a.message&&a.message.statusCode===l.Unauthorized){let A;for(const e of this.handlers){if(e.canHandleAuthentication(a)){A=e;break}}if(A){return A.handleAuthentication(this,i,t)}else{return a}}let e=this._maxRedirects;while(a.message.statusCode&&h.includes(a.message.statusCode)&&this._allowRedirects&&e>0){const s=a.message.headers["location"];if(!s){break}const o=new URL(s);if(n.protocol==="https:"&&n.protocol!==o.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(o.hostname!==n.hostname){for(const A in r){if(A.toLowerCase()==="authorization"){delete r[A]}}}i=this._prepareRequest(A,o,r);a=yield this.requestRaw(i,t);e--}if(!a.message.statusCode||!C.includes(a.message.statusCode)){return a}o+=1;if(o{function callbackForResult(A,e){if(A){r(A)}else if(!e){r(new Error("Unknown error"))}else{t(e)}}this.requestRawWithCallback(A,e,callbackForResult)}))}))}requestRawWithCallback(A,e,t){if(typeof e==="string"){if(!A.options.headers){A.options.headers={}}A.options.headers["Content-Length"]=Buffer.byteLength(e,"utf8")}let r=false;function handleResult(A,e){if(!r){r=true;t(A,e)}}const n=A.httpModule.request(A.options,(A=>{const e=new HttpClientResponse(A);handleResult(undefined,e)}));let i;n.on("socket",(A=>{i=A}));n.setTimeout(this._socketTimeout||3*6e4,(()=>{if(i){i.end()}handleResult(new Error(`Request timeout: ${A.options.path}`))}));n.on("error",(function(A){handleResult(A)}));if(e&&typeof e==="string"){n.write(e,"utf8")}if(e&&typeof e!=="string"){e.on("close",(function(){n.end()}));e.pipe(n)}else{n.end()}}getAgent(A){const e=new URL(A);return this._getAgent(e)}getAgentDispatcher(A){const e=new URL(A);const t=c.getProxyUrl(e);const r=t&&t.hostname;if(!r){return}return this._getProxyAgentDispatcher(e,t)}_prepareRequest(A,e,t){const r={};r.parsedUrl=e;const n=r.parsedUrl.protocol==="https:";r.httpModule=n?a:o;const i=n?443:80;r.options={};r.options.host=r.parsedUrl.hostname;r.options.port=r.parsedUrl.port?parseInt(r.parsedUrl.port):i;r.options.path=(r.parsedUrl.pathname||"")+(r.parsedUrl.search||"");r.options.method=A;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 A of this.handlers){A.prepareRequest(r.options)}}return r}_mergeHeaders(A){if(this.requestOptions&&this.requestOptions.headers){return Object.assign({},lowercaseKeys(this.requestOptions.headers),lowercaseKeys(A||{}))}return lowercaseKeys(A||{})}_getExistingOrDefaultHeader(A,e,t){let r;if(this.requestOptions&&this.requestOptions.headers){r=lowercaseKeys(this.requestOptions.headers)[e]}return A[e]||r||t}_getAgent(A){let e;const t=c.getProxyUrl(A);const r=t&&t.hostname;if(this._keepAlive&&r){e=this._proxyAgent}if(this._keepAlive&&!r){e=this._agent}if(e){return e}const n=A.protocol==="https:";let i=100;if(this.requestOptions){i=this.requestOptions.maxSockets||o.globalAgent.maxSockets}if(t&&t.hostname){const A={maxSockets:i,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 s=t.protocol==="https:";if(n){r=s?g.httpsOverHttps:g.httpsOverHttp}else{r=s?g.httpOverHttps:g.httpOverHttp}e=r(A);this._proxyAgent=e}if(this._keepAlive&&!e){const A={keepAlive:this._keepAlive,maxSockets:i};e=n?new a.Agent(A):new o.Agent(A);this._agent=e}if(!e){e=n?a.globalAgent:o.globalAgent}if(n&&this._ignoreSslError){e.options=Object.assign(e.options||{},{rejectUnauthorized:false})}return e}_getProxyAgentDispatcher(A,e){let t;if(this._keepAlive){t=this._proxyAgentDispatcher}if(t){return t}const r=A.protocol==="https:";t=new E.ProxyAgent(Object.assign({uri:e.href,pipelining:!this._keepAlive?0:1},(e.username||e.password)&&{token:`${e.username}:${e.password}`}));this._proxyAgentDispatcher=t;if(r&&this._ignoreSslError){t.options=Object.assign(t.options.requestTls||{},{rejectUnauthorized:false})}return t}_performExponentialBackoff(A){return s(this,void 0,void 0,(function*(){A=Math.min(I,A);const e=d*Math.pow(2,A);return new Promise((A=>setTimeout((()=>A()),e)))}))}_processResponse(A,e){return s(this,void 0,void 0,(function*(){return new Promise(((t,r)=>s(this,void 0,void 0,(function*(){const n=A.message.statusCode||0;const i={statusCode:n,result:null,headers:{}};if(n===l.NotFound){t(i)}function dateTimeDeserializer(A,e){if(typeof e==="string"){const A=new Date(e);if(!isNaN(A.valueOf())){return A}}return e}let s;let o;try{o=yield A.readBody();if(o&&o.length>0){if(e&&e.deserializeDates){s=JSON.parse(o,dateTimeDeserializer)}else{s=JSON.parse(o)}i.result=s}i.headers=A.message.headers}catch(A){}if(n>299){let A;if(s&&s.message){A=s.message}else if(o&&o.length>0){A=o}else{A=`Failed request: (${n})`}const e=new HttpClientError(A,n);e.result=i.result;r(e)}else{t(i)}}))))}))}}e.HttpClient=HttpClient;const lowercaseKeys=A=>Object.keys(A).reduce(((e,t)=>(e[t.toLowerCase()]=A[t],e)),{})},758:(A,e)=>{"use strict";Object.defineProperty(e,"__esModule",{value:true});e.checkBypass=e.getProxyUrl=void 0;function getProxyUrl(A){const e=A.protocol==="https:";if(checkBypass(A)){return undefined}const t=(()=>{if(e){return process.env["https_proxy"]||process.env["HTTPS_PROXY"]}else{return process.env["http_proxy"]||process.env["HTTP_PROXY"]}})();if(t){try{return new URL(t)}catch(A){if(!t.startsWith("http://")&&!t.startsWith("https://"))return new URL(`http://${t}`)}}else{return undefined}}e.getProxyUrl=getProxyUrl;function checkBypass(A){if(!A.hostname){return false}const e=A.hostname;if(isLoopbackAddress(e)){return true}const t=process.env["no_proxy"]||process.env["NO_PROXY"]||"";if(!t){return false}let r;if(A.port){r=Number(A.port)}else if(A.protocol==="http:"){r=80}else if(A.protocol==="https:"){r=443}const n=[A.hostname.toUpperCase()];if(typeof r==="number"){n.push(`${n[0]}:${r}`)}for(const A of t.split(",").map((A=>A.trim().toUpperCase())).filter((A=>A))){if(A==="*"||n.some((e=>e===A||e.endsWith(`.${A}`)||A.startsWith(".")&&e.endsWith(`${A}`)))){return true}}return false}e.checkBypass=checkBypass;function isLoopbackAddress(A){const e=A.toLowerCase();return e==="localhost"||e.startsWith("127.")||e.startsWith("[::1]")||e.startsWith("[0:0:0:0:0:0:0:1]")}},8104:function(A,e,t){"use strict";var r=this&&this.__createBinding||(Object.create?function(A,e,t,r){if(r===undefined)r=t;Object.defineProperty(A,r,{enumerable:true,get:function(){return e[t]}})}:function(A,e,t,r){if(r===undefined)r=t;A[r]=e[t]});var n=this&&this.__setModuleDefault||(Object.create?function(A,e){Object.defineProperty(A,"default",{enumerable:true,value:e})}:function(A,e){A["default"]=e});var i=this&&this.__importStar||function(A){if(A&&A.__esModule)return A;var e={};if(A!=null)for(var t in A)if(t!=="default"&&Object.hasOwnProperty.call(A,t))r(e,A,t);n(e,A);return e};var s=this&&this.__awaiter||function(A,e,t,r){function adopt(A){return A instanceof t?A:new t((function(e){e(A)}))}return new(t||(t=Promise))((function(t,n){function fulfilled(A){try{step(r.next(A))}catch(A){n(A)}}function rejected(A){try{step(r["throw"](A))}catch(A){n(A)}}function step(A){A.done?t(A.value):adopt(A.value).then(fulfilled,rejected)}step((r=r.apply(A,e||[])).next())}))};var o;Object.defineProperty(e,"__esModule",{value:true});e.getCmdPath=e.tryGetExecutablePath=e.isRooted=e.isDirectory=e.exists=e.READONLY=e.UV_FS_O_EXLOCK=e.IS_WINDOWS=e.unlink=e.symlink=e.stat=e.rmdir=e.rm=e.rename=e.readlink=e.readdir=e.open=e.mkdir=e.lstat=e.copyFile=e.chmod=void 0;const a=i(t(7147));const c=i(t(1017));o=a.promises,e.chmod=o.chmod,e.copyFile=o.copyFile,e.lstat=o.lstat,e.mkdir=o.mkdir,e.open=o.open,e.readdir=o.readdir,e.readlink=o.readlink,e.rename=o.rename,e.rm=o.rm,e.rmdir=o.rmdir,e.stat=o.stat,e.symlink=o.symlink,e.unlink=o.unlink;e.IS_WINDOWS=process.platform==="win32";e.UV_FS_O_EXLOCK=268435456;e.READONLY=a.constants.O_RDONLY;function exists(A){return s(this,void 0,void 0,(function*(){try{yield e.stat(A)}catch(A){if(A.code==="ENOENT"){return false}throw A}return true}))}e.exists=exists;function isDirectory(A,t=false){return s(this,void 0,void 0,(function*(){const r=t?yield e.stat(A):yield e.lstat(A);return r.isDirectory()}))}e.isDirectory=isDirectory;function isRooted(A){A=normalizeSeparators(A);if(!A){throw new Error('isRooted() parameter "p" cannot be empty')}if(e.IS_WINDOWS){return A.startsWith("\\")||/^[A-Z]:/i.test(A)}return A.startsWith("/")}e.isRooted=isRooted;function tryGetExecutablePath(A,t){return s(this,void 0,void 0,(function*(){let r=undefined;try{r=yield e.stat(A)}catch(e){if(e.code!=="ENOENT"){console.log(`Unexpected error attempting to determine if executable file exists '${A}': ${e}`)}}if(r&&r.isFile()){if(e.IS_WINDOWS){const e=c.extname(A).toUpperCase();if(t.some((A=>A.toUpperCase()===e))){return A}}else{if(isUnixExecutable(r)){return A}}}const n=A;for(const i of t){A=n+i;r=undefined;try{r=yield e.stat(A)}catch(e){if(e.code!=="ENOENT"){console.log(`Unexpected error attempting to determine if executable file exists '${A}': ${e}`)}}if(r&&r.isFile()){if(e.IS_WINDOWS){try{const t=c.dirname(A);const r=c.basename(A).toUpperCase();for(const n of yield e.readdir(t)){if(r===n.toUpperCase()){A=c.join(t,n);break}}}catch(e){console.log(`Unexpected error attempting to determine the actual case of the file '${A}': ${e}`)}return A}else{if(isUnixExecutable(r)){return A}}}}return""}))}e.tryGetExecutablePath=tryGetExecutablePath;function normalizeSeparators(A){A=A||"";if(e.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`}e.getCmdPath=getCmdPath},4237:function(A,e,t){"use strict";var r=this&&this.__createBinding||(Object.create?function(A,e,t,r){if(r===undefined)r=t;Object.defineProperty(A,r,{enumerable:true,get:function(){return e[t]}})}:function(A,e,t,r){if(r===undefined)r=t;A[r]=e[t]});var n=this&&this.__setModuleDefault||(Object.create?function(A,e){Object.defineProperty(A,"default",{enumerable:true,value:e})}:function(A,e){A["default"]=e});var i=this&&this.__importStar||function(A){if(A&&A.__esModule)return A;var e={};if(A!=null)for(var t in A)if(t!=="default"&&Object.hasOwnProperty.call(A,t))r(e,A,t);n(e,A);return e};var s=this&&this.__awaiter||function(A,e,t,r){function adopt(A){return A instanceof t?A:new t((function(e){e(A)}))}return new(t||(t=Promise))((function(t,n){function fulfilled(A){try{step(r.next(A))}catch(A){n(A)}}function rejected(A){try{step(r["throw"](A))}catch(A){n(A)}}function step(A){A.done?t(A.value):adopt(A.value).then(fulfilled,rejected)}step((r=r.apply(A,e||[])).next())}))};Object.defineProperty(e,"__esModule",{value:true});e.findInPath=e.which=e.mkdirP=e.rmRF=e.mv=e.cp=void 0;const o=t(9491);const a=i(t(1017));const c=i(t(8104));function cp(A,e,t={}){return s(this,void 0,void 0,(function*(){const{force:r,recursive:n,copySourceDirectory:i}=readCopyOptions(t);const s=(yield c.exists(e))?yield c.stat(e):null;if(s&&s.isFile()&&!r){return}const o=s&&s.isDirectory()&&i?a.join(e,a.basename(A)):e;if(!(yield c.exists(A))){throw new Error(`no such file or directory: ${A}`)}const g=yield c.stat(A);if(g.isDirectory()){if(!n){throw new Error(`Failed to copy. ${A} is a directory, but tried to copy without recursive flag.`)}else{yield cpDirRecursive(A,o,0,r)}}else{if(a.relative(A,o)===""){throw new Error(`'${o}' and '${A}' are the same file`)}yield copyFile(A,o,r)}}))}e.cp=cp;function mv(A,e,t={}){return s(this,void 0,void 0,(function*(){if(yield c.exists(e)){let r=true;if(yield c.isDirectory(e)){e=a.join(e,a.basename(A));r=yield c.exists(e)}if(r){if(t.force==null||t.force){yield rmRF(e)}else{throw new Error("Destination already exists")}}}yield mkdirP(a.dirname(e));yield c.rename(A,e)}))}e.mv=mv;function rmRF(A){return s(this,void 0,void 0,(function*(){if(c.IS_WINDOWS){if(/[*"<>|]/.test(A)){throw new Error('File path must not contain `*`, `"`, `<`, `>` or `|` on Windows')}}try{yield c.rm(A,{force:true,maxRetries:3,recursive:true,retryDelay:300})}catch(A){throw new Error(`File was unable to be removed ${A}`)}}))}e.rmRF=rmRF;function mkdirP(A){return s(this,void 0,void 0,(function*(){o.ok(A,"a path argument must be provided");yield c.mkdir(A,{recursive:true})}))}e.mkdirP=mkdirP;function which(A,e){return s(this,void 0,void 0,(function*(){if(!A){throw new Error("parameter 'tool' is required")}if(e){const e=yield which(A,false);if(!e){if(c.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 e}const t=yield findInPath(A);if(t&&t.length>0){return t[0]}return""}))}e.which=which;function findInPath(A){return s(this,void 0,void 0,(function*(){if(!A){throw new Error("parameter 'tool' is required")}const e=[];if(c.IS_WINDOWS&&process.env["PATHEXT"]){for(const A of process.env["PATHEXT"].split(a.delimiter)){if(A){e.push(A)}}}if(c.isRooted(A)){const t=yield c.tryGetExecutablePath(A,e);if(t){return[t]}return[]}if(A.includes(a.sep)){return[]}const t=[];if(process.env.PATH){for(const A of process.env.PATH.split(a.delimiter)){if(A){t.push(A)}}}const r=[];for(const n of t){const t=yield c.tryGetExecutablePath(a.join(n,A),e);if(t){r.push(t)}}return r}))}e.findInPath=findInPath;function readCopyOptions(A){const e=A.force==null?true:A.force;const t=Boolean(A.recursive);const r=A.copySourceDirectory==null?true:Boolean(A.copySourceDirectory);return{force:e,recursive:t,copySourceDirectory:r}}function cpDirRecursive(A,e,t,r){return s(this,void 0,void 0,(function*(){if(t>=255)return;t++;yield mkdirP(e);const n=yield c.readdir(A);for(const i of n){const n=`${A}/${i}`;const s=`${e}/${i}`;const o=yield c.lstat(n);if(o.isDirectory()){yield cpDirRecursive(n,s,t,r)}else{yield copyFile(n,s,r)}}yield c.chmod(e,(yield c.stat(A)).mode)}))}function copyFile(A,e,t){return s(this,void 0,void 0,(function*(){if((yield c.lstat(A)).isSymbolicLink()){try{yield c.lstat(e);yield c.unlink(e)}catch(A){if(A.code==="EPERM"){yield c.chmod(e,"0666");yield c.unlink(e)}}const t=yield c.readlink(A);yield c.symlink(t,e,c.IS_WINDOWS?"junction":null)}else if(!(yield c.exists(e))||t){yield c.copyFile(A,e)}}))}},9527:(A,e,t)=>{"use strict";const r=t(4492).Writable;const n=t(7261).inherits;const i=t(1897);const s=t(1452);const o=t(6375);const a=45;const c=Buffer.from("-");const g=Buffer.from("\r\n");const EMPTY_FN=function(){};function Dicer(A){if(!(this instanceof Dicer)){return new Dicer(A)}r.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 e=this;this._hparser=new o(A);this._hparser.on("header",(function(A){e._inHeader=false;e._part.emit("header",A)}))}n(Dicer,r);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 e=A._isPreamble?"Preamble":"Part";A._part.emit("error",new Error(e+" 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{r.prototype.emit.apply(this,arguments)}};Dicer.prototype._write=function(A,e,t){if(!this._hparser&&!this._bparser){return t()}if(this._headerFirst&&this._isPreamble){if(!this._part){this._part=new s(this._partOpts);if(this._events.preamble){this.emit("preamble",this._part)}else{this._ignore()}}const e=this._hparser.push(A);if(!this._inHeader&&e!==undefined&&e{"use strict";const r=t(5673).EventEmitter;const n=t(7261).inherits;const i=t(1491);const s=t(1897);const o=Buffer.from("\r\n\r\n");const a=/\r\n/g;const c=/^([^:]+):[ \t]?([\x00-\xFF]+)?$/;function HeaderParser(A){r.call(this);A=A||{};const e=this;this.nread=0;this.maxed=false;this.npairs=0;this.maxHeaderPairs=i(A,"maxHeaderPairs",2e3);this.maxHeaderSize=i(A,"maxHeaderSize",80*1024);this.buffer="";this.header={};this.finished=false;this.ss=new s(o);this.ss.on("info",(function(A,t,r,n){if(t&&!e.maxed){if(e.nread+n-r>=e.maxHeaderSize){n=e.maxHeaderSize-e.nread+r;e.nread=e.maxHeaderSize;e.maxed=true}else{e.nread+=n-r}e.buffer+=t.toString("binary",r,n)}if(A){e._finish()}}))}n(HeaderParser,r);HeaderParser.prototype.push=function(A){const e=this.ss.push(A);if(this.finished){return e}};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(a);const e=A.length;let t,r;for(var n=0;n{"use strict";const r=t(7261).inherits;const n=t(4492).Readable;function PartStream(A){n.call(this,A)}r(PartStream,n);PartStream.prototype._read=function(A){};A.exports=PartStream},1897:(A,e,t)=>{"use strict";const r=t(5673).EventEmitter;const n=t(7261).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 e=A.length;if(e===0){throw new Error("The needle cannot be an empty String/Buffer.")}if(e>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(e);this._lookbehind_size=0;this._needle=A;this._bufpos=0;this._lookbehind=Buffer.alloc(e);for(var t=0;t=0){this.emit("info",false,this._lookbehind,0,this._lookbehind_size);this._lookbehind_size=0}else{const t=this._lookbehind_size+i;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;A.copy(this._lookbehind,this._lookbehind_size);this._lookbehind_size+=e;this._bufpos=e;return e}}i+=(i>=0)*this._bufpos;if(A.indexOf(t,i)!==-1){i=A.indexOf(t,i);++this.matches;if(i>0){this.emit("info",true,A,this._bufpos,i)}else{this.emit("info",true)}return this._bufpos=i+r}else{i=e-r}while(i0){this.emit("info",false,A,this._bufpos,i{"use strict";const r=t(4492).Writable;const{inherits:n}=t(7261);const i=t(9527);const s=t(3812);const o=t(1543);const a=t(6114);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:e,...t}=A;this.opts={autoDestroy:false,...t};r.call(this,this.opts);this._done=false;this._parser=this.getParserByHeaders(e);this._finished=false}n(Busboy,r);Busboy.prototype.emit=function(A){if(A==="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(A){const e=a(A["content-type"]);const t={defCharset:this.opts.defCharset,fileHwm:this.opts.fileHwm,headers:A,highWaterMark:this.opts.highWaterMark,isPartAFile:this.opts.isPartAFile,limits:this.opts.limits,parsedConType:e,preservePath:this.opts.preservePath};if(s.detect.test(e[0])){return new s(this,t)}if(o.detect.test(e[0])){return new o(this,t)}throw new Error("Unsupported Content-Type.")};Busboy.prototype._write=function(A,e,t){this._parser.write(A,t)};A.exports=Busboy;A.exports["default"]=Busboy;A.exports.Busboy=Busboy;A.exports.Dicer=i},3812:(A,e,t)=>{"use strict";const{Readable:r}=t(4492);const{inherits:n}=t(7261);const i=t(9527);const s=t(6114);const o=t(3535);const a=t(9474);const c=t(1491);const g=/^boundary$/i;const E=/^form-data$/i;const l=/^charset$/i;const Q=/^filename$/i;const B=/^name$/i;Multipart.detect=/^multipart\/form-data/i;function Multipart(A,e){let t;let r;const n=this;let h;const C=e.limits;const u=e.isPartAFile||((A,e,t)=>e==="application/octet-stream"||t!==undefined);const I=e.parsedConType||[];const d=e.defCharset||"utf8";const p=e.preservePath;const y={highWaterMark:e.fileHwm};for(t=0,r=I.length;tb){n.parser.removeListener("part",onPart);n.parser.on("part",skipPart);A.hitPartsLimit=true;A.emit("partsLimit");return skipPart(e)}if(L){const A=L;A.emit("end");A.removeAllListeners("end")}e.on("header",(function(i){let c;let g;let h;let C;let I;let b;let k=0;if(i["content-type"]){h=s(i["content-type"][0]);if(h[0]){c=h[0].toLowerCase();for(t=0,r=h.length;tm){const r=m-k+A.length;if(r>0){t.push(A.slice(0,r))}t.truncated=true;t.bytesRead=m;e.removeAllListeners("data");t.emit("limit");return}else if(!t.push(A)){n._pause=true}t.bytesRead=k};M=function(){v=undefined;t.push(null)}}else{if(N===R){if(!A.hitFieldsLimit){A.hitFieldsLimit=true;A.emit("fieldsLimit")}return skipPart(e)}++N;++U;let t="";let r=false;L=e;F=function(A){if((k+=A.length)>D){const n=D-(k-A.length);t+=A.toString("binary",0,n);r=true;e.removeAllListeners("data")}else{t+=A.toString("binary")}};M=function(){L=undefined;if(t.length){t=o(t,"binary",C)}A.emit("field",g,t,false,r,I,c);--U;checkFinished()}}e._readableState.sync=false;e.on("data",F);e.on("end",M)})).on("error",(function(A){if(v){v.emit("error",A)}}))})).on("error",(function(e){A.emit("error",e)})).on("finish",(function(){M=true;checkFinished()}))}Multipart.prototype.write=function(A,e){const t=this.parser.write(A);if(t&&!this._pause){e()}else{this._needDrain=!t;this._cb=e}};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){r.call(this,A);this.bytesRead=0;this.truncated=false}n(FileStream,r);FileStream.prototype._read=function(A){};A.exports=Multipart},1543:(A,e,t)=>{"use strict";const r=t(6757);const n=t(3535);const i=t(1491);const s=/^charset$/i;UrlEncoded.detect=/^application\/x-www-form-urlencoded/i;function UrlEncoded(A,e){const t=e.limits;const n=e.parsedConType;this.boy=A;this.fieldSizeLimit=i(t,"fieldSize",1*1024*1024);this.fieldNameSizeLimit=i(t,"fieldNameSize",100);this.fieldsLimit=i(t,"fields",Infinity);let o;for(var a=0,c=n.length;as){this._key+=this.decoder.write(A.toString("binary",s,t))}this._state="val";this._hitLimit=false;this._checkingBytes=true;this._val="";this._bytesVal=0;this._valTrunc=false;this.decoder.reset();s=t+1}else if(r!==undefined){++this._fields;let t;const i=this._keyTrunc;if(r>s){t=this._key+=this.decoder.write(A.toString("binary",s,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",n(t,"binary",this.charset),"",i,false)}s=r+1;if(this._fields===this.fieldsLimit){return e()}}else if(this._hitLimit){if(i>s){this._key+=this.decoder.write(A.toString("binary",s,i))}s=i;if((this._bytesKey=this._key.length)===this.fieldNameSizeLimit){this._checkingBytes=false;this._keyTrunc=true}}else{if(ss){this._val+=this.decoder.write(A.toString("binary",s,r))}this.boy.emit("field",n(this._key,"binary",this.charset),n(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();s=r+1;if(this._fields===this.fieldsLimit){return e()}}else if(this._hitLimit){if(i>s){this._val+=this.decoder.write(A.toString("binary",s,i))}s=i;if(this._val===""&&this.fieldSizeLimit===0||(this._bytesVal=this._val.length)===this.fieldSizeLimit){this._checkingBytes=false;this._valTrunc=true}}else{if(s0){this.boy.emit("field",n(this._key,"binary",this.charset),"",this._keyTrunc,false)}else if(this._state==="val"){this.boy.emit("field",n(this._key,"binary",this.charset),n(this._val,"binary",this.charset),this._keyTrunc,this._valTrunc)}this.boy._done=true;this.boy.emit("finish")};A.exports=UrlEncoded},6757:A=>{"use strict";const e=/\+/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(A){A=A.replace(e," ");let r="";let n=0;let i=0;const s=A.length;for(;ni){r+=A.substring(i,n);i=n}this.buffer="";++i}}if(i{"use strict";A.exports=function basename(A){if(typeof A!=="string"){return""}for(var e=A.length-1;e>=0;--e){switch(A.charCodeAt(e)){case 47:case 92:A=A.slice(e+1);return A===".."||A==="."?"":A}}return A===".."||A==="."?"":A}},3535:A=>{"use strict";const e=new TextDecoder("utf-8");const t=new Map([["utf-8",e],["utf8",e]]);function decodeText(A,e,r){if(A){if(t.has(r)){try{return t.get(r).decode(Buffer.from(A,e))}catch(A){}}else{try{t.set(r,new TextDecoder(r));return t.get(r).decode(Buffer.from(A,e))}catch(A){}}}return A}A.exports=decodeText},1491:A=>{"use strict";A.exports=function getLimit(A,e,t){if(!A||A[e]===undefined||A[e]===null){return t}if(typeof A[e]!=="number"||isNaN(A[e])){throw new TypeError("Limit "+e+" is not a valid number")}return A[e]}},6114:(A,e,t)=>{"use strict";const r=t(3535);const n=/%([a-fA-F0-9]{2})/g;function encodedReplacer(A,e){return String.fromCharCode(parseInt(e,16))}function parseParams(A){const e=[];let t="key";let i="";let s=false;let o=false;let a=0;let c="";for(var g=0,E=A.length;g{"use strict";A.exports=balanced;function balanced(A,e,t){if(A instanceof RegExp)A=maybeMatch(A,t);if(e instanceof RegExp)e=maybeMatch(e,t);var r=range(A,e,t);return r&&{start:r[0],end:r[1],pre:t.slice(0,r[0]),body:t.slice(r[0]+A.length,r[1]),post:t.slice(r[1]+e.length)}}function maybeMatch(A,e){var t=e.match(A);return t?t[0]:null}balanced.range=range;function range(A,e,t){var r,n,i,s,o;var a=t.indexOf(A);var c=t.indexOf(e,a+1);var g=a;if(a>=0&&c>0){if(A===e){return[a,c]}r=[];i=t.length;while(g>=0&&!o){if(g==a){r.push(g);a=t.indexOf(A,g+1)}else if(r.length==1){o=[r.pop(),c]}else{n=r.pop();if(n=0?a:c}if(r.length){o=[i,s]}}return o}},2130:(A,e,t)=>{var r=t(7396);var n=t(295);A.exports=expandTop;var i="\0SLASH"+Math.random()+"\0";var s="\0OPEN"+Math.random()+"\0";var o="\0CLOSE"+Math.random()+"\0";var a="\0COMMA"+Math.random()+"\0";var c="\0PERIOD"+Math.random()+"\0";function numeric(A){return parseInt(A,10)==A?parseInt(A,10):A.charCodeAt(0)}function escapeBraces(A){return A.split("\\\\").join(i).split("\\{").join(s).split("\\}").join(o).split("\\,").join(a).split("\\.").join(c)}function unescapeBraces(A){return A.split(i).join("\\").split(s).join("{").split(o).join("}").split(a).join(",").split(c).join(".")}function parseCommaParts(A){if(!A)return[""];var e=[];var t=n("{","}",A);if(!t)return A.split(",");var r=t.pre;var i=t.body;var s=t.post;var o=r.split(",");o[o.length-1]+="{"+i+"}";var a=parseCommaParts(s);if(s.length){o[o.length-1]+=a.shift();o.push.apply(o,a)}e.push.apply(e,o);return e}function expandTop(A){if(!A)return[];if(A.substr(0,2)==="{}"){A="\\{\\}"+A.substr(2)}return expand(escapeBraces(A),true).map(unescapeBraces)}function identity(A){return A}function embrace(A){return"{"+A+"}"}function isPadded(A){return/^-?0\d/.test(A)}function lte(A,e){return A<=e}function gte(A,e){return A>=e}function expand(A,e){var t=[];var i=n("{","}",A);if(!i||/\$$/.test(i.pre))return[A];var s=/^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(i.body);var a=/^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(i.body);var c=s||a;var g=i.body.indexOf(",")>=0;if(!c&&!g){if(i.post.match(/,.*\}/)){A=i.pre+"{"+i.body+o+i.post;return expand(A)}return[A]}var E;if(c){E=i.body.split(/\.\./)}else{E=parseCommaParts(i.body);if(E.length===1){E=expand(E[0],false).map(embrace);if(E.length===1){var l=i.post.length?expand(i.post,false):[""];return l.map((function(A){return i.pre+E[0]+A}))}}}var Q=i.pre;var l=i.post.length?expand(i.post,false):[""];var B;if(c){var h=numeric(E[0]);var C=numeric(E[1]);var u=Math.max(E[0].length,E[1].length);var I=E.length==3?Math.abs(numeric(E[2])):1;var d=lte;var p=C0){var R=new Array(w+1).join("0");if(D<0)m="-"+R+m.slice(1);else m=R+m}}}B.push(m)}}else{B=r(E,(function(A){return expand(A,false)}))}for(var b=0;b{A.exports=function(A,t){var r=[];for(var n=0;n{A.exports=realpath;realpath.realpath=realpath;realpath.sync=realpathSync;realpath.realpathSync=realpathSync;realpath.monkeypatch=monkeypatch;realpath.unmonkeypatch=unmonkeypatch;var r=t(7147);var n=r.realpath;var i=r.realpathSync;var s=process.version;var o=/^v[0-5]\./.test(s);var a=t(8404);function newError(A){return A&&A.syscall==="realpath"&&(A.code==="ELOOP"||A.code==="ENOMEM"||A.code==="ENAMETOOLONG")}function realpath(A,e,t){if(o){return n(A,e,t)}if(typeof e==="function"){t=e;e=null}n(A,e,(function(r,n){if(newError(r)){a.realpath(A,e,t)}else{t(r,n)}}))}function realpathSync(A,e){if(o){return i(A,e)}try{return i(A,e)}catch(t){if(newError(t)){return a.realpathSync(A,e)}else{throw t}}}function monkeypatch(){r.realpath=realpath;r.realpathSync=realpathSync}function unmonkeypatch(){r.realpath=n;r.realpathSync=i}},8404:(A,e,t)=>{var r=t(1017);var n=process.platform==="win32";var i=t(7147);var s=process.env.NODE_DEBUG&&/fs/.test(process.env.NODE_DEBUG);function rethrow(){var A;if(s){var e=new Error;A=debugCallback}else A=missingCallback;return A;function debugCallback(A){if(A){e.message=A.message;A=e;missingCallback(A)}}function missingCallback(A){if(A){if(process.throwDeprecation)throw A;else if(!process.noDeprecation){var e="fs: missing callback "+(A.stack||A.message);if(process.traceDeprecation)console.trace(e);else console.error(e)}}}}function maybeCallback(A){return typeof A==="function"?A:rethrow()}var o=r.normalize;if(n){var a=/(.*?)(?:[\/\\]+|$)/g}else{var a=/(.*?)(?:[\/]+|$)/g}if(n){var c=/^(?:[a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/][^\\\/]+)?[\\\/]*/}else{var c=/^[\/]*/}e.realpathSync=function realpathSync(A,e){A=r.resolve(A);if(e&&Object.prototype.hasOwnProperty.call(e,A)){return e[A]}var t=A,s={},o={};var g;var E;var l;var Q;start();function start(){var e=c.exec(A);g=e[0].length;E=e[0];l=e[0];Q="";if(n&&!o[l]){i.lstatSync(l);o[l]=true}}while(g=A.length){if(e)e[s]=A;return t(null,A)}a.lastIndex=E;var r=a.exec(A);B=l;l+=r[0];Q=B+r[1];E=a.lastIndex;if(g[Q]||e&&e[Q]===Q){return process.nextTick(LOOP)}if(e&&Object.prototype.hasOwnProperty.call(e,Q)){return gotResolvedLink(e[Q])}return i.lstat(Q,gotStat)}function gotStat(A,r){if(A)return t(A);if(!r.isSymbolicLink()){g[Q]=true;if(e)e[Q]=Q;return process.nextTick(LOOP)}if(!n){var s=r.dev.toString(32)+":"+r.ino.toString(32);if(o.hasOwnProperty(s)){return gotTarget(null,o[s],Q)}}i.stat(Q,(function(A){if(A)return t(A);i.readlink(Q,(function(A,e){if(!n)o[s]=e;gotTarget(A,e)}))}))}function gotTarget(A,n,i){if(A)return t(A);var s=r.resolve(B,n);if(e)e[i]=s;gotResolvedLink(s)}function gotResolvedLink(e){A=r.resolve(e,A.slice(E));start()}}},6905:(A,e,t)=>{e.setopts=setopts;e.ownProp=ownProp;e.makeAbs=makeAbs;e.finish=finish;e.mark=mark;e.isIgnored=isIgnored;e.childrenIgnored=childrenIgnored;function ownProp(A,e){return Object.prototype.hasOwnProperty.call(A,e)}var r=t(7147);var n=t(1017);var i=t(7607);var s=t(5455);var o=i.Minimatch;function alphasort(A,e){return A.localeCompare(e,"en")}function setupIgnores(A,e){A.ignore=e.ignore||[];if(!Array.isArray(A.ignore))A.ignore=[A.ignore];if(A.ignore.length){A.ignore=A.ignore.map(ignoreMap)}}function ignoreMap(A){var e=null;if(A.slice(-3)==="/**"){var t=A.replace(/(\/\*\*)+$/,"");e=new o(t,{dot:true})}return{matcher:new o(A,{dot:true}),gmatcher:e}}function setopts(A,e,t){if(!t)t={};if(t.matchBase&&-1===e.indexOf("/")){if(t.noglobstar){throw new Error("base matching requires globstar")}e="**/"+e}A.silent=!!t.silent;A.pattern=e;A.strict=t.strict!==false;A.realpath=!!t.realpath;A.realpathCache=t.realpathCache||Object.create(null);A.follow=!!t.follow;A.dot=!!t.dot;A.mark=!!t.mark;A.nodir=!!t.nodir;if(A.nodir)A.mark=true;A.sync=!!t.sync;A.nounique=!!t.nounique;A.nonull=!!t.nonull;A.nosort=!!t.nosort;A.nocase=!!t.nocase;A.stat=!!t.stat;A.noprocess=!!t.noprocess;A.absolute=!!t.absolute;A.fs=t.fs||r;A.maxLength=t.maxLength||Infinity;A.cache=t.cache||Object.create(null);A.statCache=t.statCache||Object.create(null);A.symlinks=t.symlinks||Object.create(null);setupIgnores(A,t);A.changedCwd=false;var i=process.cwd();if(!ownProp(t,"cwd"))A.cwd=i;else{A.cwd=n.resolve(t.cwd);A.changedCwd=A.cwd!==i}A.root=t.root||n.resolve(A.cwd,"/");A.root=n.resolve(A.root);if(process.platform==="win32")A.root=A.root.replace(/\\/g,"/");A.cwdAbs=s(A.cwd)?A.cwd:makeAbs(A,A.cwd);if(process.platform==="win32")A.cwdAbs=A.cwdAbs.replace(/\\/g,"/");A.nomount=!!t.nomount;t.nonegate=true;t.nocomment=true;t.allowWindowsEscape=false;A.minimatch=new o(e,t);A.options=A.minimatch.options}function finish(A){var e=A.nounique;var t=e?[]:Object.create(null);for(var r=0,n=A.matches.length;r{A.exports=glob;var r=t(4921);var n=t(7607);var i=n.Minimatch;var s=t(4226);var o=t(2361).EventEmitter;var a=t(1017);var c=t(9491);var g=t(5455);var E=t(5129);var l=t(6905);var Q=l.setopts;var B=l.ownProp;var h=t(8172);var C=t(3837);var u=l.childrenIgnored;var I=l.isIgnored;var d=t(9618);function glob(A,e,t){if(typeof e==="function")t=e,e={};if(!e)e={};if(e.sync){if(t)throw new TypeError("callback provided to sync glob");return E(A,e)}return new Glob(A,e,t)}glob.sync=E;var p=glob.GlobSync=E.GlobSync;glob.glob=glob;function extend(A,e){if(e===null||typeof e!=="object"){return A}var t=Object.keys(e);var r=t.length;while(r--){A[t[r]]=e[t[r]]}return A}glob.hasMagic=function(A,e){var t=extend({},e);t.noprocess=true;var r=new Glob(A,t);var n=r.minimatch.set;if(!A)return false;if(n.length>1)return true;for(var i=0;ithis.maxLength)return e();if(!this.stat&&B(this.cache,t)){var n=this.cache[t];if(Array.isArray(n))n="DIR";if(!r||n==="DIR")return e(null,n);if(r&&n==="FILE")return e()}var i;var s=this.statCache[t];if(s!==undefined){if(s===false)return e(null,s);else{var o=s.isDirectory()?"DIR":"FILE";if(r&&o==="FILE")return e();else return e(null,o,s)}}var a=this;var c=h("stat\0"+t,lstatcb_);if(c)a.fs.lstat(t,c);function lstatcb_(r,n){if(n&&n.isSymbolicLink()){return a.fs.stat(t,(function(r,i){if(r)a._stat2(A,t,null,n,e);else a._stat2(A,t,r,i,e)}))}else{a._stat2(A,t,r,n,e)}}};Glob.prototype._stat2=function(A,e,t,r,n){if(t&&(t.code==="ENOENT"||t.code==="ENOTDIR")){this.statCache[e]=false;return n()}var i=A.slice(-1)==="/";this.statCache[e]=r;if(e.slice(-1)==="/"&&r&&!r.isDirectory())return n(null,false,r);var s=true;if(r)s=r.isDirectory()?"DIR":"FILE";this.cache[e]=this.cache[e]||s;if(i&&s==="FILE")return n();return n(null,s,r)}},5129:(A,e,t)=>{A.exports=globSync;globSync.GlobSync=GlobSync;var r=t(4921);var n=t(7607);var i=n.Minimatch;var s=t(9753).Glob;var o=t(3837);var a=t(1017);var c=t(9491);var g=t(5455);var E=t(6905);var l=E.setopts;var Q=E.ownProp;var B=E.childrenIgnored;var h=E.isIgnored;function globSync(A,e){if(typeof e==="function"||arguments.length===3)throw new TypeError("callback provided to sync glob\n"+"See: https://github.com/isaacs/node-glob/issues/167");return new GlobSync(A,e).found}function GlobSync(A,e){if(!A)throw new Error("must provide pattern");if(typeof e==="function"||arguments.length===3)throw new TypeError("callback provided to sync glob\n"+"See: https://github.com/isaacs/node-glob/issues/167");if(!(this instanceof GlobSync))return new GlobSync(A,e);l(this,A,e);if(this.noprocess)return this;var t=this.minimatch.set.length;this.matches=new Array(t);for(var r=0;rthis.maxLength)return false;if(!this.stat&&Q(this.cache,e)){var r=this.cache[e];if(Array.isArray(r))r="DIR";if(!t||r==="DIR")return r;if(t&&r==="FILE")return false}var n;var i=this.statCache[e];if(!i){var s;try{s=this.fs.lstatSync(e)}catch(A){if(A&&(A.code==="ENOENT"||A.code==="ENOTDIR")){this.statCache[e]=false;return false}}if(s&&s.isSymbolicLink()){try{i=this.fs.statSync(e)}catch(A){i=s}}else{i=s}}this.statCache[e]=i;var r=true;if(i)r=i.isDirectory()?"DIR":"FILE";this.cache[e]=this.cache[e]||r;if(t&&r==="FILE")return false;return r};GlobSync.prototype._mark=function(A){return E.mark(this,A)};GlobSync.prototype._makeAbs=function(A){return E.makeAbs(this,A)}},8172:(A,e,t)=>{var r=t(645);var n=Object.create(null);var i=t(9618);A.exports=r(inflight);function inflight(A,e){if(n[A]){n[A].push(e);return null}else{n[A]=[e];return makeres(A)}}function makeres(A){return i((function RES(){var e=n[A];var t=e.length;var r=slice(arguments);try{for(var i=0;it){e.splice(0,t);process.nextTick((function(){RES.apply(null,r)}))}else{delete n[A]}}}))}function slice(A){var e=A.length;var t=[];for(var r=0;r{try{var r=t(3837);if(typeof r.inherits!=="function")throw"";A.exports=r.inherits}catch(e){A.exports=t(4981)}},4981:A=>{if(typeof Object.create==="function"){A.exports=function inherits(A,e){if(e){A.super_=e;A.prototype=Object.create(e.prototype,{constructor:{value:A,enumerable:false,writable:true,configurable:true}})}}}else{A.exports=function inherits(A,e){if(e){A.super_=e;var TempCtor=function(){};TempCtor.prototype=e.prototype;A.prototype=new TempCtor;A.prototype.constructor=A}}}},7607:(A,e,t)=>{A.exports=minimatch;minimatch.Minimatch=Minimatch;var r=function(){try{return t(1017)}catch(A){}}()||{sep:"/"};minimatch.sep=r.sep;var n=minimatch.GLOBSTAR=Minimatch.GLOBSTAR={};var i=t(2130);var s={"!":{open:"(?:(?!(?:",close:"))[^/]*?)"},"?":{open:"(?:",close:")?"},"+":{open:"(?:",close:")+"},"*":{open:"(?:",close:")*"},"@":{open:"(?:",close:")"}};var o="[^/]";var a=o+"*?";var c="(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?";var g="(?:(?!(?:\\/|^)\\.).)*?";var E=charSet("().*{}+?[]^$\\!");function charSet(A){return A.split("").reduce((function(A,e){A[e]=true;return A}),{})}var l=/\/+/;minimatch.filter=filter;function filter(A,e){e=e||{};return function(t,r,n){return minimatch(t,A,e)}}function ext(A,e){e=e||{};var t={};Object.keys(A).forEach((function(e){t[e]=A[e]}));Object.keys(e).forEach((function(A){t[A]=e[A]}));return t}minimatch.defaults=function(A){if(!A||typeof A!=="object"||!Object.keys(A).length){return minimatch}var e=minimatch;var t=function minimatch(t,r,n){return e(t,r,ext(A,n))};t.Minimatch=function Minimatch(t,r){return new e.Minimatch(t,ext(A,r))};t.Minimatch.defaults=function defaults(t){return e.defaults(ext(A,t)).Minimatch};t.filter=function filter(t,r){return e.filter(t,ext(A,r))};t.defaults=function defaults(t){return e.defaults(ext(A,t))};t.makeRe=function makeRe(t,r){return e.makeRe(t,ext(A,r))};t.braceExpand=function braceExpand(t,r){return e.braceExpand(t,ext(A,r))};t.match=function(t,r,n){return e.match(t,r,ext(A,n))};return t};Minimatch.defaults=function(A){return minimatch.defaults(A).Minimatch};function minimatch(A,e,t){assertValidPattern(e);if(!t)t={};if(!t.nocomment&&e.charAt(0)==="#"){return false}return new Minimatch(e,t).match(A)}function Minimatch(A,e){if(!(this instanceof Minimatch)){return new Minimatch(A,e)}assertValidPattern(A);if(!e)e={};A=A.trim();if(!e.allowWindowsEscape&&r.sep!=="/"){A=A.split(r.sep).join("/")}this.options=e;this.set=[];this.pattern=A;this.regexp=null;this.negate=false;this.comment=false;this.empty=false;this.partial=!!e.partial;this.make()}Minimatch.prototype.debug=function(){};Minimatch.prototype.make=make;function make(){var A=this.pattern;var e=this.options;if(!e.nocomment&&A.charAt(0)==="#"){this.comment=true;return}if(!A){this.empty=true;return}this.parseNegate();var t=this.globSet=this.braceExpand();if(e.debug)this.debug=function debug(){console.error.apply(console,arguments)};this.debug(this.pattern,t);t=this.globParts=t.map((function(A){return A.split(l)}));this.debug(this.pattern,t);t=t.map((function(A,e,t){return A.map(this.parse,this)}),this);this.debug(this.pattern,t);t=t.filter((function(A){return A.indexOf(false)===-1}));this.debug(this.pattern,t);this.set=t}Minimatch.prototype.parseNegate=parseNegate;function parseNegate(){var A=this.pattern;var e=false;var t=this.options;var r=0;if(t.nonegate)return;for(var n=0,i=A.length;nQ){throw new TypeError("pattern is too long")}};Minimatch.prototype.parse=parse;var B={};function parse(A,e){assertValidPattern(A);var t=this.options;if(A==="**"){if(!t.noglobstar)return n;else A="*"}if(A==="")return"";var r="";var i=!!t.nocase;var c=false;var g=[];var l=[];var Q;var h=false;var C=-1;var u=-1;var I=A.charAt(0)==="."?"":t.dot?"(?!(?:^|\\/)\\.{1,2}(?:$|\\/))":"(?!\\.)";var d=this;function clearStateChar(){if(Q){switch(Q){case"*":r+=a;i=true;break;case"?":r+=o;i=true;break;default:r+="\\"+Q;break}d.debug("clearStateChar %j %j",Q,r);Q=false}}for(var p=0,y=A.length,D;p-1;S--){var N=l[S];var U=r.slice(0,N.reStart);var v=r.slice(N.reStart,N.reEnd-8);var L=r.slice(N.reEnd-8,N.reEnd);var M=r.slice(N.reEnd);L+=M;var T=U.split("(").length-1;var G=M;for(p=0;p=0;s--){i=A[s];if(i)break}for(s=0;s>> no match, partial?",A,E,e,l);if(E===o)return true}return false}var B;if(typeof c==="string"){B=g===c;this.debug("string match",c,g,B)}else{B=g.match(c);this.debug("pattern match",c,g,B)}if(!B)return false}if(i===o&&s===a){return true}else if(i===o){return t}else if(s===a){return i===o-1&&A[i]===""}throw new Error("wtf?")};function globUnescape(A){return A.replace(/\\(.)/g,"$1")}function regExpEscape(A){return A.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")}},9618:(A,e,t)=>{var r=t(645);A.exports=r(once);A.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(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 e=A.name||"Function wrapped with `once`";f.onceError=e+" shouldn't be called more than once";f.called=false;return f}},5455:A=>{"use strict";function posix(A){return A.charAt(0)==="/"}function win32(A){var e=/^([a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/]+[^\\\/]+)?([\\\/])?([\s\S]*?)$/;var t=e.exec(A);var r=t[1]||"";var n=Boolean(r&&r.charAt(1)!==":");return Boolean(t[2]||n)}A.exports=process.platform==="win32"?win32:posix;A.exports.posix=posix;A.exports.win32=win32},2910:(A,e,t)=>{const r=t(9491);const n=t(1017);const i=t(7147);let s=undefined;try{s=t(9753)}catch(A){}const o={nosort:true,silent:true};let a=0;const c=process.platform==="win32";const defaults=A=>{const e=["unlink","chmod","stat","lstat","rmdir","readdir"];e.forEach((e=>{A[e]=A[e]||i[e];e=e+"Sync";A[e]=A[e]||i[e]}));A.maxBusyTries=A.maxBusyTries||3;A.emfileWait=A.emfileWait||1e3;if(A.glob===false){A.disableGlob=true}if(A.disableGlob!==true&&s===undefined){throw Error("glob dependency not found, set `options.disableGlob = true` if intentional")}A.disableGlob=A.disableGlob||false;A.glob=A.glob||o};const rimraf=(A,e,t)=>{if(typeof e==="function"){t=e;e={}}r(A,"rimraf: missing path");r.equal(typeof A,"string","rimraf: path should be a string");r.equal(typeof t,"function","rimraf: callback function required");r(e,"rimraf: invalid options argument provided");r.equal(typeof e,"object","rimraf: options should be object");defaults(e);let n=0;let i=null;let o=0;const next=A=>{i=i||A;if(--o===0)t(i)};const afterGlob=(A,r)=>{if(A)return t(A);o=r.length;if(o===0)return t();r.forEach((A=>{const CB=t=>{if(t){if((t.code==="EBUSY"||t.code==="ENOTEMPTY"||t.code==="EPERM")&&nrimraf_(A,e,CB)),n*100)}if(t.code==="EMFILE"&&arimraf_(A,e,CB)),a++)}if(t.code==="ENOENT")t=null}a=0;next(t)};rimraf_(A,e,CB)}))};if(e.disableGlob||!s.hasMagic(A))return afterGlob(null,[A]);e.lstat(A,((t,r)=>{if(!t)return afterGlob(null,[A]);s(A,e.glob,afterGlob)}))};const rimraf_=(A,e,t)=>{r(A);r(e);r(typeof t==="function");e.lstat(A,((r,n)=>{if(r&&r.code==="ENOENT")return t(null);if(r&&r.code==="EPERM"&&c)fixWinEPERM(A,e,r,t);if(n&&n.isDirectory())return rmdir(A,e,r,t);e.unlink(A,(r=>{if(r){if(r.code==="ENOENT")return t(null);if(r.code==="EPERM")return c?fixWinEPERM(A,e,r,t):rmdir(A,e,r,t);if(r.code==="EISDIR")return rmdir(A,e,r,t)}return t(r)}))}))};const fixWinEPERM=(A,e,t,n)=>{r(A);r(e);r(typeof n==="function");e.chmod(A,438,(r=>{if(r)n(r.code==="ENOENT"?null:t);else e.stat(A,((r,i)=>{if(r)n(r.code==="ENOENT"?null:t);else if(i.isDirectory())rmdir(A,e,t,n);else e.unlink(A,n)}))}))};const fixWinEPERMSync=(A,e,t)=>{r(A);r(e);try{e.chmodSync(A,438)}catch(A){if(A.code==="ENOENT")return;else throw t}let n;try{n=e.statSync(A)}catch(A){if(A.code==="ENOENT")return;else throw t}if(n.isDirectory())rmdirSync(A,e,t);else e.unlinkSync(A)};const rmdir=(A,e,t,n)=>{r(A);r(e);r(typeof n==="function");e.rmdir(A,(r=>{if(r&&(r.code==="ENOTEMPTY"||r.code==="EEXIST"||r.code==="EPERM"))rmkids(A,e,n);else if(r&&r.code==="ENOTDIR")n(t);else n(r)}))};const rmkids=(A,e,t)=>{r(A);r(e);r(typeof t==="function");e.readdir(A,((r,i)=>{if(r)return t(r);let s=i.length;if(s===0)return e.rmdir(A,t);let o;i.forEach((r=>{rimraf(n.join(A,r),e,(r=>{if(o)return;if(r)return t(o=r);if(--s===0)e.rmdir(A,t)}))}))}))};const rimrafSync=(A,e)=>{e=e||{};defaults(e);r(A,"rimraf: missing path");r.equal(typeof A,"string","rimraf: path should be a string");r(e,"rimraf: missing options");r.equal(typeof e,"object","rimraf: options should be object");let t;if(e.disableGlob||!s.hasMagic(A)){t=[A]}else{try{e.lstatSync(A);t=[A]}catch(r){t=s.sync(A,e.glob)}}if(!t.length)return;for(let A=0;A{r(A);r(e);try{e.rmdirSync(A)}catch(r){if(r.code==="ENOENT")return;if(r.code==="ENOTDIR")throw t;if(r.code==="ENOTEMPTY"||r.code==="EEXIST"||r.code==="EPERM")rmkidsSync(A,e)}};const rmkidsSync=(A,e)=>{r(A);r(e);e.readdirSync(A).forEach((t=>rimrafSync(n.join(A,t),e)));const t=c?100:1;let i=0;do{let r=true;try{const t=e.rmdirSync(A,e);r=false;return t}finally{if(++i{"use strict";const{promisify:r}=t(3837);const n=t(5693);A.exports.fileSync=n.fileSync;const i=r(((A,e)=>n.file(A,((A,t,n,i)=>A?e(A):e(undefined,{path:t,fd:n,cleanup:r(i)})))));A.exports.file=async A=>i(A);A.exports.withFile=async function withFile(e,t){const{path:r,fd:n,cleanup:i}=await A.exports.file(t);try{return await e({path:r,fd:n})}finally{await i()}};A.exports.dirSync=n.dirSync;const s=r(((A,e)=>n.dir(A,((A,t,n)=>A?e(A):e(undefined,{path:t,cleanup:r(n)})))));A.exports.dir=async A=>s(A);A.exports.withDir=async function withDir(e,t){const{path:r,cleanup:n}=await A.exports.dir(t);try{return await e({path:r})}finally{await n()}};A.exports.tmpNameSync=n.tmpNameSync;A.exports.tmpName=r(n.tmpName);A.exports.tmpdir=n.tmpdir;A.exports.setGracefulCleanup=n.setGracefulCleanup},5693:(A,e,t)=>{ -/*! - * Tmp - * - * Copyright (c) 2011-2017 KARASZI Istvan - * - * MIT Licensed - */ -const r=t(7147);const n=t(2037);const i=t(1017);const s=t(6113);const o={fs:r.constants,os:n.constants};const a=t(2910);const c="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",g=/XXXXXX/,E=3,l=(o.O_CREAT||o.fs.O_CREAT)|(o.O_EXCL||o.fs.O_EXCL)|(o.O_RDWR||o.fs.O_RDWR),Q=n.platform()==="win32",B=o.EBADF||o.os.errno.EBADF,h=o.ENOENT||o.os.errno.ENOENT,C=448,u=384,I="exit",d=[],p=r.rmdirSync.bind(r),y=a.sync;let D=false;function tmpName(A,e){const t=_parseArguments(A,e),n=t[0],i=t[1];try{_assertAndSanitizeOptions(n)}catch(A){return i(A)}let s=n.tries;(function _getUniqueName(){try{const A=_generateTmpName(n);r.stat(A,(function(e){if(!e){if(s-- >0)return _getUniqueName();return i(new Error("Could not get a unique tmp filename, max tries reached "+A))}i(null,A)}))}catch(A){i(A)}})()}function tmpNameSync(A){const e=_parseArguments(A),t=e[0];_assertAndSanitizeOptions(t);let n=t.tries;do{const A=_generateTmpName(t);try{r.statSync(A)}catch(e){return A}}while(n-- >0);throw new Error("Could not get a unique tmp filename, max tries reached")}function file(A,e){const t=_parseArguments(A,e),n=t[0],i=t[1];tmpName(n,(function _tmpNameCreated(A,e){if(A)return i(A);r.open(e,l,n.mode||u,(function _fileCreated(A,t){if(A)return i(A);if(n.discardDescriptor){return r.close(t,(function _discardCallback(A){return i(A,e,undefined,_prepareTmpFileRemoveCallback(e,-1,n,false))}))}else{const A=n.discardDescriptor||n.detachDescriptor;i(null,e,t,_prepareTmpFileRemoveCallback(e,A?-1:t,n,false))}}))}))}function fileSync(A){const e=_parseArguments(A),t=e[0];const n=t.discardDescriptor||t.detachDescriptor;const i=tmpNameSync(t);var s=r.openSync(i,l,t.mode||u);if(t.discardDescriptor){r.closeSync(s);s=undefined}return{name:i,fd:s,removeCallback:_prepareTmpFileRemoveCallback(i,n?-1:s,t,true)}}function dir(A,e){const t=_parseArguments(A,e),n=t[0],i=t[1];tmpName(n,(function _tmpNameCreated(A,e){if(A)return i(A);r.mkdir(e,n.mode||C,(function _dirCreated(A){if(A)return i(A);i(null,e,_prepareTmpDirRemoveCallback(e,n,false))}))}))}function dirSync(A){const e=_parseArguments(A),t=e[0];const n=tmpNameSync(t);r.mkdirSync(n,t.mode||C);return{name:n,removeCallback:_prepareTmpDirRemoveCallback(n,t,true)}}function _removeFileAsync(A,e){const _handler=function(A){if(A&&!_isENOENT(A)){return e(A)}e()};if(0<=A[0])r.close(A[0],(function(){r.unlink(A[1],_handler)}));else r.unlink(A[1],_handler)}function _removeFileSync(A){let e=null;try{if(0<=A[0])r.closeSync(A[0])}catch(A){if(!_isEBADF(A)&&!_isENOENT(A))throw A}finally{try{r.unlinkSync(A[1])}catch(A){if(!_isENOENT(A))e=A}}if(e!==null){throw e}}function _prepareTmpFileRemoveCallback(A,e,t,r){const n=_prepareRemoveCallback(_removeFileSync,[e,A],r);const i=_prepareRemoveCallback(_removeFileAsync,[e,A],r,n);if(!t.keep)d.unshift(n);return r?n:i}function _prepareTmpDirRemoveCallback(A,e,t){const n=e.unsafeCleanup?a:r.rmdir.bind(r);const i=e.unsafeCleanup?y:p;const s=_prepareRemoveCallback(i,A,t);const o=_prepareRemoveCallback(n,A,t,s);if(!e.keep)d.unshift(s);return t?s:o}function _prepareRemoveCallback(A,e,t,r){let n=false;return function _cleanupCallback(i){if(!n){const s=r||_cleanupCallback;const o=d.indexOf(s);if(o>=0)d.splice(o,1);n=true;if(t||A===p||A===y){return A(e)}else{return A(e,i||function(){})}}}}function _garbageCollector(){if(!D)return;while(d.length){try{d[0]()}catch(A){}}}function _randomChars(A){let e=[],t=null;try{t=s.randomBytes(A)}catch(e){t=s.pseudoRandomBytes(A)}for(var r=0;r{A.exports=t(1408)},1408:(A,e,t)=>{"use strict";var r=t(1808);var n=t(4404);var i=t(3685);var s=t(5687);var o=t(2361);var a=t(9491);var c=t(3837);e.httpOverHttp=httpOverHttp;e.httpsOverHttp=httpsOverHttp;e.httpOverHttps=httpOverHttps;e.httpsOverHttps=httpsOverHttps;function httpOverHttp(A){var e=new TunnelingAgent(A);e.request=i.request;return e}function httpsOverHttp(A){var e=new TunnelingAgent(A);e.request=i.request;e.createSocket=createSecureSocket;e.defaultPort=443;return e}function httpOverHttps(A){var e=new TunnelingAgent(A);e.request=s.request;return e}function httpsOverHttps(A){var e=new TunnelingAgent(A);e.request=s.request;e.createSocket=createSecureSocket;e.defaultPort=443;return e}function TunnelingAgent(A){var e=this;e.options=A||{};e.proxyOptions=e.options.proxy||{};e.maxSockets=e.options.maxSockets||i.Agent.defaultMaxSockets;e.requests=[];e.sockets=[];e.on("free",(function onFree(A,t,r,n){var i=toOptions(t,r,n);for(var s=0,o=e.requests.length;s=this.maxSockets){n.requests.push(i);return}n.createSocket(i,(function(e){e.on("free",onFree);e.on("close",onCloseOrRemove);e.on("agentRemove",onCloseOrRemove);A.onSocket(e);function onFree(){n.emit("free",e,i)}function onCloseOrRemove(A){n.removeSocket(e);e.removeListener("free",onFree);e.removeListener("close",onCloseOrRemove);e.removeListener("agentRemove",onCloseOrRemove)}}))};TunnelingAgent.prototype.createSocket=function createSocket(A,e){var t=this;var r={};t.sockets.push(r);var n=mergeOptions({},t.proxyOptions,{method:"CONNECT",path:A.host+":"+A.port,agent:false,headers:{host:A.host+":"+A.port}});if(A.localAddress){n.localAddress=A.localAddress}if(n.proxyAuth){n.headers=n.headers||{};n.headers["Proxy-Authorization"]="Basic "+new Buffer(n.proxyAuth).toString("base64")}g("making CONNECT request");var i=t.request(n);i.useChunkedEncodingByDefault=false;i.once("response",onResponse);i.once("upgrade",onUpgrade);i.once("connect",onConnect);i.once("error",onError);i.end();function onResponse(A){A.upgrade=true}function onUpgrade(A,e,t){process.nextTick((function(){onConnect(A,e,t)}))}function onConnect(n,s,o){i.removeAllListeners();s.removeAllListeners();if(n.statusCode!==200){g("tunneling socket could not be established, statusCode=%d",n.statusCode);s.destroy();var a=new Error("tunneling socket could not be established, "+"statusCode="+n.statusCode);a.code="ECONNRESET";A.request.emit("error",a);t.removeSocket(r);return}if(o.length>0){g("got illegal response body from proxy");s.destroy();var a=new Error("got illegal response body from proxy");a.code="ECONNRESET";A.request.emit("error",a);t.removeSocket(r);return}g("tunneling connection has established");t.sockets[t.sockets.indexOf(r)]=s;return e(s)}function onError(e){i.removeAllListeners();g("tunneling socket could not be established, cause=%s\n",e.message,e.stack);var n=new Error("tunneling socket could not be established, "+"cause="+e.message);n.code="ECONNRESET";A.request.emit("error",n);t.removeSocket(r)}};TunnelingAgent.prototype.removeSocket=function removeSocket(A){var e=this.sockets.indexOf(A);if(e===-1){return}this.sockets.splice(e,1);var t=this.requests.shift();if(t){this.createSocket(t,(function(A){t.request.onSocket(A)}))}};function createSecureSocket(A,e){var t=this;TunnelingAgent.prototype.createSocket.call(t,A,(function(r){var i=A.request.getHeader("host");var s=mergeOptions({},t.options,{socket:r,servername:i?i.replace(/:.*$/,""):A.host});var o=n.connect(0,s);t.sockets[t.sockets.indexOf(r)]=o;e(o)}))}function toOptions(A,e,t){if(typeof A==="string"){return{host:A,port:e,localAddress:t}}return A}function mergeOptions(A){for(var e=1,t=arguments.length;e{"use strict";const r=t(3498);const n=t(78);const i=t(1070);const s=t(9756);const o=t(9434);const a=t(8944);const c=t(8657);const{InvalidArgumentError:g}=i;const E=t(3219);const l=t(6150);const Q=t(9994);const B=t(8697);const h=t(8056);const C=t(1443);const u=t(5317);const{getGlobalDispatcher:I,setGlobalDispatcher:d}=t(5230);const p=t(9036);const y=t(620);const D=t(8911);let m;try{t(6113);m=true}catch{m=false}Object.assign(n.prototype,E);A.exports.Dispatcher=n;A.exports.Client=r;A.exports.Pool=s;A.exports.BalancedPool=o;A.exports.Agent=a;A.exports.ProxyAgent=u;A.exports.DecoratorHandler=p;A.exports.RedirectHandler=y;A.exports.createRedirectInterceptor=D;A.exports.buildConnector=l;A.exports.errors=i;function makeDispatcher(A){return(e,t,r)=>{if(typeof t==="function"){r=t;t=null}if(!e||typeof e!=="string"&&typeof e!=="object"&&!(e 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 A=t.path;if(!t.path.startsWith("/")){A=`/${A}`}e=new URL(c.parseOrigin(e).origin+A)}else{if(!t){t=typeof e==="object"?e:{}}e=c.parseURL(e)}const{agent:n,dispatcher:i=I()}=t;if(n){throw new g("unsupported opts.agent. Did you mean opts.client?")}return A.call(i,{...t,origin:e.origin,path:e.search?`${e.pathname}${e.search}`:e.pathname,method:t.method||(t.body?"PUT":"GET")},r)}}A.exports.setGlobalDispatcher=d;A.exports.getGlobalDispatcher=I;if(c.nodeMajor>16||c.nodeMajor===16&&c.nodeMinor>=8){let e=null;A.exports.fetch=async function fetch(A){if(!e){e=t(3177).fetch}try{return await e(...arguments)}catch(A){if(typeof A==="object"){Error.captureStackTrace(A,this)}throw A}};A.exports.Headers=t(4721).Headers;A.exports.Response=t(4507).Response;A.exports.Request=t(6369).Request;A.exports.FormData=t(5376).FormData;A.exports.File=t(7352).File;A.exports.FileReader=t(3133).FileReader;const{setGlobalOrigin:r,getGlobalOrigin:n}=t(5730);A.exports.setGlobalOrigin=r;A.exports.getGlobalOrigin=n;const{CacheStorage:i}=t(1520);const{kConstruct:s}=t(8283);A.exports.caches=new i(s)}if(c.nodeMajor>=16){const{deleteCookie:e,getCookies:r,getSetCookies:n,setCookie:i}=t(421);A.exports.deleteCookie=e;A.exports.getCookies=r;A.exports.getSetCookies=n;A.exports.setCookie=i;const{parseMIMEType:s,serializeAMimeType:o}=t(1353);A.exports.parseMIMEType=s;A.exports.serializeAMimeType=o}if(c.nodeMajor>=18&&m){const{WebSocket:e}=t(7523);A.exports.WebSocket=e}A.exports.request=makeDispatcher(E.request);A.exports.stream=makeDispatcher(E.stream);A.exports.pipeline=makeDispatcher(E.pipeline);A.exports.connect=makeDispatcher(E.connect);A.exports.upgrade=makeDispatcher(E.upgrade);A.exports.MockClient=Q;A.exports.MockPool=h;A.exports.MockAgent=B;A.exports.mockErrors=C},8944:(A,e,t)=>{"use strict";const{InvalidArgumentError:r}=t(1070);const{kClients:n,kRunning:i,kClose:s,kDestroy:o,kDispatch:a,kInterceptors:c}=t(5862);const g=t(568);const E=t(9756);const l=t(3498);const Q=t(8657);const B=t(8911);const{WeakRef:h,FinalizationRegistry:C}=t(4017)();const u=Symbol("onConnect");const I=Symbol("onDisconnect");const d=Symbol("onConnectionError");const p=Symbol("maxRedirections");const y=Symbol("onDrain");const D=Symbol("factory");const m=Symbol("finalizer");const w=Symbol("options");function defaultFactory(A,e){return e&&e.connections===1?new l(A,e):new E(A,e)}class Agent extends g{constructor({factory:A=defaultFactory,maxRedirections:e=0,connect:t,...i}={}){super();if(typeof A!=="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(e)||e<0){throw new r("maxRedirections must be a positive number")}if(t&&typeof t!=="function"){t={...t}}this[c]=i.interceptors&&i.interceptors.Agent&&Array.isArray(i.interceptors.Agent)?i.interceptors.Agent:[B({maxRedirections:e})];this[w]={...Q.deepClone(i),connect:t};this[w].interceptors=i.interceptors?{...i.interceptors}:undefined;this[p]=e;this[D]=A;this[n]=new Map;this[m]=new C((A=>{const e=this[n].get(A);if(e!==undefined&&e.deref()===undefined){this[n].delete(A)}}));const s=this;this[y]=(A,e)=>{s.emit("drain",A,[s,...e])};this[u]=(A,e)=>{s.emit("connect",A,[s,...e])};this[I]=(A,e,t)=>{s.emit("disconnect",A,[s,...e],t)};this[d]=(A,e,t)=>{s.emit("connectionError",A,[s,...e],t)}}get[i](){let A=0;for(const e of this[n].values()){const t=e.deref();if(t){A+=t[i]}}return A}[a](A,e){let t;if(A.origin&&(typeof A.origin==="string"||A.origin instanceof URL)){t=String(A.origin)}else{throw new r("opts.origin must be a non-empty string or URL.")}const i=this[n].get(t);let s=i?i.deref():null;if(!s){s=this[D](A.origin,this[w]).on("drain",this[y]).on("connect",this[u]).on("disconnect",this[I]).on("connectionError",this[d]);this[n].set(t,new h(s));this[m].register(s,t)}return s.dispatch(A,e)}async[s](){const A=[];for(const e of this[n].values()){const t=e.deref();if(t){A.push(t.close())}}await Promise.all(A)}async[o](A){const e=[];for(const t of this[n].values()){const r=t.deref();if(r){e.push(r.destroy(A))}}await Promise.all(e)}}A.exports=Agent},8335:(A,e,t)=>{const{addAbortListener:r}=t(8657);const{RequestAbortedError:n}=t(1070);const i=Symbol("kListener");const s=Symbol("kSignal");function abort(A){if(A.abort){A.abort()}else{A.onError(new n)}}function addSignal(A,e){A[s]=null;A[i]=null;if(!e){return}if(e.aborted){abort(A);return}A[s]=e;A[i]=()=>{abort(A)};r(A[s],A[i])}function removeSignal(A){if(!A[s]){return}if("removeEventListener"in A[s]){A[s].removeEventListener("abort",A[i])}else{A[s].removeListener("abort",A[i])}A[s]=null;A[i]=null}A.exports={addSignal:addSignal,removeSignal:removeSignal}},7678:(A,e,t)=>{"use strict";const{AsyncResource:r}=t(852);const{InvalidArgumentError:n,RequestAbortedError:i,SocketError:s}=t(1070);const o=t(8657);const{addSignal:a,removeSignal:c}=t(8335);class ConnectHandler extends r{constructor(A,e){if(!A||typeof A!=="object"){throw new n("invalid opts")}if(typeof e!=="function"){throw new n("invalid callback")}const{signal:t,opaque:r,responseHeaders:i}=A;if(t&&typeof t.on!=="function"&&typeof t.addEventListener!=="function"){throw new n("signal must be an EventEmitter or EventTarget")}super("UNDICI_CONNECT");this.opaque=r||null;this.responseHeaders=i||null;this.callback=e;this.abort=null;a(this,t)}onConnect(A,e){if(!this.callback){throw new i}this.abort=A;this.context=e}onHeaders(){throw new s("bad connect",null)}onUpgrade(A,e,t){const{callback:r,opaque:n,context:i}=this;c(this);this.callback=null;let s=e;if(s!=null){s=this.responseHeaders==="raw"?o.parseRawHeaders(e):o.parseHeaders(e)}this.runInAsyncScope(r,null,null,{statusCode:A,headers:s,socket:t,opaque:n,context:i})}onError(A){const{callback:e,opaque:t}=this;c(this);if(e){this.callback=null;queueMicrotask((()=>{this.runInAsyncScope(e,null,A,{opaque:t})}))}}}function connect(A,e){if(e===undefined){return new Promise(((e,t)=>{connect.call(this,A,((A,r)=>A?t(A):e(r)))}))}try{const t=new ConnectHandler(A,e);this.dispatch({...A,method:"CONNECT"},t)}catch(t){if(typeof e!=="function"){throw t}const r=A&&A.opaque;queueMicrotask((()=>e(t,{opaque:r})))}}A.exports=connect},2758:(A,e,t)=>{"use strict";const{Readable:r,Duplex:n,PassThrough:i}=t(2781);const{InvalidArgumentError:s,InvalidReturnValueError:o,RequestAbortedError:a}=t(1070);const c=t(8657);const{AsyncResource:g}=t(852);const{addSignal:E,removeSignal:l}=t(8335);const Q=t(9491);const B=Symbol("resume");class PipelineRequest extends r{constructor(){super({autoDestroy:true});this[B]=null}_read(){const{[B]:A}=this;if(A){this[B]=null;A()}}_destroy(A,e){this._read();e(A)}}class PipelineResponse extends r{constructor(A){super({autoDestroy:true});this[B]=A}_read(){this[B]()}_destroy(A,e){if(!A&&!this._readableState.endEmitted){A=new a}e(A)}}class PipelineHandler extends g{constructor(A,e){if(!A||typeof A!=="object"){throw new s("invalid opts")}if(typeof e!=="function"){throw new s("invalid handler")}const{signal:t,method:r,opaque:i,onInfo:o,responseHeaders:g}=A;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(o&&typeof o!=="function"){throw new s("invalid onInfo callback")}super("UNDICI_PIPELINE");this.opaque=i||null;this.responseHeaders=g||null;this.handler=e;this.abort=null;this.context=null;this.onInfo=o||null;this.req=(new PipelineRequest).on("error",c.nop);this.ret=new n({readableObjectMode:A.objectMode,autoDestroy:true,read:()=>{const{body:A}=this;if(A&&A.resume){A.resume()}},write:(A,e,t)=>{const{req:r}=this;if(r.push(A,e)||r._readableState.destroyed){t()}else{r[B]=t}},destroy:(A,e)=>{const{body:t,req:r,res:n,ret:i,abort:s}=this;if(!A&&!i._readableState.endEmitted){A=new a}if(s&&A){s()}c.destroy(t,A);c.destroy(r,A);c.destroy(n,A);l(this);e(A)}}).on("prefinish",(()=>{const{req:A}=this;A.push(null)}));this.res=null;E(this,t)}onConnect(A,e){const{ret:t,res:r}=this;Q(!r,"pipeline cannot be retried");if(t.destroyed){throw new a}this.abort=A;this.context=e}onHeaders(A,e,t){const{opaque:r,handler:n,context:i}=this;if(A<200){if(this.onInfo){const t=this.responseHeaders==="raw"?c.parseRawHeaders(e):c.parseHeaders(e);this.onInfo({statusCode:A,headers:t})}return}this.res=new PipelineResponse(t);let s;try{this.handler=null;const t=this.responseHeaders==="raw"?c.parseRawHeaders(e):c.parseHeaders(e);s=this.runInAsyncScope(n,null,{statusCode:A,headers:t,opaque:r,body:this.res,context:i})}catch(A){this.res.on("error",c.nop);throw A}if(!s||typeof s.on!=="function"){throw new o("expected Readable")}s.on("data",(A=>{const{ret:e,body:t}=this;if(!e.push(A)&&t.pause){t.pause()}})).on("error",(A=>{const{ret:e}=this;c.destroy(e,A)})).on("end",(()=>{const{ret:A}=this;A.push(null)})).on("close",(()=>{const{ret:A}=this;if(!A._readableState.ended){c.destroy(A,new a)}}));this.body=s}onData(A){const{res:e}=this;return e.push(A)}onComplete(A){const{res:e}=this;e.push(null)}onError(A){const{ret:e}=this;this.handler=null;c.destroy(e,A)}}function pipeline(A,e){try{const t=new PipelineHandler(A,e);this.dispatch({...A,body:t.req},t);return t.ret}catch(A){return(new i).destroy(A)}}A.exports=pipeline},1468:(A,e,t)=>{"use strict";const r=t(1573);const{InvalidArgumentError:n,RequestAbortedError:i}=t(1070);const s=t(8657);const{getResolveErrorBodyCallback:o}=t(3209);const{AsyncResource:a}=t(852);const{addSignal:c,removeSignal:g}=t(8335);class RequestHandler extends a{constructor(A,e){if(!A||typeof A!=="object"){throw new n("invalid opts")}const{signal:t,method:r,opaque:i,body:o,onInfo:a,responseHeaders:g,throwOnError:E,highWaterMark:l}=A;try{if(typeof e!=="function"){throw new n("invalid callback")}if(l&&(typeof l!=="number"||l<0)){throw new n("invalid highWaterMark")}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(a&&typeof a!=="function"){throw new n("invalid onInfo callback")}super("UNDICI_REQUEST")}catch(A){if(s.isStream(o)){s.destroy(o.on("error",s.nop),A)}throw A}this.responseHeaders=g||null;this.opaque=i||null;this.callback=e;this.res=null;this.abort=null;this.body=o;this.trailers={};this.context=null;this.onInfo=a||null;this.throwOnError=E;this.highWaterMark=l;if(s.isStream(o)){o.on("error",(A=>{this.onError(A)}))}c(this,t)}onConnect(A,e){if(!this.callback){throw new i}this.abort=A;this.context=e}onHeaders(A,e,t,n){const{callback:i,opaque:a,abort:c,context:g,responseHeaders:E,highWaterMark:l}=this;const Q=E==="raw"?s.parseRawHeaders(e):s.parseHeaders(e);if(A<200){if(this.onInfo){this.onInfo({statusCode:A,headers:Q})}return}const B=E==="raw"?s.parseHeaders(e):Q;const h=B["content-type"];const C=new r({resume:t,abort:c,contentType:h,highWaterMark:l});this.callback=null;this.res=C;if(i!==null){if(this.throwOnError&&A>=400){this.runInAsyncScope(o,null,{callback:i,body:C,contentType:h,statusCode:A,statusMessage:n,headers:Q})}else{this.runInAsyncScope(i,null,null,{statusCode:A,headers:Q,trailers:this.trailers,opaque:a,body:C,context:g})}}}onData(A){const{res:e}=this;return e.push(A)}onComplete(A){const{res:e}=this;g(this);s.parseHeaders(A,this.trailers);e.push(null)}onError(A){const{res:e,callback:t,body:r,opaque:n}=this;g(this);if(t){this.callback=null;queueMicrotask((()=>{this.runInAsyncScope(t,null,A,{opaque:n})}))}if(e){this.res=null;queueMicrotask((()=>{s.destroy(e,A)}))}if(r){this.body=null;s.destroy(r,A)}}}function request(A,e){if(e===undefined){return new Promise(((e,t)=>{request.call(this,A,((A,r)=>A?t(A):e(r)))}))}try{this.dispatch(A,new RequestHandler(A,e))}catch(t){if(typeof e!=="function"){throw t}const r=A&&A.opaque;queueMicrotask((()=>e(t,{opaque:r})))}}A.exports=request},209:(A,e,t)=>{"use strict";const{finished:r,PassThrough:n}=t(2781);const{InvalidArgumentError:i,InvalidReturnValueError:s,RequestAbortedError:o}=t(1070);const a=t(8657);const{getResolveErrorBodyCallback:c}=t(3209);const{AsyncResource:g}=t(852);const{addSignal:E,removeSignal:l}=t(8335);class StreamHandler extends g{constructor(A,e,t){if(!A||typeof A!=="object"){throw new i("invalid opts")}const{signal:r,method:n,opaque:s,body:o,onInfo:c,responseHeaders:g,throwOnError:l}=A;try{if(typeof t!=="function"){throw new i("invalid callback")}if(typeof e!=="function"){throw new i("invalid factory")}if(r&&typeof r.on!=="function"&&typeof r.addEventListener!=="function"){throw new i("signal must be an EventEmitter or EventTarget")}if(n==="CONNECT"){throw new i("invalid method")}if(c&&typeof c!=="function"){throw new i("invalid onInfo callback")}super("UNDICI_STREAM")}catch(A){if(a.isStream(o)){a.destroy(o.on("error",a.nop),A)}throw A}this.responseHeaders=g||null;this.opaque=s||null;this.factory=e;this.callback=t;this.res=null;this.abort=null;this.context=null;this.trailers=null;this.body=o;this.onInfo=c||null;this.throwOnError=l||false;if(a.isStream(o)){o.on("error",(A=>{this.onError(A)}))}E(this,r)}onConnect(A,e){if(!this.callback){throw new o}this.abort=A;this.context=e}onHeaders(A,e,t,i){const{factory:o,opaque:g,context:E,callback:l,responseHeaders:Q}=this;const B=Q==="raw"?a.parseRawHeaders(e):a.parseHeaders(e);if(A<200){if(this.onInfo){this.onInfo({statusCode:A,headers:B})}return}this.factory=null;let h;if(this.throwOnError&&A>=400){const t=Q==="raw"?a.parseHeaders(e):B;const r=t["content-type"];h=new n;this.callback=null;this.runInAsyncScope(c,null,{callback:l,body:h,contentType:r,statusCode:A,statusMessage:i,headers:B})}else{h=this.runInAsyncScope(o,null,{statusCode:A,headers:B,opaque:g,context:E});if(!h||typeof h.write!=="function"||typeof h.end!=="function"||typeof h.on!=="function"){throw new s("expected Writable")}r(h,{readable:false},(A=>{const{callback:e,res:t,opaque:r,trailers:n,abort:i}=this;this.res=null;if(A||!t.readable){a.destroy(t,A)}this.callback=null;this.runInAsyncScope(e,null,A||null,{opaque:r,trailers:n});if(A){i()}}))}h.on("drain",t);this.res=h;const C=h.writableNeedDrain!==undefined?h.writableNeedDrain:h._writableState&&h._writableState.needDrain;return C!==true}onData(A){const{res:e}=this;return e.write(A)}onComplete(A){const{res:e}=this;l(this);this.trailers=a.parseHeaders(A);e.end()}onError(A){const{res:e,callback:t,opaque:r,body:n}=this;l(this);this.factory=null;if(e){this.res=null;a.destroy(e,A)}else if(t){this.callback=null;queueMicrotask((()=>{this.runInAsyncScope(t,null,A,{opaque:r})}))}if(n){this.body=null;a.destroy(n,A)}}}function stream(A,e,t){if(t===undefined){return new Promise(((t,r)=>{stream.call(this,A,e,((A,e)=>A?r(A):t(e)))}))}try{this.dispatch(A,new StreamHandler(A,e,t))}catch(e){if(typeof t!=="function"){throw e}const r=A&&A.opaque;queueMicrotask((()=>t(e,{opaque:r})))}}A.exports=stream},9692:(A,e,t)=>{"use strict";const{InvalidArgumentError:r,RequestAbortedError:n,SocketError:i}=t(1070);const{AsyncResource:s}=t(852);const o=t(8657);const{addSignal:a,removeSignal:c}=t(8335);const g=t(9491);class UpgradeHandler extends s{constructor(A,e){if(!A||typeof A!=="object"){throw new r("invalid opts")}if(typeof e!=="function"){throw new r("invalid callback")}const{signal:t,opaque:n,responseHeaders:i}=A;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=i||null;this.opaque=n||null;this.callback=e;this.abort=null;this.context=null;a(this,t)}onConnect(A,e){if(!this.callback){throw new n}this.abort=A;this.context=null}onHeaders(){throw new i("bad upgrade",null)}onUpgrade(A,e,t){const{callback:r,opaque:n,context:i}=this;g.strictEqual(A,101);c(this);this.callback=null;const s=this.responseHeaders==="raw"?o.parseRawHeaders(e):o.parseHeaders(e);this.runInAsyncScope(r,null,null,{headers:s,socket:t,opaque:n,context:i})}onError(A){const{callback:e,opaque:t}=this;c(this);if(e){this.callback=null;queueMicrotask((()=>{this.runInAsyncScope(e,null,A,{opaque:t})}))}}}function upgrade(A,e){if(e===undefined){return new Promise(((e,t)=>{upgrade.call(this,A,((A,r)=>A?t(A):e(r)))}))}try{const t=new UpgradeHandler(A,e);this.dispatch({...A,method:A.method||"GET",upgrade:A.protocol||"Websocket"},t)}catch(t){if(typeof e!=="function"){throw t}const r=A&&A.opaque;queueMicrotask((()=>e(t,{opaque:r})))}}A.exports=upgrade},3219:(A,e,t)=>{"use strict";A.exports.request=t(1468);A.exports.stream=t(209);A.exports.pipeline=t(2758);A.exports.upgrade=t(9692);A.exports.connect=t(7678)},1573:(A,e,t)=>{"use strict";const r=t(9491);const{Readable:n}=t(2781);const{RequestAbortedError:i,NotSupportedError:s,InvalidArgumentError:o}=t(1070);const a=t(8657);const{ReadableStreamFrom:c,toUSVString:g}=t(8657);let E;const l=Symbol("kConsume");const Q=Symbol("kReading");const B=Symbol("kBody");const h=Symbol("abort");const C=Symbol("kContentType");A.exports=class BodyReadable extends n{constructor({resume:A,abort:e,contentType:t="",highWaterMark:r=64*1024}){super({autoDestroy:true,read:A,highWaterMark:r});this._readableState.dataEmitted=false;this[h]=e;this[l]=null;this[B]=null;this[C]=t;this[Q]=false}destroy(A){if(this.destroyed){return this}if(!A&&!this._readableState.endEmitted){A=new i}if(A){this[h]()}return super.destroy(A)}emit(A,...e){if(A==="data"){this._readableState.dataEmitted=true}else if(A==="error"){this._readableState.errorEmitted=true}return super.emit(A,...e)}on(A,...e){if(A==="data"||A==="readable"){this[Q]=true}return super.on(A,...e)}addListener(A,...e){return this.on(A,...e)}off(A,...e){const t=super.off(A,...e);if(A==="data"||A==="readable"){this[Q]=this.listenerCount("data")>0||this.listenerCount("readable")>0}return t}removeListener(A,...e){return this.off(A,...e)}push(A){if(this[l]&&A!==null&&this.readableLength===0){consumePush(this[l],A);return this[Q]?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 s}get bodyUsed(){return a.isDisturbed(this)}get body(){if(!this[B]){this[B]=c(this);if(this[l]){this[B].getReader();r(this[B].locked)}}return this[B]}async dump(A){let e=A&&Number.isFinite(A.limit)?A.limit:262144;const t=A&&A.signal;const abortFn=()=>{this.destroy()};let r;if(t){if(typeof t!=="object"||!("aborted"in t)){throw new o("signal must be an AbortSignal")}a.throwIfAborted(t);r=a.addAbortListener(t,abortFn)}try{for await(const A of this){a.throwIfAborted(t);e-=Buffer.byteLength(A);if(e<0){return}}}catch{a.throwIfAborted(t)}finally{if(typeof r==="function"){r()}else if(r){r[Symbol.dispose]()}}}};function isLocked(A){return A[B]&&A[B].locked===true||A[l]}function isUnusable(A){return a.isDisturbed(A)||isLocked(A)}async function consume(A,e){if(isUnusable(A)){throw new TypeError("unusable")}r(!A[l]);return new Promise(((t,r)=>{A[l]={type:e,stream:A,resolve:t,reject:r,length:0,body:[]};A.on("error",(function(A){consumeFinish(this[l],A)})).on("close",(function(){if(this[l].body!==null){consumeFinish(this[l],new i)}}));process.nextTick(consumeStart,A[l])}))}function consumeStart(A){if(A.body===null){return}const{_readableState:e}=A.stream;for(const t of e.buffer){consumePush(A,t)}if(e.endEmitted){consumeEnd(this[l])}else{A.stream.on("end",(function(){consumeEnd(this[l])}))}A.stream.resume();while(A.stream.read()!=null){}}function consumeEnd(A){const{type:e,body:r,resolve:n,stream:i,length:s}=A;try{if(e==="text"){n(g(Buffer.concat(r)))}else if(e==="json"){n(JSON.parse(Buffer.concat(r)))}else if(e==="arrayBuffer"){const A=new Uint8Array(s);let e=0;for(const t of r){A.set(t,e);e+=t.byteLength}n(A)}else if(e==="blob"){if(!E){E=t(4300).Blob}n(new E(r,{type:i[C]}))}consumeFinish(A)}catch(A){i.destroy(A)}}function consumePush(A,e){A.length+=e.length;A.body.push(e)}function consumeFinish(A,e){if(A.body===null){return}if(e){A.reject(e)}else{A.resolve()}A.type=null;A.stream=null;A.resolve=null;A.reject=null;A.length=0;A.body=null}},3209:(A,e,t)=>{const r=t(9491);const{ResponseStatusCodeError:n}=t(1070);const{toUSVString:i}=t(8657);async function getResolveErrorBodyCallback({callback:A,body:e,contentType:t,statusCode:s,statusMessage:o,headers:a}){r(e);let c=[];let g=0;for await(const A of e){c.push(A);g+=A.length;if(g>128*1024){c=null;break}}if(s===204||!t||!c){process.nextTick(A,new n(`Response status code ${s}${o?`: ${o}`:""}`,s,a));return}try{if(t.startsWith("application/json")){const e=JSON.parse(i(Buffer.concat(c)));process.nextTick(A,new n(`Response status code ${s}${o?`: ${o}`:""}`,s,a,e));return}if(t.startsWith("text/")){const e=i(Buffer.concat(c));process.nextTick(A,new n(`Response status code ${s}${o?`: ${o}`:""}`,s,a,e));return}}catch(A){}process.nextTick(A,new n(`Response status code ${s}${o?`: ${o}`:""}`,s,a))}A.exports={getResolveErrorBodyCallback:getResolveErrorBodyCallback}},9434:(A,e,t)=>{"use strict";const{BalancedPoolMissingUpstreamError:r,InvalidArgumentError:n}=t(1070);const{PoolBase:i,kClients:s,kNeedDrain:o,kAddClient:a,kRemoveClient:c,kGetDispatcher:g}=t(4823);const E=t(9756);const{kUrl:l,kInterceptors:Q}=t(5862);const{parseOrigin:B}=t(8657);const h=Symbol("factory");const C=Symbol("options");const u=Symbol("kGreatestCommonDivisor");const I=Symbol("kCurrentWeight");const d=Symbol("kIndex");const p=Symbol("kWeight");const y=Symbol("kMaxWeightPerServer");const D=Symbol("kErrorPenalty");function getGreatestCommonDivisor(A,e){if(e===0)return A;return getGreatestCommonDivisor(e,A%e)}function defaultFactory(A,e){return new E(A,e)}class BalancedPool extends i{constructor(A=[],{factory:e=defaultFactory,...t}={}){super();this[C]=t;this[d]=-1;this[I]=0;this[y]=this[C].maxWeightPerServer||100;this[D]=this[C].errorPenalty||15;if(!Array.isArray(A)){A=[A]}if(typeof e!=="function"){throw new n("factory must be a function.")}this[Q]=t.interceptors&&t.interceptors.BalancedPool&&Array.isArray(t.interceptors.BalancedPool)?t.interceptors.BalancedPool:[];this[h]=e;for(const e of A){this.addUpstream(e)}this._updateBalancedPoolStats()}addUpstream(A){const e=B(A).origin;if(this[s].find((A=>A[l].origin===e&&A.closed!==true&&A.destroyed!==true))){return this}const t=this[h](e,Object.assign({},this[C]));this[a](t);t.on("connect",(()=>{t[p]=Math.min(this[y],t[p]+this[D])}));t.on("connectionError",(()=>{t[p]=Math.max(1,t[p]-this[D]);this._updateBalancedPoolStats()}));t.on("disconnect",((...A)=>{const e=A[2];if(e&&e.code==="UND_ERR_SOCKET"){t[p]=Math.max(1,t[p]-this[D]);this._updateBalancedPoolStats()}}));for(const A of this[s]){A[p]=this[y]}this._updateBalancedPoolStats();return this}_updateBalancedPoolStats(){this[u]=this[s].map((A=>A[p])).reduce(getGreatestCommonDivisor,0)}removeUpstream(A){const e=B(A).origin;const t=this[s].find((A=>A[l].origin===e&&A.closed!==true&&A.destroyed!==true));if(t){this[c](t)}return this}get upstreams(){return this[s].filter((A=>A.closed!==true&&A.destroyed!==true)).map((A=>A[l].origin))}[g](){if(this[s].length===0){throw new r}const A=this[s].find((A=>!A[o]&&A.closed!==true&&A.destroyed!==true));if(!A){return}const e=this[s].map((A=>A[o])).reduce(((A,e)=>A&&e),true);if(e){return}let t=0;let n=this[s].findIndex((A=>!A[o]));while(t++this[s][n][p]&&!A[o]){n=this[d]}if(this[d]===0){this[I]=this[I]-this[u];if(this[I]<=0){this[I]=this[y]}}if(A[p]>=this[I]&&!A[o]){return A}}this[I]=this[s][n][p];this[d]=n;return this[s][n]}}A.exports=BalancedPool},725:(A,e,t)=>{"use strict";const{kConstruct:r}=t(8283);const{urlEquals:n,fieldValues:i}=t(7807);const{kEnumerableProperty:s,isDisturbed:o}=t(8657);const{kHeadersList:a}=t(5862);const{webidl:c}=t(4161);const{Response:g,cloneResponse:E}=t(4507);const{Request:l}=t(6369);const{kState:Q,kHeaders:B,kGuard:h,kRealm:C}=t(5525);const{fetching:u}=t(3177);const{urlIsHttpHttpsScheme:I,createDeferredPromise:d,readAllBytes:p}=t(2671);const y=t(9491);const{getGlobalDispatcher:D}=t(5230);class Cache{#A;constructor(){if(arguments[0]!==r){c.illegalConstructor()}this.#A=arguments[1]}async match(A,e={}){c.brandCheck(this,Cache);c.argumentLengthCheck(arguments,1,{header:"Cache.match"});A=c.converters.RequestInfo(A);e=c.converters.CacheQueryOptions(e);const t=await this.matchAll(A,e);if(t.length===0){return}return t[0]}async matchAll(A=undefined,e={}){c.brandCheck(this,Cache);if(A!==undefined)A=c.converters.RequestInfo(A);e=c.converters.CacheQueryOptions(e);let t=null;if(A!==undefined){if(A instanceof l){t=A[Q];if(t.method!=="GET"&&!e.ignoreMethod){return[]}}else if(typeof A==="string"){t=new l(A)[Q]}}const r=[];if(A===undefined){for(const A of this.#A){r.push(A[1])}}else{const A=this.#e(t,e);for(const e of A){r.push(e[1])}}const n=[];for(const A of r){const e=new g(A.body?.source??null);const t=e[Q].body;e[Q]=A;e[Q].body=t;e[B][a]=A.headersList;e[B][h]="immutable";n.push(e)}return Object.freeze(n)}async add(A){c.brandCheck(this,Cache);c.argumentLengthCheck(arguments,1,{header:"Cache.add"});A=c.converters.RequestInfo(A);const e=[A];const t=this.addAll(e);return await t}async addAll(A){c.brandCheck(this,Cache);c.argumentLengthCheck(arguments,1,{header:"Cache.addAll"});A=c.converters["sequence"](A);const e=[];const t=[];for(const e of A){if(typeof e==="string"){continue}const A=e[Q];if(!I(A.url)||A.method!=="GET"){throw c.errors.exception({header:"Cache.addAll",message:"Expected http/s scheme when method is not GET."})}}const r=[];for(const n of A){const A=new l(n)[Q];if(!I(A.url)){throw c.errors.exception({header:"Cache.addAll",message:"Expected http/s scheme."})}A.initiator="fetch";A.destination="subresource";t.push(A);const s=d();r.push(u({request:A,dispatcher:D(),processResponse(A){if(A.type==="error"||A.status===206||A.status<200||A.status>299){s.reject(c.errors.exception({header:"Cache.addAll",message:"Received an invalid status code or the request failed."}))}else if(A.headersList.contains("vary")){const e=i(A.headersList.get("vary"));for(const A of e){if(A==="*"){s.reject(c.errors.exception({header:"Cache.addAll",message:"invalid vary field value"}));for(const A of r){A.abort()}return}}}},processResponseEndOfBody(A){if(A.aborted){s.reject(new DOMException("aborted","AbortError"));return}s.resolve(A)}}));e.push(s.promise)}const n=Promise.all(e);const s=await n;const o=[];let a=0;for(const A of s){const e={type:"put",request:t[a],response:A};o.push(e);a++}const g=d();let E=null;try{this.#t(o)}catch(A){E=A}queueMicrotask((()=>{if(E===null){g.resolve(undefined)}else{g.reject(E)}}));return g.promise}async put(A,e){c.brandCheck(this,Cache);c.argumentLengthCheck(arguments,2,{header:"Cache.put"});A=c.converters.RequestInfo(A);e=c.converters.Response(e);let t=null;if(A instanceof l){t=A[Q]}else{t=new l(A)[Q]}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=e[Q];if(r.status===206){throw c.errors.exception({header:"Cache.put",message:"Got 206 status"})}if(r.headersList.contains("vary")){const A=i(r.headersList.get("vary"));for(const e of A){if(e==="*"){throw c.errors.exception({header:"Cache.put",message:"Got * vary field value"})}}}if(r.body&&(o(r.body.stream)||r.body.stream.locked)){throw c.errors.exception({header:"Cache.put",message:"Response body is locked or disturbed"})}const n=E(r);const s=d();if(r.body!=null){const A=r.body.stream;const e=A.getReader();p(e).then(s.resolve,s.reject)}else{s.resolve(undefined)}const a=[];const g={type:"put",request:t,response:n};a.push(g);const B=await s.promise;if(n.body!=null){n.body.source=B}const h=d();let C=null;try{this.#t(a)}catch(A){C=A}queueMicrotask((()=>{if(C===null){h.resolve()}else{h.reject(C)}}));return h.promise}async delete(A,e={}){c.brandCheck(this,Cache);c.argumentLengthCheck(arguments,1,{header:"Cache.delete"});A=c.converters.RequestInfo(A);e=c.converters.CacheQueryOptions(e);let t=null;if(A instanceof l){t=A[Q];if(t.method!=="GET"&&!e.ignoreMethod){return false}}else{y(typeof A==="string");t=new l(A)[Q]}const r=[];const n={type:"delete",request:t,options:e};r.push(n);const i=d();let s=null;let o;try{o=this.#t(r)}catch(A){s=A}queueMicrotask((()=>{if(s===null){i.resolve(!!o?.length)}else{i.reject(s)}}));return i.promise}async keys(A=undefined,e={}){c.brandCheck(this,Cache);if(A!==undefined)A=c.converters.RequestInfo(A);e=c.converters.CacheQueryOptions(e);let t=null;if(A!==undefined){if(A instanceof l){t=A[Q];if(t.method!=="GET"&&!e.ignoreMethod){return[]}}else if(typeof A==="string"){t=new l(A)[Q]}}const r=d();const n=[];if(A===undefined){for(const A of this.#A){n.push(A[0])}}else{const A=this.#e(t,e);for(const e of A){n.push(e[0])}}queueMicrotask((()=>{const A=[];for(const e of n){const t=new l("https://a");t[Q]=e;t[B][a]=e.headersList;t[B][h]="immutable";t[C]=e.client;A.push(t)}r.resolve(Object.freeze(A))}));return r.promise}#t(A){const e=this.#A;const t=[...e];const r=[];const n=[];try{for(const t of A){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.#e(t.request,t.options,r).length){throw new DOMException("???","InvalidStateError")}let A;if(t.type==="delete"){A=this.#e(t.request,t.options);if(A.length===0){return[]}for(const t of A){const A=e.indexOf(t);y(A!==-1);e.splice(A,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 n=t.request;if(!I(n.url)){throw c.errors.exception({header:"Cache.#batchCacheOperations",message:"expected http or https scheme"})}if(n.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"})}A=this.#e(t.request);for(const t of A){const A=e.indexOf(t);y(A!==-1);e.splice(A,1)}e.push([t.request,t.response]);r.push([t.request,t.response])}n.push([t.request,t.response])}return n}catch(A){this.#A.length=0;this.#A=t;throw A}}#e(A,e,t){const r=[];const n=t??this.#A;for(const t of n){const[n,i]=t;if(this.#r(A,n,i,e)){r.push(t)}}return r}#r(A,e,t=null,r){const s=new URL(A.url);const o=new URL(e.url);if(r?.ignoreSearch){o.search="";s.search=""}if(!n(s,o,true)){return false}if(t==null||r?.ignoreVary||!t.headersList.contains("vary")){return true}const a=i(t.headersList.get("vary"));for(const t of a){if(t==="*"){return false}const r=e.headersList.get(t);const n=A.headersList.get(t);if(r!==n){return false}}return true}}Object.defineProperties(Cache.prototype,{[Symbol.toStringTag]:{value:"Cache",configurable:true},match:s,matchAll:s,add:s,addAll:s,put:s,delete:s,keys:s});const m=[{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(m);c.converters.MultiCacheQueryOptions=c.dictionaryConverter([...m,{key:"cacheName",converter:c.converters.DOMString}]);c.converters.Response=c.interfaceConverter(g);c.converters["sequence"]=c.sequenceConverter(c.converters.RequestInfo);A.exports={Cache:Cache}},1520:(A,e,t)=>{"use strict";const{kConstruct:r}=t(8283);const{Cache:n}=t(725);const{webidl:i}=t(4161);const{kEnumerableProperty:s}=t(8657);class CacheStorage{#n=new Map;constructor(){if(arguments[0]!==r){i.illegalConstructor()}}async match(A,e={}){i.brandCheck(this,CacheStorage);i.argumentLengthCheck(arguments,1,{header:"CacheStorage.match"});A=i.converters.RequestInfo(A);e=i.converters.MultiCacheQueryOptions(e);if(e.cacheName!=null){if(this.#n.has(e.cacheName)){const t=this.#n.get(e.cacheName);const i=new n(r,t);return await i.match(A,e)}}else{for(const t of this.#n.values()){const i=new n(r,t);const s=await i.match(A,e);if(s!==undefined){return s}}}}async has(A){i.brandCheck(this,CacheStorage);i.argumentLengthCheck(arguments,1,{header:"CacheStorage.has"});A=i.converters.DOMString(A);return this.#n.has(A)}async open(A){i.brandCheck(this,CacheStorage);i.argumentLengthCheck(arguments,1,{header:"CacheStorage.open"});A=i.converters.DOMString(A);if(this.#n.has(A)){const e=this.#n.get(A);return new n(r,e)}const e=[];this.#n.set(A,e);return new n(r,e)}async delete(A){i.brandCheck(this,CacheStorage);i.argumentLengthCheck(arguments,1,{header:"CacheStorage.delete"});A=i.converters.DOMString(A);return this.#n.delete(A)}async keys(){i.brandCheck(this,CacheStorage);const A=this.#n.keys();return[...A]}}Object.defineProperties(CacheStorage.prototype,{[Symbol.toStringTag]:{value:"CacheStorage",configurable:true},match:s,has:s,open:s,delete:s,keys:s});A.exports={CacheStorage:CacheStorage}},8283:A=>{"use strict";A.exports={kConstruct:Symbol("constructable")}},7807:(A,e,t)=>{"use strict";const r=t(9491);const{URLSerializer:n}=t(1353);const{isValidHeaderName:i}=t(2671);function urlEquals(A,e,t=false){const r=n(A,t);const i=n(e,t);return r===i}function fieldValues(A){r(A!==null);const e=[];for(let t of A.split(",")){t=t.trim();if(!t.length){continue}else if(!i(t)){continue}e.push(t)}return e}A.exports={urlEquals:urlEquals,fieldValues:fieldValues}},3498:(A,e,t)=>{"use strict";const r=t(9491);const n=t(1808);const i=t(3685);const{pipeline:s}=t(2781);const o=t(8657);const a=t(6020);const c=t(5933);const g=t(568);const{RequestContentLengthMismatchError:E,ResponseContentLengthMismatchError:l,InvalidArgumentError:Q,RequestAbortedError:B,HeadersTimeoutError:h,HeadersOverflowError:C,SocketError:u,InformationalError:I,BodyTimeoutError:d,HTTPParserError:p,ResponseExceededMaxSizeError:y,ClientDestroyedError:D}=t(1070);const m=t(6150);const{kUrl:w,kReset:R,kServerName:b,kClient:k,kBusy:F,kParser:S,kConnect:N,kBlocking:U,kResuming:v,kRunning:L,kPending:M,kSize:T,kWriting:G,kQueue:Y,kConnected:H,kConnecting:x,kNeedDrain:J,kNoRef:V,kKeepAliveDefaultTimeout:O,kHostHeader:_,kPendingIdx:P,kRunningIdx:q,kError:W,kPipelining:j,kSocket:Z,kKeepAliveTimeoutValue:z,kMaxHeadersSize:X,kKeepAliveMaxTimeout:K,kKeepAliveTimeoutThreshold:$,kHeadersTimeout:AA,kBodyTimeout:eA,kStrictContentLength:tA,kConnector:rA,kMaxRedirections:nA,kMaxRequests:iA,kCounter:sA,kClose:oA,kDestroy:aA,kDispatch:cA,kInterceptors:gA,kLocalAddress:EA,kMaxResponseSize:lA,kHTTPConnVersion:QA,kHost:BA,kHTTP2Session:hA,kHTTP2SessionState:CA,kHTTP2BuildRequest:uA,kHTTP2CopyHeaders:IA,kHTTP1BuildRequest:dA}=t(5862);let fA;try{fA=t(5158)}catch{fA={constants:{}}}const{constants:{HTTP2_HEADER_AUTHORITY:pA,HTTP2_HEADER_METHOD:yA,HTTP2_HEADER_PATH:DA,HTTP2_HEADER_SCHEME:mA,HTTP2_HEADER_CONTENT_LENGTH:wA,HTTP2_HEADER_EXPECT:RA,HTTP2_HEADER_STATUS:bA}}=fA;let kA=false;const FA=Buffer[Symbol.species];const SA=Symbol("kClosedResolve");const NA={};try{const A=t(7643);NA.sendHeaders=A.channel("undici:client:sendHeaders");NA.beforeConnect=A.channel("undici:client:beforeConnect");NA.connectError=A.channel("undici:client:connectError");NA.connected=A.channel("undici:client:connected")}catch{NA.sendHeaders={hasSubscribers:false};NA.beforeConnect={hasSubscribers:false};NA.connectError={hasSubscribers:false};NA.connected={hasSubscribers:false}}class Client extends g{constructor(A,{interceptors:e,maxHeaderSize:t,headersTimeout:r,socketTimeout:s,requestTimeout:a,connectTimeout:c,bodyTimeout:g,idleTimeout:E,keepAlive:l,keepAliveTimeout:B,maxKeepAliveTimeout:h,keepAliveMaxTimeout:C,keepAliveTimeoutThreshold:u,socketPath:I,pipelining:d,tls:p,strictContentLength:y,maxCachedSessions:D,maxRedirections:R,connect:k,maxRequestsPerClient:F,localAddress:S,maxResponseSize:N,autoSelectFamily:U,autoSelectFamilyAttemptTimeout:L,allowH2:M,maxConcurrentStreams:T}={}){super();if(l!==undefined){throw new Q("unsupported keepAlive, use pipelining=0 instead")}if(s!==undefined){throw new Q("unsupported socketTimeout, use headersTimeout & bodyTimeout instead")}if(a!==undefined){throw new Q("unsupported requestTimeout, use headersTimeout & bodyTimeout instead")}if(E!==undefined){throw new Q("unsupported idleTimeout, use keepAliveTimeout instead")}if(h!==undefined){throw new Q("unsupported maxKeepAliveTimeout, use keepAliveMaxTimeout instead")}if(t!=null&&!Number.isFinite(t)){throw new Q("invalid maxHeaderSize")}if(I!=null&&typeof I!=="string"){throw new Q("invalid socketPath")}if(c!=null&&(!Number.isFinite(c)||c<0)){throw new Q("invalid connectTimeout")}if(B!=null&&(!Number.isFinite(B)||B<=0)){throw new Q("invalid keepAliveTimeout")}if(C!=null&&(!Number.isFinite(C)||C<=0)){throw new Q("invalid keepAliveMaxTimeout")}if(u!=null&&!Number.isFinite(u)){throw new Q("invalid keepAliveTimeoutThreshold")}if(r!=null&&(!Number.isInteger(r)||r<0)){throw new Q("headersTimeout must be a positive integer or zero")}if(g!=null&&(!Number.isInteger(g)||g<0)){throw new Q("bodyTimeout must be a positive integer or zero")}if(k!=null&&typeof k!=="function"&&typeof k!=="object"){throw new Q("connect must be a function or an object")}if(R!=null&&(!Number.isInteger(R)||R<0)){throw new Q("maxRedirections must be a positive number")}if(F!=null&&(!Number.isInteger(F)||F<0)){throw new Q("maxRequestsPerClient must be a positive number")}if(S!=null&&(typeof S!=="string"||n.isIP(S)===0)){throw new Q("localAddress must be valid string IP address")}if(N!=null&&(!Number.isInteger(N)||N<-1)){throw new Q("maxResponseSize must be a positive number")}if(L!=null&&(!Number.isInteger(L)||L<-1)){throw new Q("autoSelectFamilyAttemptTimeout must be a positive number")}if(M!=null&&typeof M!=="boolean"){throw new Q("allowH2 must be a valid boolean value")}if(T!=null&&(typeof T!=="number"||T<1)){throw new Q("maxConcurrentStreams must be a possitive integer, greater than 0")}if(typeof k!=="function"){k=m({...p,maxCachedSessions:D,allowH2:M,socketPath:I,timeout:c,...o.nodeHasAutoSelectFamily&&U?{autoSelectFamily:U,autoSelectFamilyAttemptTimeout:L}:undefined,...k})}this[gA]=e&&e.Client&&Array.isArray(e.Client)?e.Client:[vA({maxRedirections:R})];this[w]=o.parseOrigin(A);this[rA]=k;this[Z]=null;this[j]=d!=null?d:1;this[X]=t||i.maxHeaderSize;this[O]=B==null?4e3:B;this[K]=C==null?6e5:C;this[$]=u==null?1e3:u;this[z]=this[O];this[b]=null;this[EA]=S!=null?S:null;this[v]=0;this[J]=0;this[_]=`host: ${this[w].hostname}${this[w].port?`:${this[w].port}`:""}\r\n`;this[eA]=g!=null?g:3e5;this[AA]=r!=null?r:3e5;this[tA]=y==null?true:y;this[nA]=R;this[iA]=F;this[SA]=null;this[lA]=N>-1?N:-1;this[QA]="h1";this[hA]=null;this[CA]=!M?null:{openStreams:0,maxConcurrentStreams:T!=null?T:100};this[BA]=`${this[w].hostname}${this[w].port?`:${this[w].port}`:""}`;this[Y]=[];this[q]=0;this[P]=0}get pipelining(){return this[j]}set pipelining(A){this[j]=A;resume(this,true)}get[M](){return this[Y].length-this[P]}get[L](){return this[P]-this[q]}get[T](){return this[Y].length-this[q]}get[H](){return!!this[Z]&&!this[x]&&!this[Z].destroyed}get[F](){const A=this[Z];return A&&(A[R]||A[G]||A[U])||this[T]>=(this[j]||1)||this[M]>0}[N](A){connect(this);this.once("connect",A)}[cA](A,e){const t=A.origin||this[w].origin;const r=this[QA]==="h2"?c[uA](t,A,e):c[dA](t,A,e);this[Y].push(r);if(this[v]){}else if(o.bodyLength(r.body)==null&&o.isIterable(r.body)){this[v]=1;process.nextTick(resume,this)}else{resume(this,true)}if(this[v]&&this[J]!==2&&this[F]){this[J]=2}return this[J]<2}async[oA](){return new Promise((A=>{if(!this[T]){A(null)}else{this[SA]=A}}))}async[aA](A){return new Promise((e=>{const t=this[Y].splice(this[P]);for(let e=0;e{if(this[SA]){this[SA]();this[SA]=null}e()};if(this[hA]!=null){o.destroy(this[hA],A);this[hA]=null;this[CA]=null}if(!this[Z]){queueMicrotask(callback)}else{o.destroy(this[Z].on("close",callback),A)}resume(this)}))}}function onHttp2SessionError(A){r(A.code!=="ERR_TLS_CERT_ALTNAME_INVALID");this[Z][W]=A;onError(this[k],A)}function onHttp2FrameError(A,e,t){const r=new I(`HTTP/2: "frameError" received - type ${A}, code ${e}`);if(t===0){this[Z][W]=r;onError(this[k],r)}}function onHttp2SessionEnd(){o.destroy(this,new u("other side closed"));o.destroy(this[Z],new u("other side closed"))}function onHTTP2GoAway(A){const e=this[k];const t=new I(`HTTP/2: "GOAWAY" frame received with code ${A}`);e[Z]=null;e[hA]=null;if(e.destroyed){r(this[M]===0);const A=e[Y].splice(e[q]);for(let e=0;e0){const A=e[Y][e[q]];e[Y][e[q]++]=null;errorRequest(e,A,t)}e[P]=e[q];r(e[L]===0);e.emit("disconnect",e[w],[e],t);resume(e)}const UA=t(2381);const vA=t(8911);const LA=Buffer.alloc(0);async function lazyllhttp(){const A=process.env.JEST_WORKER_ID?t(3938):undefined;let e;try{e=await WebAssembly.compile(Buffer.from(t(6249),"base64"))}catch(r){e=await WebAssembly.compile(Buffer.from(A||t(3938),"base64"))}return await WebAssembly.instantiate(e,{env:{wasm_on_url:(A,e,t)=>0,wasm_on_status:(A,e,t)=>{r.strictEqual(GA.ptr,A);const n=e-xA+YA.byteOffset;return GA.onStatus(new FA(YA.buffer,n,t))||0},wasm_on_message_begin:A=>{r.strictEqual(GA.ptr,A);return GA.onMessageBegin()||0},wasm_on_header_field:(A,e,t)=>{r.strictEqual(GA.ptr,A);const n=e-xA+YA.byteOffset;return GA.onHeaderField(new FA(YA.buffer,n,t))||0},wasm_on_header_value:(A,e,t)=>{r.strictEqual(GA.ptr,A);const n=e-xA+YA.byteOffset;return GA.onHeaderValue(new FA(YA.buffer,n,t))||0},wasm_on_headers_complete:(A,e,t,n)=>{r.strictEqual(GA.ptr,A);return GA.onHeadersComplete(e,Boolean(t),Boolean(n))||0},wasm_on_body:(A,e,t)=>{r.strictEqual(GA.ptr,A);const n=e-xA+YA.byteOffset;return GA.onBody(new FA(YA.buffer,n,t))||0},wasm_on_message_complete:A=>{r.strictEqual(GA.ptr,A);return GA.onMessageComplete()||0}}})}let MA=null;let TA=lazyllhttp();TA.catch();let GA=null;let YA=null;let HA=0;let xA=null;const JA=1;const VA=2;const OA=3;class Parser{constructor(A,e,{exports:t}){r(Number.isFinite(A[X])&&A[X]>0);this.llhttp=t;this.ptr=this.llhttp.llhttp_alloc(UA.TYPE.RESPONSE);this.client=A;this.socket=e;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[X];this.shouldKeepAlive=false;this.paused=false;this.resume=this.resume.bind(this);this.bytesRead=0;this.keepAlive="";this.contentLength="";this.connection="";this.maxResponseSize=A[lA]}setTimeout(A,e){this.timeoutType=e;if(A!==this.timeoutValue){a.clearTimeout(this.timeout);if(A){this.timeout=a.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}r(this.ptr!=null);r(GA==null);this.llhttp.llhttp_resume(this.ptr);r(this.timeoutType===VA);if(this.timeout){if(this.timeout.refresh){this.timeout.refresh()}}this.paused=false;this.execute(this.socket.read()||LA);this.readMore()}readMore(){while(!this.paused&&this.ptr){const A=this.socket.read();if(A===null){break}this.execute(A)}}execute(A){r(this.ptr!=null);r(GA==null);r(!this.paused);const{socket:e,llhttp:t}=this;if(A.length>HA){if(xA){t.free(xA)}HA=Math.ceil(A.length/4096)*4096;xA=t.malloc(HA)}new Uint8Array(t.memory.buffer,xA,HA).set(A);try{let r;try{YA=A;GA=this;r=t.llhttp_execute(this.ptr,xA,A.length)}catch(A){throw A}finally{GA=null;YA=null}const n=t.llhttp_get_error_pos(this.ptr)-xA;if(r===UA.ERROR.PAUSED_UPGRADE){this.onUpgrade(A.slice(n))}else if(r===UA.ERROR.PAUSED){this.paused=true;e.unshift(A.slice(n))}else if(r!==UA.ERROR.OK){const e=t.llhttp_get_error_reason(this.ptr);let i="";if(e){const A=new Uint8Array(t.memory.buffer,e).indexOf(0);i="Response does not match the HTTP/1.1 protocol ("+Buffer.from(t.memory.buffer,e,A).toString()+")"}throw new p(i,UA.ERROR[r],A.slice(n))}}catch(A){o.destroy(e,A)}}destroy(){r(this.ptr!=null);r(GA==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(A){this.statusText=A.toString()}onMessageBegin(){const{socket:A,client:e}=this;if(A.destroyed){return-1}const t=e[Y][e[q]];if(!t){return-1}}onHeaderField(A){const e=this.headers.length;if((e&1)===0){this.headers.push(A)}else{this.headers[e-1]=Buffer.concat([this.headers[e-1],A])}this.trackHeader(A.length)}onHeaderValue(A){let e=this.headers.length;if((e&1)===1){this.headers.push(A);e+=1}else{this.headers[e-1]=Buffer.concat([this.headers[e-1],A])}const t=this.headers[e-2];if(t.length===10&&t.toString().toLowerCase()==="keep-alive"){this.keepAlive+=A.toString()}else if(t.length===10&&t.toString().toLowerCase()==="connection"){this.connection+=A.toString()}else if(t.length===14&&t.toString().toLowerCase()==="content-length"){this.contentLength+=A.toString()}this.trackHeader(A.length)}trackHeader(A){this.headersSize+=A;if(this.headersSize>=this.headersMaxSize){o.destroy(this.socket,new C)}}onUpgrade(A){const{upgrade:e,client:t,socket:n,headers:i,statusCode:s}=this;r(e);const a=t[Y][t[q]];r(a);r(!n.destroyed);r(n===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;n.unshift(A);n[S].destroy();n[S]=null;n[k]=null;n[W]=null;n.removeListener("error",onSocketError).removeListener("readable",onSocketReadable).removeListener("end",onSocketEnd).removeListener("close",onSocketClose);t[Z]=null;t[Y][t[q]++]=null;t.emit("disconnect",t[w],[t],new I("upgrade"));try{a.onUpgrade(s,i,n)}catch(A){o.destroy(n,A)}resume(t)}onHeadersComplete(A,e,t){const{client:n,socket:i,headers:s,statusText:a}=this;if(i.destroyed){return-1}const c=n[Y][n[q]];if(!c){return-1}r(!this.upgrade);r(this.statusCode<200);if(A===100){o.destroy(i,new u("bad response",o.getSocketInfo(i)));return-1}if(e&&!c.upgrade){o.destroy(i,new u("bad upgrade",o.getSocketInfo(i)));return-1}r.strictEqual(this.timeoutType,JA);this.statusCode=A;this.shouldKeepAlive=t||c.method==="HEAD"&&!i[R]&&this.connection.toLowerCase()==="keep-alive";if(this.statusCode>=200){const A=c.bodyTimeout!=null?c.bodyTimeout:n[eA];this.setTimeout(A,VA)}else if(this.timeout){if(this.timeout.refresh){this.timeout.refresh()}}if(c.method==="CONNECT"){r(n[L]===1);this.upgrade=true;return 2}if(e){r(n[L]===1);this.upgrade=true;return 2}r(this.headers.length%2===0);this.headers=[];this.headersSize=0;if(this.shouldKeepAlive&&n[j]){const A=this.keepAlive?o.parseKeepAliveTimeout(this.keepAlive):null;if(A!=null){const e=Math.min(A-n[$],n[K]);if(e<=0){i[R]=true}else{n[z]=e}}else{n[z]=n[O]}}else{i[R]=true}let g;try{g=c.onHeaders(A,s,this.resume,a)===false}catch(A){o.destroy(i,A);return-1}if(c.method==="HEAD"){return 1}if(A<200){return 1}if(i[U]){i[U]=false;resume(n)}return g?UA.ERROR.PAUSED:0}onBody(A){const{client:e,socket:t,statusCode:n,maxResponseSize:i}=this;if(t.destroyed){return-1}const s=e[Y][e[q]];r(s);r.strictEqual(this.timeoutType,VA);if(this.timeout){if(this.timeout.refresh){this.timeout.refresh()}}r(n>=200);if(i>-1&&this.bytesRead+A.length>i){o.destroy(t,new y);return-1}this.bytesRead+=A.length;try{if(s.onData(A)===false){return UA.ERROR.PAUSED}}catch(A){o.destroy(t,A);return-1}}onMessageComplete(){const{client:A,socket:e,statusCode:t,upgrade:n,headers:i,contentLength:s,bytesRead:a,shouldKeepAlive:c}=this;if(e.destroyed&&(!t||c)){return-1}if(n){return}const g=A[Y][A[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"&&s&&a!==parseInt(s,10)){o.destroy(e,new l);return-1}try{g.onComplete(i)}catch(e){errorRequest(A,g,e)}A[Y][A[q]++]=null;if(e[G]){r.strictEqual(A[L],0);o.destroy(e,new I("reset"));return UA.ERROR.PAUSED}else if(!c){o.destroy(e,new I("reset"));return UA.ERROR.PAUSED}else if(e[R]&&A[L]===0){o.destroy(e,new I("reset"));return UA.ERROR.PAUSED}else if(A[j]===1){setImmediate(resume,A)}else{resume(A)}}}function onParserTimeout(A){const{socket:e,timeoutType:t,client:n}=A;if(t===JA){if(!e[G]||e.writableNeedDrain||n[L]>1){r(!A.paused,"cannot be paused while waiting for headers");o.destroy(e,new h)}}else if(t===VA){if(!A.paused){o.destroy(e,new d)}}else if(t===OA){r(n[L]===0&&n[z]);o.destroy(e,new I("socket idle timeout"))}}function onSocketReadable(){const{[S]:A}=this;A.readMore()}function onSocketError(A){const{[k]:e,[S]:t}=this;r(A.code!=="ERR_TLS_CERT_ALTNAME_INVALID");if(e[QA]!=="h2"){if(A.code==="ECONNRESET"&&t.statusCode&&!t.shouldKeepAlive){t.onMessageComplete();return}}this[W]=A;onError(this[k],A)}function onError(A,e){if(A[L]===0&&e.code!=="UND_ERR_INFO"&&e.code!=="UND_ERR_SOCKET"){r(A[P]===A[q]);const t=A[Y].splice(A[q]);for(let r=0;r0&&t.code!=="UND_ERR_INFO"){const e=A[Y][A[q]];A[Y][A[q]++]=null;errorRequest(A,e,t)}A[P]=A[q];r(A[L]===0);A.emit("disconnect",A[w],[A],t);resume(A)}async function connect(A){r(!A[x]);r(!A[Z]);let{host:e,hostname:t,protocol:i,port:s}=A[w];if(t[0]==="["){const A=t.indexOf("]");r(A!==-1);const e=t.substr(1,A-1);r(n.isIP(e));t=e}A[x]=true;if(NA.beforeConnect.hasSubscribers){NA.beforeConnect.publish({connectParams:{host:e,hostname:t,protocol:i,port:s,servername:A[b],localAddress:A[EA]},connector:A[rA]})}try{const n=await new Promise(((r,n)=>{A[rA]({host:e,hostname:t,protocol:i,port:s,servername:A[b],localAddress:A[EA]},((A,e)=>{if(A){n(A)}else{r(e)}}))}));if(A.destroyed){o.destroy(n.on("error",(()=>{})),new D);return}A[x]=false;r(n);const a=n.alpnProtocol==="h2";if(a){if(!kA){kA=true;process.emitWarning("H2 support is experimental, expect them to change at any time.",{code:"UNDICI-H2"})}const e=fA.connect(A[w],{createConnection:()=>n,peerMaxConcurrentStreams:A[CA].maxConcurrentStreams});A[QA]="h2";e[k]=A;e[Z]=n;e.on("error",onHttp2SessionError);e.on("frameError",onHttp2FrameError);e.on("end",onHttp2SessionEnd);e.on("goaway",onHTTP2GoAway);e.on("close",onSocketClose);e.unref();A[hA]=e;n[hA]=e}else{if(!MA){MA=await TA;TA=null}n[V]=false;n[G]=false;n[R]=false;n[U]=false;n[S]=new Parser(A,n,MA)}n[sA]=0;n[iA]=A[iA];n[k]=A;n[W]=null;n.on("error",onSocketError).on("readable",onSocketReadable).on("end",onSocketEnd).on("close",onSocketClose);A[Z]=n;if(NA.connected.hasSubscribers){NA.connected.publish({connectParams:{host:e,hostname:t,protocol:i,port:s,servername:A[b],localAddress:A[EA]},connector:A[rA],socket:n})}A.emit("connect",A[w],[A])}catch(n){if(A.destroyed){return}A[x]=false;if(NA.connectError.hasSubscribers){NA.connectError.publish({connectParams:{host:e,hostname:t,protocol:i,port:s,servername:A[b],localAddress:A[EA]},connector:A[rA],error:n})}if(n.code==="ERR_TLS_CERT_ALTNAME_INVALID"){r(A[L]===0);while(A[M]>0&&A[Y][A[P]].servername===A[b]){const e=A[Y][A[P]++];errorRequest(A,e,n)}}else{onError(A,n)}A.emit("connectionError",A[w],[A],n)}resume(A)}function emitDrain(A){A[J]=0;A.emit("drain",A[w],[A])}function resume(A,e){if(A[v]===2){return}A[v]=2;_resume(A,e);A[v]=0;if(A[q]>256){A[Y].splice(0,A[q]);A[P]-=A[q];A[q]=0}}function _resume(A,e){while(true){if(A.destroyed){r(A[M]===0);return}if(A[SA]&&!A[T]){A[SA]();A[SA]=null;return}const t=A[Z];if(t&&!t.destroyed&&t.alpnProtocol!=="h2"){if(A[T]===0){if(!t[V]&&t.unref){t.unref();t[V]=true}}else if(t[V]&&t.ref){t.ref();t[V]=false}if(A[T]===0){if(t[S].timeoutType!==OA){t[S].setTimeout(A[z],OA)}}else if(A[L]>0&&t[S].statusCode<200){if(t[S].timeoutType!==JA){const e=A[Y][A[q]];const r=e.headersTimeout!=null?e.headersTimeout:A[AA];t[S].setTimeout(r,JA)}}}if(A[F]){A[J]=2}else if(A[J]===2){if(e){A[J]=1;process.nextTick(emitDrain,A)}else{emitDrain(A)}continue}if(A[M]===0){return}if(A[L]>=(A[j]||1)){return}const n=A[Y][A[P]];if(A[w].protocol==="https:"&&A[b]!==n.servername){if(A[L]>0){return}A[b]=n.servername;if(t&&t.servername!==n.servername){o.destroy(t,new I("servername changed"));return}}if(A[x]){return}if(!t&&!A[hA]){connect(A);return}if(t.destroyed||t[G]||t[R]||t[U]){return}if(A[L]>0&&!n.idempotent){return}if(A[L]>0&&(n.upgrade||n.method==="CONNECT")){return}if(o.isStream(n.body)&&o.bodyLength(n.body)===0){n.body.on("data",(function(){r(false)})).on("error",(function(e){errorRequest(A,n,e)})).on("end",(function(){o.destroy(this)}));n.body=null}if(A[L]>0&&(o.isStream(n.body)||o.isAsyncIterable(n.body))){return}if(!n.aborted&&write(A,n)){A[P]++}else{A[Y].splice(A[P],1)}}}function write(A,e){if(A[QA]==="h2"){writeH2(A,A[hA],e);return}const{body:t,method:n,path:i,host:s,upgrade:a,headers:c,blocking:g,reset:l}=e;const Q=n==="PUT"||n==="POST"||n==="PATCH";if(t&&typeof t.read==="function"){t.read(0)}let h=o.bodyLength(t);if(h===null){h=e.contentLength}if(h===0&&!Q){h=null}if(e.contentLength!==null&&e.contentLength!==h){if(A[tA]){errorRequest(A,e,new E);return false}process.emitWarning(new E)}const C=A[Z];try{e.onConnect((t=>{if(e.aborted||e.completed){return}errorRequest(A,e,t||new B);o.destroy(C,new I("aborted"))}))}catch(t){errorRequest(A,e,t)}if(e.aborted){return false}if(n==="HEAD"){C[R]=true}if(a||n==="CONNECT"){C[R]=true}if(l!=null){C[R]=l}if(A[iA]&&C[sA]++>=A[iA]){C[R]=true}if(g){C[U]=true}let u=`${n} ${i} HTTP/1.1\r\n`;if(typeof s==="string"){u+=`host: ${s}\r\n`}else{u+=A[_]}if(a){u+=`connection: upgrade\r\nupgrade: ${a}\r\n`}else if(A[j]&&!C[R]){u+="connection: keep-alive\r\n"}else{u+="connection: close\r\n"}if(c){u+=c}if(NA.sendHeaders.hasSubscribers){NA.sendHeaders.publish({request:e,headers:u,socket:C})}if(!t){if(h===0){C.write(`${u}content-length: 0\r\n\r\n`,"latin1")}else{r(h===null,"no body must not have content length");C.write(`${u}\r\n`,"latin1")}e.onRequestSent()}else if(o.isBuffer(t)){r(h===t.byteLength,"buffer body must have content length");C.cork();C.write(`${u}content-length: ${h}\r\n\r\n`,"latin1");C.write(t);C.uncork();e.onBodySent(t);e.onRequestSent();if(!Q){C[R]=true}}else if(o.isBlobLike(t)){if(typeof t.stream==="function"){writeIterable({body:t.stream(),client:A,request:e,socket:C,contentLength:h,header:u,expectsPayload:Q})}else{writeBlob({body:t,client:A,request:e,socket:C,contentLength:h,header:u,expectsPayload:Q})}}else if(o.isStream(t)){writeStream({body:t,client:A,request:e,socket:C,contentLength:h,header:u,expectsPayload:Q})}else if(o.isIterable(t)){writeIterable({body:t,client:A,request:e,socket:C,contentLength:h,header:u,expectsPayload:Q})}else{r(false)}return true}function writeH2(A,e,t){const{body:n,method:i,path:s,host:a,upgrade:g,expectContinue:l,signal:Q,headers:h}=t;let C;if(typeof h==="string")C=c[IA](h.trim());else C=h;if(g){errorRequest(A,t,new Error("Upgrade not supported for H2"));return false}try{t.onConnect((e=>{if(t.aborted||t.completed){return}errorRequest(A,t,e||new B)}))}catch(e){errorRequest(A,t,e)}if(t.aborted){return false}let u;const d=A[CA];C[pA]=a||A[BA];C[yA]=i;if(i==="CONNECT"){e.ref();u=e.request(C,{endStream:false,signal:Q});if(u.id&&!u.pending){t.onUpgrade(null,null,u);++d.openStreams}else{u.once("ready",(()=>{t.onUpgrade(null,null,u);++d.openStreams}))}u.once("close",(()=>{d.openStreams-=1;if(d.openStreams===0)e.unref()}));return true}C[DA]=s;C[mA]="https";const p=i==="PUT"||i==="POST"||i==="PATCH";if(n&&typeof n.read==="function"){n.read(0)}let y=o.bodyLength(n);if(y==null){y=t.contentLength}if(y===0||!p){y=null}if(t.contentLength!=null&&t.contentLength!==y){if(A[tA]){errorRequest(A,t,new E);return false}process.emitWarning(new E)}if(y!=null){r(n,"no body must not have content length");C[wA]=`${y}`}e.ref();const D=i==="GET"||i==="HEAD";if(l){C[RA]="100-continue";u=e.request(C,{endStream:D,signal:Q});u.once("continue",writeBodyH2)}else{u=e.request(C,{endStream:D,signal:Q});writeBodyH2()}++d.openStreams;u.once("response",(A=>{if(t.onHeaders(Number(A[bA]),A,u.resume.bind(u),"")===false){u.pause()}}));u.once("end",(()=>{t.onComplete([])}));u.on("data",(A=>{if(t.onData(A)===false)u.pause()}));u.once("close",(()=>{d.openStreams-=1;if(d.openStreams===0)e.unref()}));u.once("error",(function(e){if(A[hA]&&!A[hA].destroyed&&!this.closed&&!this.destroyed){d.streams-=1;o.destroy(u,e)}}));u.once("frameError",((e,r)=>{const n=new I(`HTTP/2: "frameError" received - type ${e}, code ${r}`);errorRequest(A,t,n);if(A[hA]&&!A[hA].destroyed&&!this.closed&&!this.destroyed){d.streams-=1;o.destroy(u,n)}}));return true;function writeBodyH2(){if(!n){t.onRequestSent()}else if(o.isBuffer(n)){r(y===n.byteLength,"buffer body must have content length");u.cork();u.write(n);u.uncork();u.end();t.onBodySent(n);t.onRequestSent()}else if(o.isBlobLike(n)){if(typeof n.stream==="function"){writeIterable({client:A,request:t,contentLength:y,h2stream:u,expectsPayload:p,body:n.stream(),socket:A[Z],header:""})}else{writeBlob({body:n,client:A,request:t,contentLength:y,expectsPayload:p,h2stream:u,header:"",socket:A[Z]})}}else if(o.isStream(n)){writeStream({body:n,client:A,request:t,contentLength:y,expectsPayload:p,socket:A[Z],h2stream:u,header:""})}else if(o.isIterable(n)){writeIterable({body:n,client:A,request:t,contentLength:y,expectsPayload:p,header:"",h2stream:u,socket:A[Z]})}else{r(false)}}}function writeStream({h2stream:A,body:e,client:t,request:n,socket:i,contentLength:a,header:c,expectsPayload:g}){r(a!==0||t[L]===0,"stream body cannot be pipelined");if(t[QA]==="h2"){const Q=s(e,A,(t=>{if(t){o.destroy(e,t);o.destroy(A,t)}else{n.onRequestSent()}}));Q.on("data",onPipeData);Q.once("end",(()=>{Q.removeListener("data",onPipeData);o.destroy(Q)}));function onPipeData(A){n.onBodySent(A)}return}let E=false;const l=new AsyncWriter({socket:i,request:n,contentLength:a,client:t,expectsPayload:g,header:c});const onData=function(A){if(E){return}try{if(!l.write(A)&&this.pause){this.pause()}}catch(A){o.destroy(this,A)}};const onDrain=function(){if(E){return}if(e.resume){e.resume()}};const onAbort=function(){onFinished(new B)};const onFinished=function(A){if(E){return}E=true;r(i.destroyed||i[G]&&t[L]<=1);i.off("drain",onDrain).off("error",onFinished);e.removeListener("data",onData).removeListener("end",onFinished).removeListener("error",onFinished).removeListener("close",onAbort);if(!A){try{l.end()}catch(e){A=e}}l.destroy(A);if(A&&(A.code!=="UND_ERR_INFO"||A.message!=="reset")){o.destroy(e,A)}else{o.destroy(e)}};e.on("data",onData).on("end",onFinished).on("error",onFinished).on("close",onAbort);if(e.resume){e.resume()}i.on("drain",onDrain).on("error",onFinished)}async function writeBlob({h2stream:A,body:e,client:t,request:n,socket:i,contentLength:s,header:a,expectsPayload:c}){r(s===e.size,"blob body must have content length");const g=t[QA]==="h2";try{if(s!=null&&s!==e.size){throw new E}const r=Buffer.from(await e.arrayBuffer());if(g){A.cork();A.write(r);A.uncork()}else{i.cork();i.write(`${a}content-length: ${s}\r\n\r\n`,"latin1");i.write(r);i.uncork()}n.onBodySent(r);n.onRequestSent();if(!c){i[R]=true}resume(t)}catch(e){o.destroy(g?A:i,e)}}async function writeIterable({h2stream:A,body:e,client:t,request:n,socket:i,contentLength:s,header:o,expectsPayload:a}){r(s!==0||t[L]===0,"iterator body cannot be pipelined");let c=null;function onDrain(){if(c){const A=c;c=null;A()}}const waitForDrain=()=>new Promise(((A,e)=>{r(c===null);if(i[W]){e(i[W])}else{c=A}}));if(t[QA]==="h2"){A.on("close",onDrain).on("drain",onDrain);try{for await(const t of e){if(i[W]){throw i[W]}const e=A.write(t);n.onBodySent(t);if(!e){await waitForDrain()}}}catch(e){A.destroy(e)}finally{n.onRequestSent();A.end();A.off("close",onDrain).off("drain",onDrain)}return}i.on("close",onDrain).on("drain",onDrain);const g=new AsyncWriter({socket:i,request:n,contentLength:s,client:t,expectsPayload:a,header:o});try{for await(const A of e){if(i[W]){throw i[W]}if(!g.write(A)){await waitForDrain()}}g.end()}catch(A){g.destroy(A)}finally{i.off("close",onDrain).off("drain",onDrain)}}class AsyncWriter{constructor({socket:A,request:e,contentLength:t,client:r,expectsPayload:n,header:i}){this.socket=A;this.request=e;this.contentLength=t;this.client=r;this.bytesWritten=0;this.expectsPayload=n;this.header=i;A[G]=true}write(A){const{socket:e,request:t,contentLength:r,client:n,bytesWritten:i,expectsPayload:s,header:o}=this;if(e[W]){throw e[W]}if(e.destroyed){return false}const a=Buffer.byteLength(A);if(!a){return true}if(r!==null&&i+a>r){if(n[tA]){throw new E}process.emitWarning(new E)}e.cork();if(i===0){if(!s){e[R]=true}if(r===null){e.write(`${o}transfer-encoding: chunked\r\n`,"latin1")}else{e.write(`${o}content-length: ${r}\r\n\r\n`,"latin1")}}if(r===null){e.write(`\r\n${a.toString(16)}\r\n`,"latin1")}this.bytesWritten+=a;const c=e.write(A);e.uncork();t.onBodySent(A);if(!c){if(e[S].timeout&&e[S].timeoutType===JA){if(e[S].timeout.refresh){e[S].timeout.refresh()}}}return c}end(){const{socket:A,contentLength:e,client:t,bytesWritten:r,expectsPayload:n,header:i,request:s}=this;s.onRequestSent();A[G]=false;if(A[W]){throw A[W]}if(A.destroyed){return}if(r===0){if(n){A.write(`${i}content-length: 0\r\n\r\n`,"latin1")}else{A.write(`${i}\r\n`,"latin1")}}else if(e===null){A.write("\r\n0\r\n\r\n","latin1")}if(e!==null&&r!==e){if(t[tA]){throw new E}else{process.emitWarning(new E)}}if(A[S].timeout&&A[S].timeoutType===JA){if(A[S].timeout.refresh){A[S].timeout.refresh()}}resume(t)}destroy(A){const{socket:e,client:t}=this;e[G]=false;if(A){r(t[L]<=1,"pipeline should only contain this request");o.destroy(e,A)}}}function errorRequest(A,e,t){try{e.onError(t);r(e.aborted)}catch(t){A.emit("error",t)}}A.exports=Client},4017:(A,e,t)=>{"use strict";const{kConnected:r,kSize:n}=t(5862);class CompatWeakRef{constructor(A){this.value=A}deref(){return this.value[r]===0&&this.value[n]===0?undefined:this.value}}class CompatFinalizer{constructor(A){this.finalizer=A}register(A,e){if(A.on){A.on("disconnect",(()=>{if(A[r]===0&&A[n]===0){this.finalizer(e)}}))}}}A.exports=function(){if(process.env.NODE_V8_COVERAGE){return{WeakRef:CompatWeakRef,FinalizationRegistry:CompatFinalizer}}return{WeakRef:global.WeakRef||CompatWeakRef,FinalizationRegistry:global.FinalizationRegistry||CompatFinalizer}}},3035:A=>{"use strict";const e=1024;const t=4096;A.exports={maxAttributeValueSize:e,maxNameValuePairSize:t}},421:(A,e,t)=>{"use strict";const{parseSetCookie:r}=t(2364);const{stringify:n,getHeadersList:i}=t(6993);const{webidl:s}=t(4161);const{Headers:o}=t(4721);function getCookies(A){s.argumentLengthCheck(arguments,1,{header:"getCookies"});s.brandCheck(A,o,{strict:false});const e=A.get("cookie");const t={};if(!e){return t}for(const A of e.split(";")){const[e,...r]=A.split("=");t[e.trim()]=r.join("=")}return t}function deleteCookie(A,e,t){s.argumentLengthCheck(arguments,2,{header:"deleteCookie"});s.brandCheck(A,o,{strict:false});e=s.converters.DOMString(e);t=s.converters.DeleteCookieAttributes(t);setCookie(A,{name:e,value:"",expires:new Date(0),...t})}function getSetCookies(A){s.argumentLengthCheck(arguments,1,{header:"getSetCookies"});s.brandCheck(A,o,{strict:false});const e=i(A).cookies;if(!e){return[]}return e.map((A=>r(Array.isArray(A)?A[1]:A)))}function setCookie(A,e){s.argumentLengthCheck(arguments,2,{header:"setCookie"});s.brandCheck(A,o,{strict:false});e=s.converters.Cookie(e);const t=n(e);if(t){A.append("Set-Cookie",n(e))}}s.converters.DeleteCookieAttributes=s.dictionaryConverter([{converter:s.nullableConverter(s.converters.DOMString),key:"path",defaultValue:null},{converter:s.nullableConverter(s.converters.DOMString),key:"domain",defaultValue:null}]);s.converters.Cookie=s.dictionaryConverter([{converter:s.converters.DOMString,key:"name"},{converter:s.converters.DOMString,key:"value"},{converter:s.nullableConverter((A=>{if(typeof A==="number"){return s.converters["unsigned long long"](A)}return new Date(A)})),key:"expires",defaultValue:null},{converter:s.nullableConverter(s.converters["long long"]),key:"maxAge",defaultValue:null},{converter:s.nullableConverter(s.converters.DOMString),key:"domain",defaultValue:null},{converter:s.nullableConverter(s.converters.DOMString),key:"path",defaultValue:null},{converter:s.nullableConverter(s.converters.boolean),key:"secure",defaultValue:null},{converter:s.nullableConverter(s.converters.boolean),key:"httpOnly",defaultValue:null},{converter:s.converters.USVString,key:"sameSite",allowedValues:["Strict","Lax","None"]},{converter:s.sequenceConverter(s.converters.DOMString),key:"unparsed",defaultValue:[]}]);A.exports={getCookies:getCookies,deleteCookie:deleteCookie,getSetCookies:getSetCookies,setCookie:setCookie}},2364:(A,e,t)=>{"use strict";const{maxNameValuePairSize:r,maxAttributeValueSize:n}=t(3035);const{isCTLExcludingHtab:i}=t(6993);const{collectASequenceOfCodePointsFast:s}=t(1353);const o=t(9491);function parseSetCookie(A){if(i(A)){return null}let e="";let t="";let n="";let o="";if(A.includes(";")){const r={position:0};e=s(";",A,r);t=A.slice(r.position)}else{e=A}if(!e.includes("=")){o=e}else{const A={position:0};n=s("=",e,A);o=e.slice(A.position+1)}n=n.trim();o=o.trim();if(n.length+o.length>r){return null}return{name:n,value:o,...parseUnparsedAttributes(t)}}function parseUnparsedAttributes(A,e={}){if(A.length===0){return e}o(A[0]===";");A=A.slice(1);let t="";if(A.includes(";")){t=s(";",A,{position:0});A=A.slice(t.length)}else{t=A;A=""}let r="";let i="";if(t.includes("=")){const A={position:0};r=s("=",t,A);i=t.slice(A.position+1)}else{r=t}r=r.trim();i=i.trim();if(i.length>n){return parseUnparsedAttributes(A,e)}const a=r.toLowerCase();if(a==="expires"){const A=new Date(i);e.expires=A}else if(a==="max-age"){const t=i.charCodeAt(0);if((t<48||t>57)&&i[0]!=="-"){return parseUnparsedAttributes(A,e)}if(!/^\d+$/.test(i)){return parseUnparsedAttributes(A,e)}const r=Number(i);e.maxAge=r}else if(a==="domain"){let A=i;if(A[0]==="."){A=A.slice(1)}A=A.toLowerCase();e.domain=A}else if(a==="path"){let A="";if(i.length===0||i[0]!=="/"){A="/"}else{A=i}e.path=A}else if(a==="secure"){e.secure=true}else if(a==="httponly"){e.httpOnly=true}else if(a==="samesite"){let A="Default";const t=i.toLowerCase();if(t.includes("none")){A="None"}if(t.includes("strict")){A="Strict"}if(t.includes("lax")){A="Lax"}e.sameSite=A}else{e.unparsed??=[];e.unparsed.push(`${r}=${i}`)}return parseUnparsedAttributes(A,e)}A.exports={parseSetCookie:parseSetCookie,parseUnparsedAttributes:parseUnparsedAttributes}},6993:(A,e,t)=>{"use strict";const r=t(9491);const{kHeadersList:n}=t(5862);function isCTLExcludingHtab(A){if(A.length===0){return false}for(const e of A){const A=e.charCodeAt(0);if(A>=0||A<=8||(A>=10||A<=31)||A===127){return false}}}function validateCookieName(A){for(const e of A){const A=e.charCodeAt(0);if(A<=32||A>127||e==="("||e===")"||e===">"||e==="<"||e==="@"||e===","||e===";"||e===":"||e==="\\"||e==='"'||e==="/"||e==="["||e==="]"||e==="?"||e==="="||e==="{"||e==="}"){throw new Error("Invalid cookie name")}}}function validateCookieValue(A){for(const e of A){const A=e.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 e of A){const A=e.charCodeAt(0);if(A<33||e===";"){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 e=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"];const t=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];const r=e[A.getUTCDay()];const n=A.getUTCDate().toString().padStart(2,"0");const i=t[A.getUTCMonth()];const s=A.getUTCFullYear();const o=A.getUTCHours().toString().padStart(2,"0");const a=A.getUTCMinutes().toString().padStart(2,"0");const c=A.getUTCSeconds().toString().padStart(2,"0");return`${r}, ${n} ${i} ${s} ${o}:${a}:${c} 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 e=[`${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){e.push("Secure")}if(A.httpOnly){e.push("HttpOnly")}if(typeof A.maxAge==="number"){validateCookieMaxAge(A.maxAge);e.push(`Max-Age=${A.maxAge}`)}if(A.domain){validateCookieDomain(A.domain);e.push(`Domain=${A.domain}`)}if(A.path){validateCookiePath(A.path);e.push(`Path=${A.path}`)}if(A.expires&&A.expires.toString()!=="Invalid Date"){e.push(`Expires=${toIMFDate(A.expires)}`)}if(A.sameSite){e.push(`SameSite=${A.sameSite}`)}for(const t of A.unparsed){if(!t.includes("=")){throw new Error("Invalid unparsed")}const[A,...r]=t.split("=");e.push(`${A.trim()}=${r.join("=")}`)}return e.join("; ")}let i;function getHeadersList(A){if(A[n]){return A[n]}if(!i){i=Object.getOwnPropertySymbols(A).find((A=>A.description==="headers list"));r(i,"Headers cannot be parsed")}const e=A[i];r(e);return e}A.exports={isCTLExcludingHtab:isCTLExcludingHtab,stringify:stringify,getHeadersList:getHeadersList}},6150:(A,e,t)=>{"use strict";const r=t(1808);const n=t(9491);const i=t(8657);const{InvalidArgumentError:s,ConnectTimeoutError:o}=t(1070);let a;let c;if(global.FinalizationRegistry&&!process.env.NODE_V8_COVERAGE){c=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,e)}}}function buildConnector({allowH2:A,maxCachedSessions:e,socketPath:o,timeout:g,...E}){if(e!=null&&(!Number.isInteger(e)||e<0)){throw new s("maxCachedSessions must be a positive integer or zero")}const l={path:o,...E};const Q=new c(e==null?100:e);g=g==null?1e4:g;A=A!=null?A:false;return function connect({hostname:e,host:s,protocol:o,port:c,servername:E,localAddress:B,httpSocket:h},C){let u;if(o==="https:"){if(!a){a=t(4404)}E=E||l.servername||i.getServerName(s)||null;const r=E||e;const o=Q.get(r)||null;n(r);u=a.connect({highWaterMark:16384,...l,servername:E,session:o,localAddress:B,ALPNProtocols:A?["http/1.1","h2"]:["http/1.1"],socket:h,port:c||443,host:e});u.on("session",(function(A){Q.set(r,A)}))}else{n(!h,"httpSocket can only be sent on TLS update");u=r.connect({highWaterMark:64*1024,...l,localAddress:B,port:c||80,host:e})}if(l.keepAlive==null||l.keepAlive){const A=l.keepAliveInitialDelay===undefined?6e4:l.keepAliveInitialDelay;u.setKeepAlive(true,A)}const I=setupTimeout((()=>onConnectTimeout(u)),g);u.setNoDelay(true).once(o==="https:"?"secureConnect":"connect",(function(){I();if(C){const A=C;C=null;A(null,this)}})).on("error",(function(A){I();if(C){const e=C;C=null;e(A)}}));return u}}function setupTimeout(A,e){if(!e){return()=>{}}let t=null;let r=null;const n=setTimeout((()=>{t=setImmediate((()=>{if(process.platform==="win32"){r=setImmediate((()=>A()))}else{A()}}))}),e);return()=>{clearTimeout(n);clearImmediate(t);clearImmediate(r)}}function onConnectTimeout(A){i.destroy(A,new o)}A.exports=buildConnector},1070:A=>{"use strict";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,e,t,r){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=r;this.status=e;this.statusCode=e;this.headers=t}}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,e){super(A);Error.captureStackTrace(this,SocketError);this.name="SocketError";this.message=A||"Socket error";this.code="UND_ERR_SOCKET";this.socket=e}}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,e,t){super(A);Error.captureStackTrace(this,HTTPParserError);this.name="HTTPParserError";this.code=e?`HPE_${e}`:undefined;this.data=t?t.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"}}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}},5933:(A,e,t)=>{"use strict";const{InvalidArgumentError:r,NotSupportedError:n}=t(1070);const i=t(9491);const{kHTTP2BuildRequest:s,kHTTP2CopyHeaders:o,kHTTP1BuildRequest:a}=t(5862);const c=t(8657);const g=/^[\^_`a-zA-Z\-0-9!#$%&'*+.|~]+$/;const E=/[^\t\x20-\x7e\x80-\xff]/;const l=/[^\u0021-\u00ff]/;const Q=Symbol("handler");const B={};let h;try{const A=t(7643);B.create=A.channel("undici:request:create");B.bodySent=A.channel("undici:request:bodySent");B.headers=A.channel("undici:request:headers");B.trailers=A.channel("undici:request:trailers");B.error=A.channel("undici:request:error")}catch{B.create={hasSubscribers:false};B.bodySent={hasSubscribers:false};B.headers={hasSubscribers:false};B.trailers={hasSubscribers:false};B.error={hasSubscribers:false}}class Request{constructor(A,{path:e,method:n,body:i,headers:s,query:o,idempotent:a,blocking:E,upgrade:C,headersTimeout:u,bodyTimeout:I,reset:d,throwOnError:p,expectContinue:y},D){if(typeof e!=="string"){throw new r("path must be a string")}else if(e[0]!=="/"&&!(e.startsWith("http://")||e.startsWith("https://"))&&n!=="CONNECT"){throw new r("path must be an absolute URL or start with a slash")}else if(l.exec(e)!==null){throw new r("invalid request path")}if(typeof n!=="string"){throw new r("method must be a string")}else if(g.exec(n)===null){throw new r("invalid request method")}if(C&&typeof C!=="string"){throw new r("upgrade must be a string")}if(u!=null&&(!Number.isFinite(u)||u<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(y!=null&&typeof y!=="boolean"){throw new r("invalid expectContinue")}this.headersTimeout=u;this.bodyTimeout=I;this.throwOnError=p===true;this.method=n;if(i==null){this.body=null}else if(c.isStream(i)){this.body=i}else if(c.isBuffer(i)){this.body=i.byteLength?i:null}else if(ArrayBuffer.isView(i)){this.body=i.buffer.byteLength?Buffer.from(i.buffer,i.byteOffset,i.byteLength):null}else if(i instanceof ArrayBuffer){this.body=i.byteLength?Buffer.from(i):null}else if(typeof i==="string"){this.body=i.length?Buffer.from(i):null}else if(c.isFormDataLike(i)||c.isIterable(i)||c.isBlobLike(i)){this.body=i}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=o?c.buildURL(e,o):e;this.origin=A;this.idempotent=a==null?n==="HEAD"||n==="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=y!=null?y:false;if(Array.isArray(s)){if(s.length%2!==0){throw new r("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")}},8657:(A,e,t)=>{"use strict";const r=t(9491);const{kDestroyed:n,kBodyUsed:i}=t(5862);const{IncomingMessage:s}=t(3685);const o=t(2781);const a=t(1808);const{InvalidArgumentError:c}=t(1070);const{Blob:g}=t(4300);const E=t(3837);const{stringify:l}=t(3477);const[Q,B]=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 g&&A instanceof g||A&&typeof A==="object"&&(typeof A.stream==="function"||typeof A.arrayBuffer==="function")&&/^(Blob|File)$/.test(A[Symbol.toStringTag])}function buildURL(A,e){if(A.includes("?")||A.includes("#")){throw new Error('Query params cannot be passed when url already contains "?" or "#".')}const t=l(e);if(t){A+="?"+t}return A}function parseURL(A){if(typeof A==="string"){A=new URL(A);if(!/^https?:/.test(A.origin||A.protocol)){throw new c("Invalid URL protocol: the URL must start with `http:` or `https:`.")}return A}if(!A||typeof A!=="object"){throw new c("Invalid URL: The URL argument must be a non-null object.")}if(!/^https?:/.test(A.origin||A.protocol)){throw new c("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 c("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 c("Invalid URL path: the path must be a string or null/undefined.")}if(A.pathname!=null&&typeof A.pathname!=="string"){throw new c("Invalid URL pathname: the pathname must be a string or null/undefined.")}if(A.hostname!=null&&typeof A.hostname!=="string"){throw new c("Invalid URL hostname: the hostname must be a string or null/undefined.")}if(A.origin!=null&&typeof A.origin!=="string"){throw new c("Invalid URL origin: the origin must be a string or null/undefined.")}const e=A.port!=null?A.port:A.protocol==="https:"?443:80;let t=A.origin!=null?A.origin:`${A.protocol}//${A.hostname}:${e}`;let r=A.path!=null?A.path:`${A.pathname||""}${A.search||""}`;if(t.endsWith("/")){t=t.substring(0,t.length-1)}if(r&&!r.startsWith("/")){r=`/${r}`}A=new URL(t+r)}return A}function parseOrigin(A){A=parseURL(A);if(A.pathname!=="/"||A.search||A.hash){throw new c("invalid url")}return A}function getHostname(A){if(A[0]==="["){const e=A.indexOf("]");r(e!==-1);return A.substr(1,e-1)}const e=A.indexOf(":");if(e===-1)return A;return A.substr(0,e)}function getServerName(A){if(!A){return null}r.strictEqual(typeof A,"string");const e=getHostname(A);if(a.isIP(e)){return""}return e}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 e=A._readableState;return e&&e.objectMode===false&&e.ended===true&&Number.isFinite(e.length)?e.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[n])}function isReadableAborted(A){const e=A&&A._readableState;return isDestroyed(A)&&e&&!e.endEmitted}function destroy(A,e){if(!isStream(A)||isDestroyed(A)){return}if(typeof A.destroy==="function"){if(Object.getPrototypeOf(A).constructor===s){A.socket=null}A.destroy(e)}else if(e){process.nextTick(((A,e)=>{A.emit("error",e)}),A,e)}if(A.destroyed!==true){A[n]=true}}const h=/timeout=(\d+)/;function parseKeepAliveTimeout(A){const e=A.toString().match(h);return e?parseInt(e[1],10)*1e3:null}function parseHeaders(A,e={}){if(!Array.isArray(A))return A;for(let t=0;t{A.close()}))}else{const e=Buffer.isBuffer(r)?r:Buffer.from(r);A.enqueue(new Uint8Array(e))}return A.desiredSize>0},async cancel(A){await e.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}}}let u;function addAbortListener(A,e){if(typeof Symbol.dispose==="symbol"){if(!u){u=t(2361)}if(typeof u.addAbortListener==="function"&&"aborted"in A){return u.addAbortListener(A,e)}}if("addEventListener"in A){A.addEventListener("abort",e,{once:true});return()=>A.removeEventListener("abort",e)}A.addListener("abort",e);return()=>A.removeListener("abort",e)}const I=!!String.prototype.toWellFormed;function toUSVString(A){if(I){return`${A}`.toWellFormed()}else if(E.toUSVString){return E.toUSVString(A)}return`${A}`}const d=Object.create(null);d.enumerable=true;A.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,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,nodeMajor:Q,nodeMinor:B,nodeHasAutoSelectFamily:Q>18||Q===18&&B>=13}},568:(A,e,t)=>{"use strict";const r=t(78);const{ClientDestroyedError:n,ClientClosedError:i,InvalidArgumentError:s}=t(1070);const{kDestroy:o,kClose:a,kDispatch:c,kInterceptors:g}=t(5862);const E=Symbol("destroyed");const l=Symbol("closed");const Q=Symbol("onDestroyed");const B=Symbol("onClosed");const h=Symbol("Intercepted Dispatch");class DispatcherBase extends r{constructor(){super();this[E]=false;this[Q]=null;this[l]=false;this[B]=[]}get destroyed(){return this[E]}get closed(){return this[l]}get interceptors(){return this[g]}set interceptors(A){if(A){for(let e=A.length-1;e>=0;e--){const A=this[g][e];if(typeof A!=="function"){throw new s("interceptor must be an function")}}}this[g]=A}close(A){if(A===undefined){return new Promise(((A,e)=>{this.close(((t,r)=>t?e(t):A(r)))}))}if(typeof A!=="function"){throw new s("invalid callback")}if(this[E]){queueMicrotask((()=>A(new n,null)));return}if(this[l]){if(this[B]){this[B].push(A)}else{queueMicrotask((()=>A(null,null)))}return}this[l]=true;this[B].push(A);const onClosed=()=>{const A=this[B];this[B]=null;for(let e=0;ethis.destroy())).then((()=>{queueMicrotask(onClosed)}))}destroy(A,e){if(typeof A==="function"){e=A;A=null}if(e===undefined){return new Promise(((e,t)=>{this.destroy(A,((A,r)=>A?t(A):e(r)))}))}if(typeof e!=="function"){throw new s("invalid callback")}if(this[E]){if(this[Q]){this[Q].push(e)}else{queueMicrotask((()=>e(null,null)))}return}if(!A){A=new n}this[E]=true;this[Q]=this[Q]||[];this[Q].push(e);const onDestroyed=()=>{const A=this[Q];this[Q]=null;for(let e=0;e{queueMicrotask(onDestroyed)}))}[h](A,e){if(!this[g]||this[g].length===0){this[h]=this[c];return this[c](A,e)}let t=this[c].bind(this);for(let A=this[g].length-1;A>=0;A--){t=this[g][A](t)}this[h]=t;return t(A,e)}dispatch(A,e){if(!e||typeof e!=="object"){throw new s("handler must be an object")}try{if(!A||typeof A!=="object"){throw new s("opts must be an object.")}if(this[E]||this[Q]){throw new n}if(this[l]){throw new i}return this[h](A,e)}catch(A){if(typeof e.onError!=="function"){throw new s("invalid onError method")}e.onError(A);return false}}}A.exports=DispatcherBase},78:(A,e,t)=>{"use strict";const r=t(2361);class Dispatcher extends r{dispatch(){throw new Error("not implemented")}close(){throw new Error("not implemented")}destroy(){throw new Error("not implemented")}}A.exports=Dispatcher},8032:(A,e,t)=>{"use strict";const r=t(5947);const n=t(8657);const{ReadableStreamFrom:i,isBlobLike:s,isReadableStreamLike:o,readableStreamClose:a,createDeferredPromise:c,fullyReadBody:g}=t(2671);const{FormData:E}=t(5376);const{kState:l}=t(5525);const{webidl:Q}=t(4161);const{DOMException:B,structuredClone:h}=t(6598);const{Blob:C,File:u}=t(4300);const{kBodyUsed:I}=t(5862);const d=t(9491);const{isErrored:p}=t(8657);const{isUint8Array:y,isArrayBuffer:D}=t(9830);const{File:m}=t(7352);const{parseMIMEType:w,serializeAMimeType:R}=t(1353);let b=globalThis.ReadableStream;const k=u??m;function extractBody(A,e=false){if(!b){b=t(5356).ReadableStream}let r=null;if(A instanceof b){r=A}else if(s(A)){r=A.stream()}else{r=new b({async pull(A){A.enqueue(typeof g==="string"?(new TextEncoder).encode(g):g);queueMicrotask((()=>a(A)))},start(){},type:undefined})}d(o(r));let c=null;let g=null;let E=null;let l=null;if(typeof A==="string"){g=A;l="text/plain;charset=UTF-8"}else if(A instanceof URLSearchParams){g=A.toString();l="application/x-www-form-urlencoded;charset=UTF-8"}else if(D(A)){g=new Uint8Array(A.slice())}else if(ArrayBuffer.isView(A)){g=new Uint8Array(A.buffer.slice(A.byteOffset,A.byteOffset+A.byteLength))}else if(n.isFormDataLike(A)){const e=`----formdata-undici-0${`${Math.floor(Math.random()*1e11)}`.padStart(11,"0")}`;const t=`--${e}\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 r=new TextEncoder;const n=[];const i=new Uint8Array([13,10]);E=0;let s=false;for(const[e,o]of A){if(typeof o==="string"){const A=r.encode(t+`; name="${escape(normalizeLinefeeds(e))}"`+`\r\n\r\n${normalizeLinefeeds(o)}\r\n`);n.push(A);E+=A.byteLength}else{const A=r.encode(`${t}; name="${escape(normalizeLinefeeds(e))}"`+(o.name?`; filename="${escape(o.name)}"`:"")+"\r\n"+`Content-Type: ${o.type||"application/octet-stream"}\r\n\r\n`);n.push(A,o,i);if(typeof o.size==="number"){E+=A.byteLength+o.size+i.byteLength}else{s=true}}}const o=r.encode(`--${e}--`);n.push(o);E+=o.byteLength;if(s){E=null}g=A;c=async function*(){for(const A of n){if(A.stream){yield*A.stream()}else{yield A}}};l="multipart/form-data; boundary="+e}else if(s(A)){g=A;E=A.size;if(A.type){l=A.type}}else if(typeof A[Symbol.asyncIterator]==="function"){if(e){throw new TypeError("keepalive")}if(n.isDisturbed(A)||A.locked){throw new TypeError("Response body object should not be disturbed or locked")}r=A instanceof b?A:i(A)}if(typeof g==="string"||n.isBuffer(g)){E=Buffer.byteLength(g)}if(c!=null){let e;r=new b({async start(){e=c(A)[Symbol.asyncIterator]()},async pull(A){const{value:t,done:n}=await e.next();if(n){queueMicrotask((()=>{A.close()}))}else{if(!p(r)){A.enqueue(new Uint8Array(t))}}return A.desiredSize>0},async cancel(A){await e.return()},type:undefined})}const Q={stream:r,source:g,length:E};return[Q,l]}function safelyExtractBody(A,e=false){if(!b){b=t(5356).ReadableStream}if(A instanceof b){d(!n.isDisturbed(A),"The body has already been consumed.");d(!A.locked,"The stream is locked.")}return extractBody(A,e)}function cloneBody(A){const[e,t]=A.stream.tee();const r=h(t,{transfer:[t]});const[,n]=r.tee();A.stream=e;return{stream:n,length:A.length,source:A.source}}async function*consumeBody(A){if(A){if(y(A)){yield A}else{const e=A.stream;if(n.isDisturbed(e)){throw new TypeError("The body has already been consumed.")}if(e.locked){throw new TypeError("The stream is locked.")}e[I]=true;yield*e}}}function throwIfAborted(A){if(A.aborted){throw new B("The operation was aborted.","AbortError")}}function bodyMixinMethods(A){const e={blob(){return specConsumeBody(this,(A=>{let e=bodyMimeType(this);if(e==="failure"){e=""}else if(e){e=R(e)}return new C([A],{type:e})}),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(){Q.brandCheck(this,A);throwIfAborted(this[l]);const e=this.headers.get("Content-Type");if(/multipart\/form-data/.test(e)){const A={};for(const[e,t]of this.headers)A[e.toLowerCase()]=t;const e=new E;let t;try{t=new r({headers:A,preservePath:true})}catch(A){throw new B(`${A}`,"AbortError")}t.on("field",((A,t)=>{e.append(A,t)}));t.on("file",((A,t,r,n,i)=>{const s=[];if(n==="base64"||n.toLowerCase()==="base64"){let n="";t.on("data",(A=>{n+=A.toString().replace(/[\r\n]/gm,"");const e=n.length-n.length%4;s.push(Buffer.from(n.slice(0,e),"base64"));n=n.slice(e)}));t.on("end",(()=>{s.push(Buffer.from(n,"base64"));e.append(A,new k(s,r,{type:i}))}))}else{t.on("data",(A=>{s.push(A)}));t.on("end",(()=>{e.append(A,new k(s,r,{type:i}))}))}}));const n=new Promise(((A,e)=>{t.on("finish",A);t.on("error",(A=>e(new TypeError(A))))}));if(this.body!==null)for await(const A of consumeBody(this[l].body))t.write(A);t.end();await n;return e}else if(/application\/x-www-form-urlencoded/.test(e)){let A;try{let e="";const t=new TextDecoder("utf-8",{ignoreBOM:true});for await(const A of consumeBody(this[l].body)){if(!y(A)){throw new TypeError("Expected Uint8Array chunk")}e+=t.decode(A,{stream:true})}e+=t.decode();A=new URLSearchParams(e)}catch(A){throw Object.assign(new TypeError,{cause:A})}const e=new E;for(const[t,r]of A){e.append(t,r)}return e}else{await Promise.resolve();throwIfAborted(this[l]);throw Q.errors.exception({header:`${A.name}.formData`,message:"Could not parse content as FormData."})}}};return e}function mixinBody(A){Object.assign(A.prototype,bodyMixinMethods(A))}async function specConsumeBody(A,e,t){Q.brandCheck(A,t);throwIfAborted(A[l]);if(bodyUnusable(A[l].body)){throw new TypeError("Body is unusable")}const r=c();const errorSteps=A=>r.reject(A);const successSteps=A=>{try{r.resolve(e(A))}catch(A){errorSteps(A)}};if(A[l].body==null){successSteps(new Uint8Array);return r.promise}await g(A[l].body,successSteps,errorSteps);return r.promise}function bodyUnusable(A){return A!=null&&(A.stream.locked||n.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 e=(new TextDecoder).decode(A);return e}function parseJSONFromBytes(A){return JSON.parse(utf8DecodeBytes(A))}function bodyMimeType(A){const{headersList:e}=A[l];const t=e.get("content-type");if(t===null){return"failure"}return w(t)}A.exports={extractBody:extractBody,safelyExtractBody:safelyExtractBody,cloneBody:cloneBody,mixinBody:mixinBody}},6598:(A,e,t)=>{"use strict";const{MessageChannel:r,receiveMessageOnPort:n}=t(1267);const i=["GET","HEAD","POST"];const s=[101,204,205,304];const o=[301,302,303,307,308];const a=["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 c=["","no-referrer","no-referrer-when-downgrade","same-origin","origin","strict-origin","origin-when-cross-origin","strict-origin-when-cross-origin","unsafe-url"];const g=["follow","manual","error"];const E=["GET","HEAD","OPTIONS","TRACE"];const l=["navigate","same-origin","no-cors","cors"];const Q=["omit","same-origin","include"];const B=["default","no-store","reload","no-cache","force-cache","only-if-cached"];const h=["content-encoding","content-language","content-location","content-type","content-length"];const C=["half"];const u=["CONNECT","TRACE","TRACK"];const I=["audio","audioworklet","font","image","manifest","paintworklet","script","style","track","video","xslt",""];const d=globalThis.DOMException??(()=>{try{atob("~")}catch(A){return Object.getPrototypeOf(A).constructor}})();let p;const y=globalThis.structuredClone??function structuredClone(A,e=undefined){if(arguments.length===0){throw new TypeError("missing argument")}if(!p){p=new r}p.port1.unref();p.port2.unref();p.port1.postMessage(A,e?.transfer);return n(p.port2).message};A.exports={DOMException:d,structuredClone:y,subresource:I,forbiddenMethods:u,requestBodyHeader:h,referrerPolicy:c,requestRedirect:g,requestMode:l,requestCredentials:Q,requestCache:B,redirectStatus:o,corsSafeListedMethods:i,nullBodyStatus:s,safeMethods:E,badPorts:a,requestDuplex:C}},1353:(A,e,t)=>{const r=t(9491);const{atob:n}=t(4300);const{isomorphicDecode:i}=t(2671);const s=new TextEncoder;const o=/^[!#$%&'*+-.^_|~A-Za-z0-9]+$/;const a=/(\u000A|\u000D|\u0009|\u0020)/;const c=/[\u0009|\u0020-\u007E|\u0080-\u00FF]/;function dataURLProcessor(A){r(A.protocol==="data:");let e=URLSerializer(A,true);e=e.slice(5);const t={position:0};let n=collectASequenceOfCodePointsFast(",",e,t);const s=n.length;n=removeASCIIWhitespace(n,true,true);if(t.position>=e.length){return"failure"}t.position++;const o=e.slice(s+1);let a=stringPercentDecode(o);if(/;(\u0020){0,}base64$/i.test(n)){const A=i(a);a=forgivingBase64(A);if(a==="failure"){return"failure"}n=n.slice(0,-6);n=n.replace(/(\u0020)+$/,"");n=n.slice(0,-1)}if(n.startsWith(";")){n="text/plain"+n}let c=parseMIMEType(n);if(c==="failure"){c=parseMIMEType("text/plain;charset=US-ASCII")}return{mimeType:c,body:a}}function URLSerializer(A,e=false){const t=A.href;if(!e){return t}const r=t.lastIndexOf("#");if(r===-1){return t}return t.slice(0,r)}function collectASequenceOfCodePoints(A,e,t){let r="";while(t.positionA.length){return"failure"}e.position++;let r=collectASequenceOfCodePointsFast(";",A,e);r=removeHTTPWhitespace(r,false,true);if(r.length===0||!o.test(r)){return"failure"}const n=t.toLowerCase();const i=r.toLowerCase();const s={type:n,subtype:i,parameters:new Map,essence:`${n}/${i}`};while(e.positiona.test(A)),A,e);let t=collectASequenceOfCodePoints((A=>A!==";"&&A!=="="),A,e);t=t.toLowerCase();if(e.positionA.length){break}let r=null;if(A[e.position]==='"'){r=collectAnHTTPQuotedString(A,e,true);collectASequenceOfCodePointsFast(";",A,e)}else{r=collectASequenceOfCodePointsFast(";",A,e);r=removeHTTPWhitespace(r,false,true);if(r.length===0){continue}}if(t.length!==0&&o.test(t)&&(r.length===0||c.test(r))&&!s.parameters.has(t)){s.parameters.set(t,r)}}return s}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 e=n(A);const t=new Uint8Array(e.length);for(let A=0;AA!=='"'&&A!=="\\"),A,e);if(e.position>=A.length){break}const t=A[e.position];e.position++;if(t==="\\"){if(e.position>=A.length){i+="\\";break}i+=A[e.position];e.position++}else{r(t==='"');break}}if(t){return i}return A.slice(n,e.position)}function serializeAMimeType(A){r(A!=="failure");const{parameters:e,essence:t}=A;let n=t;for(let[A,t]of e.entries()){n+=";";n+=A;n+="=";if(!o.test(t)){t=t.replace(/(\\|")/g,"\\$1");t='"'+t;t+='"'}n+=t}return n}function isHTTPWhiteSpace(A){return A==="\r"||A==="\n"||A==="\t"||A===" "}function removeHTTPWhitespace(A,e=true,t=true){let r=0;let n=A.length-1;if(e){for(;r0&&isHTTPWhiteSpace(A[n]);n--);}return A.slice(r,n+1)}function isASCIIWhitespace(A){return A==="\r"||A==="\n"||A==="\t"||A==="\f"||A===" "}function removeASCIIWhitespace(A,e=true,t=true){let r=0;let n=A.length-1;if(e){for(;r0&&isASCIIWhitespace(A[n]);n--);}return A.slice(r,n+1)}A.exports={dataURLProcessor:dataURLProcessor,URLSerializer:URLSerializer,collectASequenceOfCodePoints:collectASequenceOfCodePoints,collectASequenceOfCodePointsFast:collectASequenceOfCodePointsFast,stringPercentDecode:stringPercentDecode,parseMIMEType:parseMIMEType,collectAnHTTPQuotedString:collectAnHTTPQuotedString,serializeAMimeType:serializeAMimeType}},7352:(A,e,t)=>{"use strict";const{Blob:r,File:n}=t(4300);const{types:i}=t(3837);const{kState:s}=t(5525);const{isBlobLike:o}=t(2671);const{webidl:a}=t(4161);const{parseMIMEType:c,serializeAMimeType:g}=t(1353);const{kEnumerableProperty:E}=t(8657);class File extends r{constructor(A,e,t={}){a.argumentLengthCheck(arguments,2,{header:"File constructor"});A=a.converters["sequence"](A);e=a.converters.USVString(e);t=a.converters.FilePropertyBag(t);const r=e;let n=t.type;let i;A:{if(n){n=c(n);if(n==="failure"){n="";break A}n=g(n).toLowerCase()}i=t.lastModified}super(processBlobParts(A,t),{type:n});this[s]={name:r,lastModified:i,type:n}}get name(){a.brandCheck(this,File);return this[s].name}get lastModified(){a.brandCheck(this,File);return this[s].lastModified}get type(){a.brandCheck(this,File);return this[s].type}}class FileLike{constructor(A,e,t={}){const r=e;const n=t.type;const i=t.lastModified??Date.now();this[s]={blobLike:A,name:r,type:n,lastModified:i}}stream(...A){a.brandCheck(this,FileLike);return this[s].blobLike.stream(...A)}arrayBuffer(...A){a.brandCheck(this,FileLike);return this[s].blobLike.arrayBuffer(...A)}slice(...A){a.brandCheck(this,FileLike);return this[s].blobLike.slice(...A)}text(...A){a.brandCheck(this,FileLike);return this[s].blobLike.text(...A)}get size(){a.brandCheck(this,FileLike);return this[s].blobLike.size}get type(){a.brandCheck(this,FileLike);return this[s].blobLike.type}get name(){a.brandCheck(this,FileLike);return this[s].name}get lastModified(){a.brandCheck(this,FileLike);return this[s].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(A,e){if(a.util.Type(A)==="Object"){if(o(A)){return a.converters.Blob(A,{strict:false})}if(ArrayBuffer.isView(A)||i.isAnyArrayBuffer(A)){return a.converters.BufferSource(A,e)}}return a.converters.USVString(A,e)};a.converters["sequence"]=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:A=>{A=a.converters.DOMString(A);A=A.toLowerCase();if(A!=="native"){A="transparent"}return A},defaultValue:"transparent"}]);function processBlobParts(A,e){const t=[];for(const r of A){if(typeof r==="string"){let A=r;if(e.endings==="native"){A=convertLineEndingsNative(A)}t.push((new TextEncoder).encode(A))}else if(i.isAnyArrayBuffer(r)||i.isTypedArray(r)){if(!r.buffer){t.push(new Uint8Array(r))}else{t.push(new Uint8Array(r.buffer,r.byteOffset,r.byteLength))}}else if(o(r)){t.push(r)}}return t}function convertLineEndingsNative(A){let e="\n";if(process.platform==="win32"){e="\r\n"}return A.replace(/\r?\n/g,e)}function isFileLike(A){return n&&A instanceof n||A instanceof File||A&&(typeof A.stream==="function"||typeof A.arrayBuffer==="function")&&A[Symbol.toStringTag]==="File"}A.exports={File:File,FileLike:FileLike,isFileLike:isFileLike}},5376:(A,e,t)=>{"use strict";const{isBlobLike:r,toUSVString:n,makeIterator:i}=t(2671);const{kState:s}=t(5525);const{File:o,FileLike:a,isFileLike:c}=t(7352);const{webidl:g}=t(4161);const{Blob:E,File:l}=t(4300);const Q=l??o;class FormData{constructor(A){if(A!==undefined){throw g.errors.conversionFailed({prefix:"FormData constructor",argument:"Argument 1",types:["undefined"]})}this[s]=[]}append(A,e,t=undefined){g.brandCheck(this,FormData);g.argumentLengthCheck(arguments,2,{header:"FormData.append"});if(arguments.length===3&&!r(e)){throw new TypeError("Failed to execute 'append' on 'FormData': parameter 2 is not of type 'Blob'")}A=g.converters.USVString(A);e=r(e)?g.converters.Blob(e,{strict:false}):g.converters.USVString(e);t=arguments.length===3?g.converters.USVString(t):undefined;const n=makeEntry(A,e,t);this[s].push(n)}delete(A){g.brandCheck(this,FormData);g.argumentLengthCheck(arguments,1,{header:"FormData.delete"});A=g.converters.USVString(A);this[s]=this[s].filter((e=>e.name!==A))}get(A){g.brandCheck(this,FormData);g.argumentLengthCheck(arguments,1,{header:"FormData.get"});A=g.converters.USVString(A);const e=this[s].findIndex((e=>e.name===A));if(e===-1){return null}return this[s][e].value}getAll(A){g.brandCheck(this,FormData);g.argumentLengthCheck(arguments,1,{header:"FormData.getAll"});A=g.converters.USVString(A);return this[s].filter((e=>e.name===A)).map((A=>A.value))}has(A){g.brandCheck(this,FormData);g.argumentLengthCheck(arguments,1,{header:"FormData.has"});A=g.converters.USVString(A);return this[s].findIndex((e=>e.name===A))!==-1}set(A,e,t=undefined){g.brandCheck(this,FormData);g.argumentLengthCheck(arguments,2,{header:"FormData.set"});if(arguments.length===3&&!r(e)){throw new TypeError("Failed to execute 'set' on 'FormData': parameter 2 is not of type 'Blob'")}A=g.converters.USVString(A);e=r(e)?g.converters.Blob(e,{strict:false}):g.converters.USVString(e);t=arguments.length===3?n(t):undefined;const i=makeEntry(A,e,t);const o=this[s].findIndex((e=>e.name===A));if(o!==-1){this[s]=[...this[s].slice(0,o),i,...this[s].slice(o+1).filter((e=>e.name!==A))]}else{this[s].push(i)}}entries(){g.brandCheck(this,FormData);return i((()=>this[s].map((A=>[A.name,A.value]))),"FormData","key+value")}keys(){g.brandCheck(this,FormData);return i((()=>this[s].map((A=>[A.name,A.value]))),"FormData","key")}values(){g.brandCheck(this,FormData);return i((()=>this[s].map((A=>[A.name,A.value]))),"FormData","value")}forEach(A,e=globalThis){g.brandCheck(this,FormData);g.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[t,r]of this){A.apply(e,[r,t,this])}}}FormData.prototype[Symbol.iterator]=FormData.prototype.entries;Object.defineProperties(FormData.prototype,{[Symbol.toStringTag]:{value:"FormData",configurable:true}});function makeEntry(A,e,t){A=Buffer.from(A).toString("utf8");if(typeof e==="string"){e=Buffer.from(e).toString("utf8")}else{if(!c(e)){e=e instanceof E?new Q([e],"blob",{type:e.type}):new a(e,"blob",{type:e.type})}if(t!==undefined){const A={type:e.type,lastModified:e.lastModified};e=l&&e instanceof l||e instanceof o?new Q([e],t,A):new a(e,t,A)}}return{name:A,value:e}}A.exports={FormData:FormData}},5730:A=>{"use strict";const e=Symbol.for("undici.globalOrigin.1");function getGlobalOrigin(){return globalThis[e]}function setGlobalOrigin(A){if(A===undefined){Object.defineProperty(globalThis,e,{value:undefined,writable:true,enumerable:false,configurable:false});return}const t=new URL(A);if(t.protocol!=="http:"&&t.protocol!=="https:"){throw new TypeError(`Only http & https urls are allowed, received ${t.protocol}`)}Object.defineProperty(globalThis,e,{value:t,writable:true,enumerable:false,configurable:false})}A.exports={getGlobalOrigin:getGlobalOrigin,setGlobalOrigin:setGlobalOrigin}},4721:(A,e,t)=>{"use strict";const{kHeadersList:r}=t(5862);const{kGuard:n}=t(5525);const{kEnumerableProperty:i}=t(8657);const{makeIterator:s,isValidHeaderName:o,isValidHeaderValue:a}=t(2671);const{webidl:c}=t(4161);const g=t(9491);const E=Symbol("headers map");const l=Symbol("headers map sorted");function headerValueNormalize(A){let e=A.length;while(/[\r\n\t ]/.test(A.charAt(--e)));return A.slice(0,e+1).replace(/^[\r\n\t ]+/,"")}function fill(A,e){if(Array.isArray(e)){for(const t of e){if(t.length!==2){throw c.errors.exception({header:"Headers constructor",message:`expected name/value pair to be length 2, found ${t.length}.`})}A.append(t[0],t[1])}}else if(typeof e==="object"&&e!==null){for(const[t,r]of Object.entries(e)){A.append(t,r)}}else{throw c.errors.conversionFailed({prefix:"Headers constructor",argument:"Argument 1",types:["sequence>","record"]})}}class HeadersList{cookies=null;constructor(A){if(A instanceof HeadersList){this[E]=new Map(A[E]);this[l]=A[l];this.cookies=A.cookies}else{this[E]=new Map(A);this[l]=null}}contains(A){A=A.toLowerCase();return this[E].has(A)}clear(){this[E].clear();this[l]=null;this.cookies=null}append(A,e){this[l]=null;const t=A.toLowerCase();const r=this[E].get(t);if(r){const A=t==="cookie"?"; ":", ";this[E].set(t,{name:r.name,value:`${r.value}${A}${e}`})}else{this[E].set(t,{name:A,value:e})}if(t==="set-cookie"){this.cookies??=[];this.cookies.push(e)}}set(A,e){this[l]=null;const t=A.toLowerCase();if(t==="set-cookie"){this.cookies=[e]}return this[E].set(t,{name:A,value:e})}delete(A){this[l]=null;A=A.toLowerCase();if(A==="set-cookie"){this.cookies=null}return this[E].delete(A)}get(A){if(!this.contains(A)){return null}return this[E].get(A.toLowerCase())?.value??null}*[Symbol.iterator](){for(const[A,{value:e}]of this[E]){yield[A,e]}}get entries(){const A={};if(this[E].size){for(const{name:e,value:t}of this[E].values()){A[e]=t}}return A}}class Headers{constructor(A=undefined){this[r]=new HeadersList;this[n]="none";if(A!==undefined){A=c.converters.HeadersInit(A);fill(this,A)}}append(A,e){c.brandCheck(this,Headers);c.argumentLengthCheck(arguments,2,{header:"Headers.append"});A=c.converters.ByteString(A);e=c.converters.ByteString(e);e=headerValueNormalize(e);if(!o(A)){throw c.errors.invalidArgument({prefix:"Headers.append",value:A,type:"header name"})}else if(!a(e)){throw c.errors.invalidArgument({prefix:"Headers.append",value:e,type:"header value"})}if(this[n]==="immutable"){throw new TypeError("immutable")}else if(this[n]==="request-no-cors"){}return this[r].append(A,e)}delete(A){c.brandCheck(this,Headers);c.argumentLengthCheck(arguments,1,{header:"Headers.delete"});A=c.converters.ByteString(A);if(!o(A)){throw c.errors.invalidArgument({prefix:"Headers.delete",value:A,type:"header name"})}if(this[n]==="immutable"){throw new TypeError("immutable")}else if(this[n]==="request-no-cors"){}if(!this[r].contains(A)){return}return this[r].delete(A)}get(A){c.brandCheck(this,Headers);c.argumentLengthCheck(arguments,1,{header:"Headers.get"});A=c.converters.ByteString(A);if(!o(A)){throw c.errors.invalidArgument({prefix:"Headers.get",value:A,type:"header name"})}return this[r].get(A)}has(A){c.brandCheck(this,Headers);c.argumentLengthCheck(arguments,1,{header:"Headers.has"});A=c.converters.ByteString(A);if(!o(A)){throw c.errors.invalidArgument({prefix:"Headers.has",value:A,type:"header name"})}return this[r].contains(A)}set(A,e){c.brandCheck(this,Headers);c.argumentLengthCheck(arguments,2,{header:"Headers.set"});A=c.converters.ByteString(A);e=c.converters.ByteString(e);e=headerValueNormalize(e);if(!o(A)){throw c.errors.invalidArgument({prefix:"Headers.set",value:A,type:"header name"})}else if(!a(e)){throw c.errors.invalidArgument({prefix:"Headers.set",value:e,type:"header value"})}if(this[n]==="immutable"){throw new TypeError("immutable")}else if(this[n]==="request-no-cors"){}return this[r].set(A,e)}getSetCookie(){c.brandCheck(this,Headers);const A=this[r].cookies;if(A){return[...A]}return[]}get[l](){if(this[r][l]){return this[r][l]}const A=[];const e=[...this[r]].sort(((A,e)=>A[0][...this[l].values()]),"Headers","key")}values(){c.brandCheck(this,Headers);return s((()=>[...this[l].values()]),"Headers","value")}entries(){c.brandCheck(this,Headers);return s((()=>[...this[l].values()]),"Headers","key+value")}forEach(A,e=globalThis){c.brandCheck(this,Headers);c.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[t,r]of this){A.apply(e,[r,t,this])}}[Symbol.for("nodejs.util.inspect.custom")](){c.brandCheck(this,Headers);return this[r]}}Headers.prototype[Symbol.iterator]=Headers.prototype.entries;Object.defineProperties(Headers.prototype,{append:i,delete:i,get:i,has:i,set:i,getSetCookie:i,keys:i,values:i,entries:i,forEach:i,[Symbol.iterator]:{enumerable:false},[Symbol.toStringTag]:{value:"Headers",configurable:true}});c.converters.HeadersInit=function(A){if(c.util.Type(A)==="Object"){if(A[Symbol.iterator]){return c.converters["sequence>"](A)}return c.converters["record"](A)}throw c.errors.conversionFailed({prefix:"Headers constructor",argument:"Argument 1",types:["sequence>","record"]})};A.exports={fill:fill,Headers:Headers,HeadersList:HeadersList}},3177:(A,e,t)=>{"use strict";const{Response:r,makeNetworkError:n,makeAppropriateNetworkError:i,filterResponse:s,makeResponse:o}=t(4507);const{Headers:a}=t(4721);const{Request:c,makeRequest:g}=t(6369);const E=t(9796);const{bytesMatch:l,makePolicyContainer:Q,clonePolicyContainer:B,requestBadPort:h,TAOCheck:C,appendRequestOriginHeader:u,responseLocationURL:I,requestCurrentURL:d,setRequestReferrerPolicyOnRedirect:p,tryUpgradeRequestToAPotentiallyTrustworthyURL:y,createOpaqueTimingInfo:D,appendFetchMetadata:m,corsCheck:w,crossOriginResourcePolicyCheck:R,determineRequestsReferrer:b,coarsenedSharedCurrentTime:k,createDeferredPromise:F,isBlobLike:S,sameOrigin:N,isCancelled:U,isAborted:v,isErrorLike:L,fullyReadBody:M,readableStreamClose:T,isomorphicEncode:G,urlIsLocal:Y,urlIsHttpHttpsScheme:H,urlHasHttpsScheme:x}=t(2671);const{kState:J,kHeaders:V,kGuard:O,kRealm:_}=t(5525);const P=t(9491);const{safelyExtractBody:q}=t(8032);const{redirectStatus:W,nullBodyStatus:j,safeMethods:Z,requestBodyHeader:z,subresource:X,DOMException:K}=t(6598);const{kHeadersList:$}=t(5862);const AA=t(2361);const{Readable:eA,pipeline:tA}=t(2781);const{addAbortListener:rA,isErrored:nA,isReadable:iA,nodeMajor:sA,nodeMinor:oA}=t(8657);const{dataURLProcessor:aA,serializeAMimeType:cA}=t(1353);const{TransformStream:gA}=t(5356);const{getGlobalDispatcher:EA}=t(5230);const{webidl:lA}=t(4161);const{STATUS_CODES:QA}=t(3685);let BA;let hA=globalThis.ReadableStream;class Fetch extends AA{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 K("The operation was aborted.","AbortError")}this.serializedAbortReason=A;this.connection?.destroy(A);this.emit("terminated",A)}}async function fetch(A,e={}){lA.argumentLengthCheck(arguments,1,{header:"globalThis.fetch"});const t=F();let n;try{n=new c(A,e)}catch(A){t.reject(A);return t.promise}const i=n[J];if(n.signal.aborted){abortFetch(t,i,null,n.signal.reason);return t.promise}const s=i.client.globalObject;if(s?.constructor?.name==="ServiceWorkerGlobalScope"){i.serviceWorkers="none"}let o=null;const a=null;let g=false;let E=null;rA(n.signal,(()=>{g=true;P(E!=null);E.abort(n.signal.reason);abortFetch(t,i,o,n.signal.reason)}));const handleFetchDone=A=>finalizeAndReportTiming(A,"fetch");const processResponse=A=>{if(g){return}if(A.aborted){abortFetch(t,i,o,E.serializedAbortReason);return}if(A.type==="error"){t.reject(Object.assign(new TypeError("fetch failed"),{cause:A.error}));return}o=new r;o[J]=A;o[_]=a;o[V][$]=A.headersList;o[V][O]="immutable";o[V][_]=a;t.resolve(o)};E=fetching({request:i,processResponseEndOfBody:handleFetchDone,processResponse:processResponse,dispatcher:e.dispatcher??EA()});return t.promise}function finalizeAndReportTiming(A,e="other"){if(A.type==="error"&&A.aborted){return}if(!A.urlList?.length){return}const t=A.urlList[0];let r=A.timingInfo;let n=A.cacheState;if(!H(t)){return}if(r===null){return}if(!r.timingAllowPassed){r=D({startTime:r.startTime});n=""}r.endTime=k();A.timingInfo=r;markResourceTiming(r,t,e,globalThis,n)}function markResourceTiming(A,e,t,r,n){if(sA>18||sA===18&&oA>=2){performance.markResourceTiming(A,e.href,t,r,n)}}function abortFetch(A,e,t,r){if(!r){r=new K("The operation was aborted.","AbortError")}A.reject(r);if(e.body!=null&&iA(e.body?.stream)){e.body.stream.cancel(r).catch((A=>{if(A.code==="ERR_INVALID_STATE"){return}throw A}))}if(t==null){return}const n=t[J];if(n.body!=null&&iA(n.body?.stream)){n.body.stream.cancel(r).catch((A=>{if(A.code==="ERR_INVALID_STATE"){return}throw A}))}}function fetching({request:A,processRequestBodyChunkLength:e,processRequestEndOfBody:t,processResponse:r,processResponseEndOfBody:n,processResponseConsumeBody:i,useParallelQueue:s=false,dispatcher:o}){let a=null;let c=false;if(A.client!=null){a=A.client.globalObject;c=A.client.crossOriginIsolatedCapability}const g=k(c);const E=D({startTime:g});const l={controller:new Fetch(o),request:A,timingInfo:E,processRequestBodyChunkLength:e,processRequestEndOfBody:t,processResponse:r,processResponseConsumeBody:i,processResponseEndOfBody:n,taskDestination:a,crossOriginIsolatedCapability:c};P(!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=B(A.client.policyContainer)}else{A.policyContainer=Q()}}if(!A.headersList.contains("accept")){const e="*/*";A.headersList.append("accept",e)}if(!A.headersList.contains("accept-language")){A.headersList.append("accept-language","*")}if(A.priority===null){}if(X.includes(A.destination)){}mainFetch(l).catch((A=>{l.controller.terminate(A)}));return l.controller}async function mainFetch(A,e=false){const t=A.request;let r=null;if(t.localURLsOnly&&!Y(d(t))){r=n("local URLs only")}y(t);if(h(t)==="blocked"){r=n("bad port")}if(t.referrerPolicy===""){t.referrerPolicy=t.policyContainer.referrerPolicy}if(t.referrer!=="no-referrer"){t.referrer=b(t)}if(r===null){r=await(async()=>{const e=d(t);if(N(e,t.url)&&t.responseTainting==="basic"||e.protocol==="data:"||(t.mode==="navigate"||t.mode==="websocket")){t.responseTainting="basic";return await schemeFetch(A)}if(t.mode==="same-origin"){return n('request mode cannot be "same-origin"')}if(t.mode==="no-cors"){if(t.redirect!=="follow"){return n('redirect mode cannot be "follow" for "no-cors" request')}t.responseTainting="opaque";return await schemeFetch(A)}if(!H(d(t))){return n("URL scheme must be a HTTP(S) scheme")}t.responseTainting="cors";return await httpFetch(A)})()}if(e){return r}if(r.status!==0&&!r.internalResponse){if(t.responseTainting==="cors"){}if(t.responseTainting==="basic"){r=s(r,"basic")}else if(t.responseTainting==="cors"){r=s(r,"cors")}else if(t.responseTainting==="opaque"){r=s(r,"opaque")}else{P(false)}}let i=r.status===0?r:r.internalResponse;if(i.urlList.length===0){i.urlList.push(...t.urlList)}if(!t.timingAllowFailed){r.timingAllowPassed=true}if(r.type==="opaque"&&i.status===206&&i.rangeRequested&&!t.headers.contains("range")){r=i=n()}if(r.status!==0&&(t.method==="HEAD"||t.method==="CONNECT"||j.includes(i.status))){i.body=null;A.controller.dump=true}if(t.integrity){const processBodyError=e=>fetchFinale(A,n(e));if(t.responseTainting==="opaque"||r.body==null){processBodyError(r.error);return}const processBody=e=>{if(!l(e,t.integrity)){processBodyError("integrity mismatch");return}r.body=q(e)[0];fetchFinale(A,r)};await M(r.body,processBody,processBodyError)}else{fetchFinale(A,r)}}async function schemeFetch(A){if(U(A)&&A.request.redirectCount===0){return i(A)}const{request:e}=A;const{protocol:r}=d(e);switch(r){case"about:":{return n("about scheme is not supported")}case"blob:":{if(!BA){BA=t(4300).resolveObjectURL}const A=d(e);if(A.search.length!==0){return n("NetworkError when attempting to fetch resource.")}const r=BA(A.toString());if(e.method!=="GET"||!S(r)){return n("invalid method")}const i=q(r);const s=i[0];const a=G(`${s.length}`);const c=i[1]??"";const g=o({statusText:"OK",headersList:[["content-length",{name:"Content-Length",value:a}],["content-type",{name:"Content-Type",value:c}]]});g.body=s;return g}case"data:":{const A=d(e);const t=aA(A);if(t==="failure"){return n("failed to fetch the data URL")}const r=cA(t.mimeType);return o({statusText:"OK",headersList:[["content-type",{name:"Content-Type",value:r}]],body:q(t.body)[0]})}case"file:":{return n("not implemented... yet...")}case"http:":case"https:":{return await httpFetch(A).catch((A=>n(A)))}default:{return n("unknown scheme")}}}function finalizeResponse(A,e){A.request.done=true;if(A.processResponseDone!=null){queueMicrotask((()=>A.processResponseDone(e)))}}async function fetchFinale(A,e){if(e.type==="error"){e.urlList=[A.request.urlList[0]];e.timingInfo=D({startTime:A.timingInfo.startTime})}const processResponseEndOfBody=()=>{A.request.done=true;if(A.processResponseEndOfBody!=null){queueMicrotask((()=>A.processResponseEndOfBody(e)))}};if(A.processResponse!=null){queueMicrotask((()=>A.processResponse(e)))}if(e.body==null){processResponseEndOfBody()}else{const identityTransformAlgorithm=(A,e)=>{e.enqueue(A)};const A=new gA({start(){},transform:identityTransformAlgorithm,flush:processResponseEndOfBody},{size(){return 1}},{size(){return 1}});e.body={stream:e.body.stream.pipeThrough(A)}}if(A.processResponseConsumeBody!=null){const processBody=t=>A.processResponseConsumeBody(e,t);const processBodyError=t=>A.processResponseConsumeBody(e,t);if(e.body==null){queueMicrotask((()=>processBody(null)))}else{await M(e.body,processBody,processBodyError)}}}async function httpFetch(A){const e=A.request;let t=null;let r=null;const i=A.timingInfo;if(e.serviceWorkers==="all"){}if(t===null){if(e.redirect==="follow"){e.serviceWorkers="none"}r=t=await httpNetworkOrCacheFetch(A);if(e.responseTainting==="cors"&&w(e,t)==="failure"){return n("cors failure")}if(C(e,t)==="failure"){e.timingAllowFailed=true}}if((e.responseTainting==="opaque"||t.type==="opaque")&&R(e.origin,e.client,e.destination,r)==="blocked"){return n("blocked")}if(W.includes(r.status)){if(e.redirect!=="manual"){A.controller.connection.destroy()}if(e.redirect==="error"){t=n("unexpected redirect")}else if(e.redirect==="manual"){t=r}else if(e.redirect==="follow"){t=await httpRedirectFetch(A,t)}else{P(false)}}t.timingInfo=i;return t}async function httpRedirectFetch(A,e){const t=A.request;const r=e.internalResponse?e.internalResponse:e;let i;try{i=I(r,d(t).hash);if(i==null){return e}}catch(A){return n(A)}if(!H(i)){return n("URL scheme must be a HTTP(S) scheme")}if(t.redirectCount===20){return n("redirect count exceeded")}t.redirectCount+=1;if(t.mode==="cors"&&(i.username||i.password)&&!N(t,i)){return n('cross origin not allowed for request mode "cors"')}if(t.responseTainting==="cors"&&(i.username||i.password)){return n('URL cannot contain credentials for request mode "cors"')}if(r.status!==303&&t.body!=null&&t.body.source==null){return n()}if([301,302].includes(r.status)&&t.method==="POST"||r.status===303&&!["GET","HEAD"].includes(t.method)){t.method="GET";t.body=null;for(const A of z){t.headersList.delete(A)}}if(!N(d(t),i)){t.headersList.delete("authorization");t.headersList.delete("cookie");t.headersList.delete("host")}if(t.body!=null){P(t.body.source!=null);t.body=q(t.body.source)[0]}const s=A.timingInfo;s.redirectEndTime=s.postRedirectStartTime=k(A.crossOriginIsolatedCapability);if(s.redirectStartTime===0){s.redirectStartTime=s.startTime}t.urlList.push(i);p(t,r);return mainFetch(A,true)}async function httpNetworkOrCacheFetch(A,e=false,t=false){const r=A.request;let s=null;let o=null;let a=null;const c=null;const E=false;if(r.window==="no-window"&&r.redirect==="error"){s=A;o=r}else{o=g(r);s={...A};s.request=o}const l=r.credentials==="include"||r.credentials==="same-origin"&&r.responseTainting==="basic";const Q=o.body?o.body.length:null;let B=null;if(o.body==null&&["POST","PUT"].includes(o.method)){B="0"}if(Q!=null){B=G(`${Q}`)}if(B!=null){o.headersList.append("content-length",B)}if(Q!=null&&o.keepalive){}if(o.referrer instanceof URL){o.headersList.append("referer",G(o.referrer.href))}u(o);m(o);if(!o.headersList.contains("user-agent")){o.headersList.append("user-agent",typeof esbuildDetection==="undefined"?"undici":"node")}if(o.cache==="default"&&(o.headersList.contains("if-modified-since")||o.headersList.contains("if-none-match")||o.headersList.contains("if-unmodified-since")||o.headersList.contains("if-match")||o.headersList.contains("if-range"))){o.cache="no-store"}if(o.cache==="no-cache"&&!o.preventNoCacheCacheControlHeaderModification&&!o.headersList.contains("cache-control")){o.headersList.append("cache-control","max-age=0")}if(o.cache==="no-store"||o.cache==="reload"){if(!o.headersList.contains("pragma")){o.headersList.append("pragma","no-cache")}if(!o.headersList.contains("cache-control")){o.headersList.append("cache-control","no-cache")}}if(o.headersList.contains("range")){o.headersList.append("accept-encoding","identity")}if(!o.headersList.contains("accept-encoding")){if(x(d(o))){o.headersList.append("accept-encoding","br, gzip, deflate")}else{o.headersList.append("accept-encoding","gzip, deflate")}}o.headersList.delete("host");if(l){}if(c==null){o.cache="no-store"}if(o.mode!=="no-store"&&o.mode!=="reload"){}if(a==null){if(o.mode==="only-if-cached"){return n("only if cached")}const A=await httpNetworkFetch(s,l,t);if(!Z.includes(o.method)&&A.status>=200&&A.status<=399){}if(E&&A.status===304){}if(a==null){a=A}}a.urlList=[...o.urlList];if(o.headersList.contains("range")){a.rangeRequested=true}a.requestIncludesCredentials=l;if(a.status===407){if(r.window==="no-window"){return n()}if(U(A)){return i(A)}return n("proxy authentication required")}if(a.status===421&&!t&&(r.body==null||r.body.source!=null)){if(U(A)){return i(A)}A.controller.connection.destroy();a=await httpNetworkOrCacheFetch(A,e,true)}if(e){}return a}async function httpNetworkFetch(A,e=false,r=false){P(!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 K("The operation was aborted.","AbortError"))}}};const s=A.request;let c=null;const g=A.timingInfo;const l=null;if(l==null){s.cache="no-store"}const Q=r?"yes":"no";if(s.mode==="websocket"){}else{}let B=null;if(s.body==null&&A.processRequestEndOfBody){queueMicrotask((()=>A.processRequestEndOfBody()))}else if(s.body!=null){const processBodyChunk=async function*(e){if(U(A)){return}yield e;A.processRequestBodyChunkLength?.(e.byteLength)};const processEndOfBody=()=>{if(U(A)){return}if(A.processRequestEndOfBody){A.processRequestEndOfBody()}};const processBodyError=e=>{if(U(A)){return}if(e.name==="AbortError"){A.controller.abort()}else{A.controller.terminate(e)}};B=async function*(){try{for await(const A of s.body.stream){yield*processBodyChunk(A)}processEndOfBody()}catch(A){processBodyError(A)}}()}try{const{body:e,status:t,statusText:r,headersList:n,socket:i}=await dispatch({body:B});if(i){c=o({status:t,statusText:r,headersList:n,socket:i})}else{const i=e[Symbol.asyncIterator]();A.controller.next=()=>i.next();c=o({status:t,statusText:r,headersList:n})}}catch(e){if(e.name==="AbortError"){A.controller.connection.destroy();return i(A,e)}return n(e)}const pullAlgorithm=()=>{A.controller.resume()};const cancelAlgorithm=e=>{A.controller.abort(e)};if(!hA){hA=t(5356).ReadableStream}const h=new hA({async start(e){A.controller.controller=e},async pull(A){await pullAlgorithm(A)},async cancel(A){await cancelAlgorithm(A)}},{highWaterMark:0,size(){return 1}});c.body={stream:h};A.controller.on("terminated",onAborted);A.controller.resume=async()=>{while(true){let e;let t;try{const{done:t,value:r}=await A.controller.next();if(v(A)){break}e=t?undefined:r}catch(r){if(A.controller.ended&&!g.encodedBodySize){e=undefined}else{e=r;t=true}}if(e===undefined){T(A.controller.controller);finalizeResponse(A,c);return}g.decodedBodySize+=e?.byteLength??0;if(t){A.controller.terminate(e);return}A.controller.controller.enqueue(new Uint8Array(e));if(nA(h)){A.controller.terminate();return}if(!A.controller.controller.desiredSize){return}}};function onAborted(e){if(v(A)){c.aborted=true;if(iA(h)){A.controller.controller.error(A.controller.serializedAbortReason)}}else{if(iA(h)){A.controller.controller.error(new TypeError("terminated",{cause:L(e)?e:undefined}))}}A.controller.connection.destroy()}return c;async function dispatch({body:e}){const t=d(s);const r=A.controller.dispatcher;return new Promise(((n,i)=>r.dispatch({path:t.pathname+t.search,origin:t.origin,method:s.method,body:A.controller.dispatcher.isMockActive?s.body&&s.body.source:e,headers:s.headersList.entries,maxRedirections:0,upgrade:s.mode==="websocket"?"websocket":undefined},{body:null,abort:null,onConnect(e){const{connection:t}=A.controller;if(t.destroyed){e(new K("The operation was aborted.","AbortError"))}else{A.controller.on("terminated",e);this.abort=t.abort=e}},onHeaders(A,e,t,r){if(A<200){return}let i=[];let o="";const c=new a;if(Array.isArray(e)){for(let A=0;AA.trim()))}else if(t.toLowerCase()==="location"){o=r}c.append(t,r)}}else{const A=Object.keys(e);for(const t of A){const A=e[t];if(t.toLowerCase()==="content-encoding"){i=A.toLowerCase().split(",").map((A=>A.trim())).reverse()}else if(t.toLowerCase()==="location"){o=A}c.append(t,A)}}this.body=new eA({read:t});const g=[];const l=s.redirect==="follow"&&o&&W.includes(A);if(s.method!=="HEAD"&&s.method!=="CONNECT"&&!j.includes(A)&&!l){for(const A of i){if(A==="x-gzip"||A==="gzip"){g.push(E.createGunzip({flush:E.constants.Z_SYNC_FLUSH,finishFlush:E.constants.Z_SYNC_FLUSH}))}else if(A==="deflate"){g.push(E.createInflate())}else if(A==="br"){g.push(E.createBrotliDecompress())}else{g.length=0;break}}}n({status:A,statusText:r,headersList:c[$],body:g.length?tA(this.body,...g,(()=>{})):this.body.on("error",(()=>{}))});return true},onData(e){if(A.controller.dump){return}const t=e;g.encodedBodySize+=t.byteLength;return this.body.push(t)},onComplete(){if(this.abort){A.controller.off("terminated",this.abort)}A.controller.ended=true;this.body.push(null)},onError(e){if(this.abort){A.controller.off("terminated",this.abort)}this.body?.destroy(e);A.controller.terminate(e);i(e)},onUpgrade(A,e,t){if(A!==101){return}const r=new a;for(let A=0;A{"use strict";const{extractBody:r,mixinBody:n,cloneBody:i}=t(8032);const{Headers:s,fill:o,HeadersList:a}=t(4721);const{FinalizationRegistry:c}=t(4017)();const g=t(8657);const{isValidHTTPToken:E,sameOrigin:l,normalizeMethod:Q,makePolicyContainer:B}=t(2671);const{forbiddenMethods:h,corsSafeListedMethods:C,referrerPolicy:u,requestRedirect:I,requestMode:d,requestCredentials:p,requestCache:y,requestDuplex:D}=t(6598);const{kEnumerableProperty:m}=g;const{kHeaders:w,kSignal:R,kState:b,kGuard:k,kRealm:F}=t(5525);const{webidl:S}=t(4161);const{getGlobalOrigin:N}=t(5730);const{URLSerializer:U}=t(1353);const{kHeadersList:v}=t(5862);const L=t(9491);const{getMaxListeners:M,setMaxListeners:T,getEventListeners:G,defaultMaxListeners:Y}=t(2361);let H=globalThis.TransformStream;const x=Symbol("init");const J=Symbol("abortController");const V=new c((({signal:A,abort:e})=>{A.removeEventListener("abort",e)}));class Request{constructor(A,e={}){if(A===x){return}S.argumentLengthCheck(arguments,1,{header:"Request constructor"});A=S.converters.RequestInfo(A);e=S.converters.RequestInit(e);this[F]={settingsObject:{baseUrl:N(),get origin(){return this.baseUrl?.origin},policyContainer:B()}};let n=null;let i=null;const a=this[F].settingsObject.baseUrl;let c=null;if(typeof A==="string"){let e;try{e=new URL(A,a)}catch(e){throw new TypeError("Failed to parse URL from "+A,{cause:e})}if(e.username||e.password){throw new TypeError("Request cannot be constructed from a URL that includes credentials: "+A)}n=makeRequest({urlList:[e]});i="cors"}else{L(A instanceof Request);n=A[b];c=A[R]}const u=this[F].settingsObject.origin;let I="client";if(n.window?.constructor?.name==="EnvironmentSettingsObject"&&l(n.window,u)){I=n.window}if(e.window!=null){throw new TypeError(`'window' option '${I}' must be null`)}if("window"in e){I="no-window"}n=makeRequest({method:n.method,headersList:n.headersList,unsafeRequest:n.unsafeRequest,client:this[F].settingsObject,window:I,priority:n.priority,origin:n.origin,referrer:n.referrer,referrerPolicy:n.referrerPolicy,mode:n.mode,credentials:n.credentials,cache:n.cache,redirect:n.redirect,integrity:n.integrity,keepalive:n.keepalive,reloadNavigation:n.reloadNavigation,historyNavigation:n.historyNavigation,urlList:[...n.urlList]});if(Object.keys(e).length>0){if(n.mode==="navigate"){n.mode="same-origin"}n.reloadNavigation=false;n.historyNavigation=false;n.origin="client";n.referrer="client";n.referrerPolicy="";n.url=n.urlList[n.urlList.length-1];n.urlList=[n.url]}if(e.referrer!==undefined){const A=e.referrer;if(A===""){n.referrer="no-referrer"}else{let e;try{e=new URL(A,a)}catch(e){throw new TypeError(`Referrer "${A}" is not a valid URL.`,{cause:e})}if(e.protocol==="about:"&&e.hostname==="client"||u&&!l(e,this[F].settingsObject.baseUrl)){n.referrer="client"}else{n.referrer=e}}}if(e.referrerPolicy!==undefined){n.referrerPolicy=e.referrerPolicy}let d;if(e.mode!==undefined){d=e.mode}else{d=i}if(d==="navigate"){throw S.errors.exception({header:"Request constructor",message:"invalid request mode navigate."})}if(d!=null){n.mode=d}if(e.credentials!==undefined){n.credentials=e.credentials}if(e.cache!==undefined){n.cache=e.cache}if(n.cache==="only-if-cached"&&n.mode!=="same-origin"){throw new TypeError("'only-if-cached' can be set only with 'same-origin' mode")}if(e.redirect!==undefined){n.redirect=e.redirect}if(e.integrity!==undefined&&e.integrity!=null){n.integrity=String(e.integrity)}if(e.keepalive!==undefined){n.keepalive=Boolean(e.keepalive)}if(e.method!==undefined){let A=e.method;if(!E(e.method)){throw TypeError(`'${e.method}' is not a valid HTTP method.`)}if(h.indexOf(A.toUpperCase())!==-1){throw TypeError(`'${e.method}' HTTP method is unsupported.`)}A=Q(e.method);n.method=A}if(e.signal!==undefined){c=e.signal}this[b]=n;const p=new AbortController;this[R]=p.signal;this[R][F]=this[F];if(c!=null){if(!c||typeof c.aborted!=="boolean"||typeof c.addEventListener!=="function"){throw new TypeError("Failed to construct 'Request': member signal is not of type AbortSignal.")}if(c.aborted){p.abort(c.reason)}else{this[J]=p;const A=new WeakRef(p);const abort=function(){const e=A.deref();if(e!==undefined){e.abort(this.reason)}};try{if(typeof M==="function"&&M(c)===Y){T(100,c)}else if(G(c,"abort").length>=Y){T(100,c)}}catch{}g.addAbortListener(c,abort);V.register(p,{signal:c,abort:abort})}}this[w]=new s;this[w][v]=n.headersList;this[w][k]="request";this[w][F]=this[F];if(d==="no-cors"){if(!C.includes(n.method)){throw new TypeError(`'${n.method} is unsupported in no-cors mode.`)}this[w][k]="request-no-cors"}if(Object.keys(e).length!==0){let A=new s(this[w]);if(e.headers!==undefined){A=e.headers}this[w][v].clear();if(A.constructor.name==="Headers"){for(const[e,t]of A){this[w].append(e,t)}}else{o(this[w],A)}}const y=A instanceof Request?A[b].body:null;if((e.body!=null||y!=null)&&(n.method==="GET"||n.method==="HEAD")){throw new TypeError("Request with GET/HEAD method cannot have body.")}let D=null;if(e.body!=null){const[A,t]=r(e.body,n.keepalive);D=A;if(t&&!this[w][v].contains("content-type")){this[w].append("content-type",t)}}const m=D??y;if(m!=null&&m.source==null){if(D!=null&&e.duplex==null){throw new TypeError("RequestInit: duplex option is required when sending a body.")}if(n.mode!=="same-origin"&&n.mode!=="cors"){throw new TypeError('If request is made from ReadableStream, mode should be "same-origin" or "cors"')}n.useCORSPreflightFlag=true}let U=m;if(D==null&&y!=null){if(g.isDisturbed(y.stream)||y.stream.locked){throw new TypeError("Cannot construct a Request with a Request object that has already been used.")}if(!H){H=t(5356).TransformStream}const A=new H;y.stream.pipeThrough(A);U={source:y.source,length:y.length,stream:A.readable}}this[b].body=U}get method(){S.brandCheck(this,Request);return this[b].method}get url(){S.brandCheck(this,Request);return U(this[b].url)}get headers(){S.brandCheck(this,Request);return this[w]}get destination(){S.brandCheck(this,Request);return this[b].destination}get referrer(){S.brandCheck(this,Request);if(this[b].referrer==="no-referrer"){return""}if(this[b].referrer==="client"){return"about:client"}return this[b].referrer.toString()}get referrerPolicy(){S.brandCheck(this,Request);return this[b].referrerPolicy}get mode(){S.brandCheck(this,Request);return this[b].mode}get credentials(){return this[b].credentials}get cache(){S.brandCheck(this,Request);return this[b].cache}get redirect(){S.brandCheck(this,Request);return this[b].redirect}get integrity(){S.brandCheck(this,Request);return this[b].integrity}get keepalive(){S.brandCheck(this,Request);return this[b].keepalive}get isReloadNavigation(){S.brandCheck(this,Request);return this[b].reloadNavigation}get isHistoryNavigation(){S.brandCheck(this,Request);return this[b].historyNavigation}get signal(){S.brandCheck(this,Request);return this[R]}get body(){S.brandCheck(this,Request);return this[b].body?this[b].body.stream:null}get bodyUsed(){S.brandCheck(this,Request);return!!this[b].body&&g.isDisturbed(this[b].body.stream)}get duplex(){S.brandCheck(this,Request);return"half"}clone(){S.brandCheck(this,Request);if(this.bodyUsed||this.body?.locked){throw new TypeError("unusable")}const A=cloneRequest(this[b]);const e=new Request(x);e[b]=A;e[F]=this[F];e[w]=new s;e[w][v]=A.headersList;e[w][k]=this[w][k];e[w][F]=this[w][F];const t=new AbortController;if(this.signal.aborted){t.abort(this.signal.reason)}else{g.addAbortListener(this.signal,(()=>{t.abort(this.signal.reason)}))}e[R]=t.signal;return e}}n(Request);function makeRequest(A){const e={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 a(A.headersList):new a};e.url=e.urlList[0];return e}function cloneRequest(A){const e=makeRequest({...A,body:null});if(A.body!=null){e.body=i(A.body)}return e}Object.defineProperties(Request.prototype,{method:m,url:m,headers:m,redirect:m,clone:m,signal:m,duplex:m,destination:m,body:m,bodyUsed:m,isHistoryNavigation:m,isReloadNavigation:m,keepalive:m,integrity:m,cache:m,credentials:m,attribute:m,referrerPolicy:m,referrer:m,mode:m,[Symbol.toStringTag]:{value:"Request",configurable:true}});S.converters.Request=S.interfaceConverter(Request);S.converters.RequestInfo=function(A){if(typeof A==="string"){return S.converters.USVString(A)}if(A instanceof Request){return S.converters.Request(A)}return S.converters.USVString(A)};S.converters.AbortSignal=S.interfaceConverter(AbortSignal);S.converters.RequestInit=S.dictionaryConverter([{key:"method",converter:S.converters.ByteString},{key:"headers",converter:S.converters.HeadersInit},{key:"body",converter:S.nullableConverter(S.converters.BodyInit)},{key:"referrer",converter:S.converters.USVString},{key:"referrerPolicy",converter:S.converters.DOMString,allowedValues:u},{key:"mode",converter:S.converters.DOMString,allowedValues:d},{key:"credentials",converter:S.converters.DOMString,allowedValues:p},{key:"cache",converter:S.converters.DOMString,allowedValues:y},{key:"redirect",converter:S.converters.DOMString,allowedValues:I},{key:"integrity",converter:S.converters.DOMString},{key:"keepalive",converter:S.converters.boolean},{key:"signal",converter:S.nullableConverter((A=>S.converters.AbortSignal(A,{strict:false})))},{key:"window",converter:S.converters.any},{key:"duplex",converter:S.converters.DOMString,allowedValues:D}]);A.exports={Request:Request,makeRequest:makeRequest}},4507:(A,e,t)=>{"use strict";const{Headers:r,HeadersList:n,fill:i}=t(4721);const{extractBody:s,cloneBody:o,mixinBody:a}=t(8032);const c=t(8657);const{kEnumerableProperty:g}=c;const{isValidReasonPhrase:E,isCancelled:l,isAborted:Q,isBlobLike:B,serializeJavascriptValueToJSONString:h,isErrorLike:C,isomorphicEncode:u}=t(2671);const{redirectStatus:I,nullBodyStatus:d,DOMException:p}=t(6598);const{kState:y,kHeaders:D,kGuard:m,kRealm:w}=t(5525);const{webidl:R}=t(4161);const{FormData:b}=t(5376);const{getGlobalOrigin:k}=t(5730);const{URLSerializer:F}=t(1353);const{kHeadersList:S}=t(5862);const N=t(9491);const{types:U}=t(3837);const v=globalThis.ReadableStream||t(5356).ReadableStream;class Response{static error(){const A={settingsObject:{}};const e=new Response;e[y]=makeNetworkError();e[w]=A;e[D][S]=e[y].headersList;e[D][m]="immutable";e[D][w]=A;return e}static json(A,e={}){R.argumentLengthCheck(arguments,1,{header:"Response.json"});if(e!==null){e=R.converters.ResponseInit(e)}const t=new TextEncoder("utf-8").encode(h(A));const r=s(t);const n={settingsObject:{}};const i=new Response;i[w]=n;i[D][m]="response";i[D][w]=n;initializeResponse(i,e,{body:r[0],type:"application/json"});return i}static redirect(A,e=302){const t={settingsObject:{}};R.argumentLengthCheck(arguments,1,{header:"Response.redirect"});A=R.converters.USVString(A);e=R.converters["unsigned short"](e);let r;try{r=new URL(A,k())}catch(e){throw Object.assign(new TypeError("Failed to parse URL from "+A),{cause:e})}if(!I.includes(e)){throw new RangeError("Invalid status code "+e)}const n=new Response;n[w]=t;n[D][m]="immutable";n[D][w]=t;n[y].status=e;const i=u(F(r));n[y].headersList.append("location",i);return n}constructor(A=null,e={}){if(A!==null){A=R.converters.BodyInit(A)}e=R.converters.ResponseInit(e);this[w]={settingsObject:{}};this[y]=makeResponse({});this[D]=new r;this[D][m]="response";this[D][S]=this[y].headersList;this[D][w]=this[w];let t=null;if(A!=null){const[e,r]=s(A);t={body:e,type:r}}initializeResponse(this,e,t)}get type(){R.brandCheck(this,Response);return this[y].type}get url(){R.brandCheck(this,Response);const A=this[y].urlList;const e=A[A.length-1]??null;if(e===null){return""}return F(e,true)}get redirected(){R.brandCheck(this,Response);return this[y].urlList.length>1}get status(){R.brandCheck(this,Response);return this[y].status}get ok(){R.brandCheck(this,Response);return this[y].status>=200&&this[y].status<=299}get statusText(){R.brandCheck(this,Response);return this[y].statusText}get headers(){R.brandCheck(this,Response);return this[D]}get body(){R.brandCheck(this,Response);return this[y].body?this[y].body.stream:null}get bodyUsed(){R.brandCheck(this,Response);return!!this[y].body&&c.isDisturbed(this[y].body.stream)}clone(){R.brandCheck(this,Response);if(this.bodyUsed||this.body&&this.body.locked){throw R.errors.exception({header:"Response.clone",message:"Body has already been consumed."})}const A=cloneResponse(this[y]);const e=new Response;e[y]=A;e[w]=this[w];e[D][S]=A.headersList;e[D][m]=this[D][m];e[D][w]=this[D][w];return e}}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(A){if(A.internalResponse){return filterResponse(cloneResponse(A.internalResponse),A.type)}const e=makeResponse({...A,body:null});if(A.body!=null){e.body=o(A.body)}return e}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 n(A.headersList):new n,urlList:A.urlList?[...A.urlList]:[]}}function makeNetworkError(A){const e=C(A);return makeResponse({type:"error",status:0,error:e?A:new Error(A?String(A):A),aborted:A&&A.name==="AbortError"})}function makeFilteredResponse(A,e){e={internalResponse:A,...e};return new Proxy(A,{get(A,t){return t in e?e[t]:A[t]},set(A,t,r){N(!(t in e));A[t]=r;return true}})}function filterResponse(A,e){if(e==="basic"){return makeFilteredResponse(A,{type:"basic",headersList:A.headersList})}else if(e==="cors"){return makeFilteredResponse(A,{type:"cors",headersList:A.headersList})}else if(e==="opaque"){return makeFilteredResponse(A,{type:"opaque",urlList:Object.freeze([]),status:0,statusText:"",body:null})}else if(e==="opaqueredirect"){return makeFilteredResponse(A,{type:"opaqueredirect",status:0,statusText:"",headersList:[],body:null})}else{N(false)}}function makeAppropriateNetworkError(A,e=null){N(l(A));return Q(A)?makeNetworkError(Object.assign(new p("The operation was aborted.","AbortError"),{cause:e})):makeNetworkError(Object.assign(new p("Request was cancelled."),{cause:e}))}function initializeResponse(A,e,t){if(e.status!==null&&(e.status<200||e.status>599)){throw new RangeError('init["status"] must be in the range of 200 to 599, inclusive.')}if("statusText"in e&&e.statusText!=null){if(!E(String(e.statusText))){throw new TypeError("Invalid statusText")}}if("status"in e&&e.status!=null){A[y].status=e.status}if("statusText"in e&&e.statusText!=null){A[y].statusText=e.statusText}if("headers"in e&&e.headers!=null){i(A[D],e.headers)}if(t){if(d.includes(A.status)){throw R.errors.exception({header:"Response constructor",message:"Invalid response status code "+A.status})}A[y].body=t.body;if(t.type!=null&&!A[y].headersList.contains("Content-Type")){A[y].headersList.append("content-type",t.type)}}}R.converters.ReadableStream=R.interfaceConverter(v);R.converters.FormData=R.interfaceConverter(b);R.converters.URLSearchParams=R.interfaceConverter(URLSearchParams);R.converters.XMLHttpRequestBodyInit=function(A){if(typeof A==="string"){return R.converters.USVString(A)}if(B(A)){return R.converters.Blob(A,{strict:false})}if(U.isAnyArrayBuffer(A)||U.isTypedArray(A)||U.isDataView(A)){return R.converters.BufferSource(A)}if(c.isFormDataLike(A)){return R.converters.FormData(A,{strict:false})}if(A instanceof URLSearchParams){return R.converters.URLSearchParams(A)}return R.converters.DOMString(A)};R.converters.BodyInit=function(A){if(A instanceof v){return R.converters.ReadableStream(A)}if(A?.[Symbol.asyncIterator]){return A}return R.converters.XMLHttpRequestBodyInit(A)};R.converters.ResponseInit=R.dictionaryConverter([{key:"status",converter:R.converters["unsigned short"],defaultValue:200},{key:"statusText",converter:R.converters.ByteString,defaultValue:""},{key:"headers",converter:R.converters.HeadersInit}]);A.exports={makeNetworkError:makeNetworkError,makeResponse:makeResponse,makeAppropriateNetworkError:makeAppropriateNetworkError,filterResponse:filterResponse,Response:Response,cloneResponse:cloneResponse}},5525:A=>{"use strict";A.exports={kUrl:Symbol("url"),kHeaders:Symbol("headers"),kSignal:Symbol("signal"),kState:Symbol("state"),kGuard:Symbol("guard"),kRealm:Symbol("realm")}},2671:(A,e,t)=>{"use strict";const{redirectStatus:r,badPorts:n,referrerPolicy:i}=t(6598);const{getGlobalOrigin:s}=t(5730);const{performance:o}=t(4074);const{isBlobLike:a,toUSVString:c,ReadableStreamFrom:g}=t(8657);const E=t(9491);const{isUint8Array:l}=t(9830);let Q;try{Q=t(6113)}catch{}function responseURL(A){const e=A.urlList;const t=e.length;return t===0?null:e[t-1].toString()}function responseLocationURL(A,e){if(!r.includes(A.status)){return null}let t=A.headersList.get("location");if(t!==null&&isValidHeaderValue(t)){t=new URL(t,responseURL(A))}if(t&&!t.hash){t.hash=e}return t}function requestCurrentURL(A){return A.urlList[A.urlList.length-1]}function requestBadPort(A){const e=requestCurrentURL(A);if(urlIsHttpHttpsScheme(e)&&n.includes(e.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 e=0;e=32&&t<=126||t>=128&&t<=255)){return false}}return true}function isTokenChar(A){return!(A>=127||A<=32||A==="("||A===")"||A==="<"||A===">"||A==="@"||A===","||A===";"||A===":"||A==="\\"||A==='"'||A==="/"||A==="["||A==="]"||A==="?"||A==="="||A==="{"||A==="}")}function isValidHTTPToken(A){if(!A||typeof A!=="string"){return false}for(let e=0;e127||!isTokenChar(t)){return false}}return true}function isValidHeaderName(A){if(A.length===0){return false}return isValidHTTPToken(A)}function isValidHeaderValue(A){if(A.startsWith("\t")||A.startsWith(" ")||A.endsWith("\t")||A.endsWith(" ")){return false}if(A.includes("\0")||A.includes("\r")||A.includes("\n")){return false}return true}function setRequestReferrerPolicyOnRedirect(A,e){const{headersList:t}=e;const r=(t.get("referrer-policy")??"").split(",");let n="";if(r.length>0){for(let A=r.length;A!==0;A--){const e=r[A-1].trim();if(i.includes(e)){n=e;break}}}if(n!==""){A.referrerPolicy=n}}function crossOriginResourcePolicyCheck(){return"allowed"}function corsCheck(){return"success"}function TAOCheck(){return"success"}function appendFetchMetadata(A){let e=null;e=A.mode;A.headersList.set("sec-fetch-mode",e)}function appendRequestOriginHeader(A){let e=A.origin;if(A.responseTainting==="cors"||A.mode==="websocket"){if(e){A.headersList.append("origin",e)}}else if(A.method!=="GET"&&A.method!=="HEAD"){switch(A.referrerPolicy){case"no-referrer":e=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))){e=null}break;case"same-origin":if(!sameOrigin(A,requestCurrentURL(A))){e=null}break;default:}if(e){A.headersList.append("origin",e)}}}function coarsenedSharedCurrentTime(A){return o.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 e=A.referrerPolicy;E(e);let t=null;if(A.referrer==="client"){const A=s();if(!A||A.origin==="null"){return"no-referrer"}t=new URL(A)}else if(A.referrer instanceof URL){t=A.referrer}let r=stripURLForReferrer(t);const n=stripURLForReferrer(t,true);if(r.toString().length>4096){r=n}const i=sameOrigin(A,r);const o=isURLPotentiallyTrustworthy(r)&&!isURLPotentiallyTrustworthy(A.url);switch(e){case"origin":return n!=null?n:stripURLForReferrer(t,true);case"unsafe-url":return r;case"same-origin":return i?n:"no-referrer";case"origin-when-cross-origin":return i?r:n;case"strict-origin-when-cross-origin":{const e=requestCurrentURL(A);if(sameOrigin(r,e)){return r}if(isURLPotentiallyTrustworthy(r)&&!isURLPotentiallyTrustworthy(e)){return"no-referrer"}return n}case"strict-origin":case"no-referrer-when-downgrade":default:return o?"no-referrer":n}}function stripURLForReferrer(A,e){E(A instanceof URL);if(A.protocol==="file:"||A.protocol==="about:"||A.protocol==="blank:"){return"no-referrer"}A.username="";A.password="";A.hash="";if(e){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 e=new URL(A);if(e.protocol==="https:"||e.protocol==="wss:"){return true}if(/^127(?:\.[0-9]+){0,2}\.[0-9]+$|^\[(?:0*:)*?:?0*1\]$/.test(e.hostname)||(e.hostname==="localhost"||e.hostname.includes("localhost."))||e.hostname.endsWith(".localhost")){return true}return false}}function bytesMatch(A,e){if(Q===undefined){return true}const t=parseMetadata(e);if(t==="no metadata"){return true}if(t.length===0){return true}const r=t.sort(((A,e)=>e.algo.localeCompare(A.algo)));const n=r[0].algo;const i=r.filter((A=>A.algo===n));for(const e of i){const t=e.algo;let r=e.hash;if(r.endsWith("==")){r=r.slice(0,-2)}let n=Q.createHash(t).update(A).digest("base64");if(n.endsWith("==")){n=n.slice(0,-2)}if(n===r){return true}let i=Q.createHash(t).update(A).digest("base64url");if(i.endsWith("==")){i=i.slice(0,-2)}if(i===r){return true}}return false}const B=/((?sha256|sha384|sha512)-(?[A-z0-9+/]{1}.*={0,2}))( +[\x21-\x7e]?)?/i;function parseMetadata(A){const e=[];let t=true;const r=Q.getHashes();for(const n of A.split(" ")){t=false;const A=B.exec(n);if(A===null||A.groups===undefined){continue}const i=A.groups.algo;if(r.includes(i.toLowerCase())){e.push(A.groups)}}if(t===true){return"no metadata"}return e}function tryUpgradeRequestToAPotentiallyTrustworthyURL(A){}function sameOrigin(A,e){if(A.origin===e.origin&&A.origin==="null"){return true}if(A.protocol===e.protocol&&A.hostname===e.hostname&&A.port===e.port){return true}return false}function createDeferredPromise(){let A;let e;const t=new Promise(((t,r)=>{A=t;e=r}));return{promise:t,resolve:A,reject:e}}function isAborted(A){return A.controller.state==="aborted"}function isCancelled(A){return A.controller.state==="aborted"||A.controller.state==="terminated"}function normalizeMethod(A){return/^(DELETE|GET|HEAD|OPTIONS|POST|PUT)$/i.test(A)?A.toUpperCase():A}function serializeJavascriptValueToJSONString(A){const e=JSON.stringify(A);if(e===undefined){throw new TypeError("Value is not JSON serializable")}E(typeof e==="string");return e}const h=Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()));function makeIterator(A,e,t){const r={index:0,kind:t,target:A};const n={next(){if(Object.getPrototypeOf(this)!==n){throw new TypeError(`'next' called on an object that does not implement interface ${e} Iterator.`)}const{index:A,kind:t,target:i}=r;const s=i();const o=s.length;if(A>=o){return{value:undefined,done:true}}const a=s[A];r.index=A+1;return iteratorResult(a,t)},[Symbol.toStringTag]:`${e} Iterator`};Object.setPrototypeOf(n,h);return Object.setPrototypeOf({},n)}function iteratorResult(A,e){let t;switch(e){case"key":{t=A[0];break}case"value":{t=A[1];break}case"key+value":{t=A;break}}return{value:t,done:false}}async function fullyReadBody(A,e,t){const r=e;const n=t;let i;try{i=A.stream.getReader()}catch(A){n(A);return}try{const A=await readAllBytes(i);r(A)}catch(A){n(A)}}let C=globalThis.ReadableStream;function isReadableStreamLike(A){if(!C){C=t(5356).ReadableStream}return A instanceof C||A[Symbol.toStringTag]==="ReadableStream"&&typeof A.tee==="function"}const u=65535;function isomorphicDecode(A){if(A.lengthA+String.fromCharCode(e)),"")}function readableStreamClose(A){try{A.close()}catch(A){if(!A.message.includes("Controller is already closed")){throw A}}}function isomorphicEncode(A){for(let e=0;eObject.prototype.hasOwnProperty.call(A,e));A.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:I,isErrorLike:isErrorLike,fullyReadBody:fullyReadBody,bytesMatch:bytesMatch,isReadableStreamLike:isReadableStreamLike,readableStreamClose:readableStreamClose,isomorphicEncode:isomorphicEncode,isomorphicDecode:isomorphicDecode,urlIsLocal:urlIsLocal,urlHasHttpsScheme:urlHasHttpsScheme,urlIsHttpHttpsScheme:urlIsHttpHttpsScheme,readAllBytes:readAllBytes}},4161:(A,e,t)=>{"use strict";const{types:r}=t(3837);const{hasOwn:n,toUSVString:i}=t(2671);const s={};s.converters={};s.util={};s.errors={};s.errors.exception=function(A){return new TypeError(`${A.header}: ${A.message}`)};s.errors.conversionFailed=function(A){const e=A.types.length===1?"":" one of";const t=`${A.argument} could not be converted to`+`${e}: ${A.types.join(", ")}.`;return s.errors.exception({header:A.prefix,message:t})};s.errors.invalidArgument=function(A){return s.errors.exception({header:A.prefix,message:`"${A.value}" is an invalid ${A.type}.`})};s.brandCheck=function(A,e,t=undefined){if(t?.strict!==false&&!(A instanceof e)){throw new TypeError("Illegal invocation")}else{return A?.[Symbol.toStringTag]===e.prototype[Symbol.toStringTag]}};s.argumentLengthCheck=function({length:A},e,t){if(An){throw s.errors.exception({header:"Integer conversion",message:`Value must be between ${i}-${n}, got ${o}.`})}return o}if(!Number.isNaN(o)&&r.clamp===true){o=Math.min(Math.max(o,i),n);if(Math.floor(o)%2===0){o=Math.floor(o)}else{o=Math.ceil(o)}return o}if(Number.isNaN(o)||o===0&&Object.is(0,o)||o===Number.POSITIVE_INFINITY||o===Number.NEGATIVE_INFINITY){return 0}o=s.util.IntegerPart(o);o=o%Math.pow(2,e);if(t==="signed"&&o>=Math.pow(2,e)-1){return o-Math.pow(2,e)}return o};s.util.IntegerPart=function(A){const e=Math.floor(Math.abs(A));if(A<0){return-1*e}return e};s.sequenceConverter=function(A){return e=>{if(s.util.Type(e)!=="Object"){throw s.errors.exception({header:"Sequence",message:`Value of type ${s.util.Type(e)} is not an Object.`})}const t=e?.[Symbol.iterator]?.();const r=[];if(t===undefined||typeof t.next!=="function"){throw s.errors.exception({header:"Sequence",message:"Object is not an iterator."})}while(true){const{done:e,value:n}=t.next();if(e){break}r.push(A(n))}return r}};s.recordConverter=function(A,e){return t=>{if(s.util.Type(t)!=="Object"){throw s.errors.exception({header:"Record",message:`Value of type ${s.util.Type(t)} is not an Object.`})}const n={};if(!r.isProxy(t)){const r=Object.keys(t);for(const i of r){const r=A(i);const s=e(t[i]);n[r]=s}return n}const i=Reflect.ownKeys(t);for(const r of i){const i=Reflect.getOwnPropertyDescriptor(t,r);if(i?.enumerable){const i=A(r);const s=e(t[r]);n[i]=s}}return n}};s.interfaceConverter=function(A){return(e,t={})=>{if(t.strict!==false&&!(e instanceof A)){throw s.errors.exception({header:A.name,message:`Expected ${e} to be an instance of ${A.name}.`})}return e}};s.dictionaryConverter=function(A){return e=>{const t=s.util.Type(e);const r={};if(t==="Null"||t==="Undefined"){return r}else if(t!=="Object"){throw s.errors.exception({header:"Dictionary",message:`Expected ${e} to be one of: Null, Undefined, Object.`})}for(const t of A){const{key:A,defaultValue:i,required:o,converter:a}=t;if(o===true){if(!n(e,A)){throw s.errors.exception({header:"Dictionary",message:`Missing required key "${A}".`})}}let c=e[A];const g=n(t,"defaultValue");if(g&&c!==null){c=c??i}if(o||g||c!==undefined){c=a(c);if(t.allowedValues&&!t.allowedValues.includes(c)){throw s.errors.exception({header:"Dictionary",message:`${c} is not an accepted type. Expected one of ${t.allowedValues.join(", ")}.`})}r[A]=c}}return r}};s.nullableConverter=function(A){return e=>{if(e===null){return e}return A(e)}};s.converters.DOMString=function(A,e={}){if(A===null&&e.legacyNullToEmptyString){return""}if(typeof A==="symbol"){throw new TypeError("Could not convert argument of type symbol to string.")}return String(A)};s.converters.ByteString=function(A){const e=s.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 ${t} which is greater than 255.`)}}return e};s.converters.USVString=i;s.converters.boolean=function(A){const e=Boolean(A);return e};s.converters.any=function(A){return A};s.converters["long long"]=function(A){const e=s.util.ConvertToInt(A,64,"signed");return e};s.converters["unsigned long long"]=function(A){const e=s.util.ConvertToInt(A,64,"unsigned");return e};s.converters["unsigned long"]=function(A){const e=s.util.ConvertToInt(A,32,"unsigned");return e};s.converters["unsigned short"]=function(A,e){const t=s.util.ConvertToInt(A,16,"unsigned",e);return t};s.converters.ArrayBuffer=function(A,e={}){if(s.util.Type(A)!=="Object"||!r.isAnyArrayBuffer(A)){throw s.errors.conversionFailed({prefix:`${A}`,argument:`${A}`,types:["ArrayBuffer"]})}if(e.allowShared===false&&r.isSharedArrayBuffer(A)){throw s.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."})}return A};s.converters.TypedArray=function(A,e,t={}){if(s.util.Type(A)!=="Object"||!r.isTypedArray(A)||A.constructor.name!==e.name){throw s.errors.conversionFailed({prefix:`${e.name}`,argument:`${A}`,types:[e.name]})}if(t.allowShared===false&&r.isSharedArrayBuffer(A.buffer)){throw s.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."})}return A};s.converters.DataView=function(A,e={}){if(s.util.Type(A)!=="Object"||!r.isDataView(A)){throw s.errors.exception({header:"DataView",message:"Object is not a DataView."})}if(e.allowShared===false&&r.isSharedArrayBuffer(A.buffer)){throw s.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."})}return A};s.converters.BufferSource=function(A,e={}){if(r.isAnyArrayBuffer(A)){return s.converters.ArrayBuffer(A,e)}if(r.isTypedArray(A)){return s.converters.TypedArray(A,A.constructor)}if(r.isDataView(A)){return s.converters.DataView(A,e)}throw new TypeError(`Could not convert ${A} to a BufferSource.`)};s.converters["sequence"]=s.sequenceConverter(s.converters.ByteString);s.converters["sequence>"]=s.sequenceConverter(s.converters["sequence"]);s.converters["record"]=s.recordConverter(s.converters.ByteString,s.converters.ByteString);A.exports={webidl:s}},8694:A=>{"use strict";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}},3133:(A,e,t)=>{"use strict";const{staticPropertyDescriptors:r,readOperation:n,fireAProgressEvent:i}=t(5377);const{kState:s,kError:o,kResult:a,kEvents:c,kAborted:g}=t(7892);const{webidl:E}=t(4161);const{kEnumerableProperty:l}=t(8657);class FileReader extends EventTarget{constructor(){super();this[s]="empty";this[a]=null;this[o]=null;this[c]={loadend:null,error:null,abort:null,load:null,progress:null,loadstart:null}}readAsArrayBuffer(A){E.brandCheck(this,FileReader);E.argumentLengthCheck(arguments,1,{header:"FileReader.readAsArrayBuffer"});A=E.converters.Blob(A,{strict:false});n(this,A,"ArrayBuffer")}readAsBinaryString(A){E.brandCheck(this,FileReader);E.argumentLengthCheck(arguments,1,{header:"FileReader.readAsBinaryString"});A=E.converters.Blob(A,{strict:false});n(this,A,"BinaryString")}readAsText(A,e=undefined){E.brandCheck(this,FileReader);E.argumentLengthCheck(arguments,1,{header:"FileReader.readAsText"});A=E.converters.Blob(A,{strict:false});if(e!==undefined){e=E.converters.DOMString(e)}n(this,A,"Text",e)}readAsDataURL(A){E.brandCheck(this,FileReader);E.argumentLengthCheck(arguments,1,{header:"FileReader.readAsDataURL"});A=E.converters.Blob(A,{strict:false});n(this,A,"DataURL")}abort(){if(this[s]==="empty"||this[s]==="done"){this[a]=null;return}if(this[s]==="loading"){this[s]="done";this[a]=null}this[g]=true;i("abort",this);if(this[s]!=="loading"){i("loadend",this)}}get readyState(){E.brandCheck(this,FileReader);switch(this[s]){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[o]}get onloadend(){E.brandCheck(this,FileReader);return this[c].loadend}set onloadend(A){E.brandCheck(this,FileReader);if(this[c].loadend){this.removeEventListener("loadend",this[c].loadend)}if(typeof A==="function"){this[c].loadend=A;this.addEventListener("loadend",A)}else{this[c].loadend=null}}get onerror(){E.brandCheck(this,FileReader);return this[c].error}set onerror(A){E.brandCheck(this,FileReader);if(this[c].error){this.removeEventListener("error",this[c].error)}if(typeof A==="function"){this[c].error=A;this.addEventListener("error",A)}else{this[c].error=null}}get onloadstart(){E.brandCheck(this,FileReader);return this[c].loadstart}set onloadstart(A){E.brandCheck(this,FileReader);if(this[c].loadstart){this.removeEventListener("loadstart",this[c].loadstart)}if(typeof A==="function"){this[c].loadstart=A;this.addEventListener("loadstart",A)}else{this[c].loadstart=null}}get onprogress(){E.brandCheck(this,FileReader);return this[c].progress}set onprogress(A){E.brandCheck(this,FileReader);if(this[c].progress){this.removeEventListener("progress",this[c].progress)}if(typeof A==="function"){this[c].progress=A;this.addEventListener("progress",A)}else{this[c].progress=null}}get onload(){E.brandCheck(this,FileReader);return this[c].load}set onload(A){E.brandCheck(this,FileReader);if(this[c].load){this.removeEventListener("load",this[c].load)}if(typeof A==="function"){this[c].load=A;this.addEventListener("load",A)}else{this[c].load=null}}get onabort(){E.brandCheck(this,FileReader);return this[c].abort}set onabort(A){E.brandCheck(this,FileReader);if(this[c].abort){this.removeEventListener("abort",this[c].abort)}if(typeof A==="function"){this[c].abort=A;this.addEventListener("abort",A)}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});A.exports={FileReader:FileReader}},8350:(A,e,t)=>{"use strict";const{webidl:r}=t(4161);const n=Symbol("ProgressEvent state");class ProgressEvent extends Event{constructor(A,e={}){A=r.converters.DOMString(A);e=r.converters.ProgressEventInit(e??{});super(A,e);this[n]={lengthComputable:e.lengthComputable,loaded:e.loaded,total:e.total}}get lengthComputable(){r.brandCheck(this,ProgressEvent);return this[n].lengthComputable}get loaded(){r.brandCheck(this,ProgressEvent);return this[n].loaded}get total(){r.brandCheck(this,ProgressEvent);return this[n].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}]);A.exports={ProgressEvent:ProgressEvent}},7892:A=>{"use strict";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")}},5377:(A,e,t)=>{"use strict";const{kState:r,kError:n,kResult:i,kAborted:s,kLastProgressEventFired:o}=t(7892);const{ProgressEvent:a}=t(8350);const{getEncoding:c}=t(8694);const{DOMException:g}=t(6598);const{serializeAMimeType:E,parseMIMEType:l}=t(1353);const{types:Q}=t(3837);const{StringDecoder:B}=t(1576);const{btoa:h}=t(4300);const C={enumerable:true,writable:false,configurable:false};function readOperation(A,e,t,a){if(A[r]==="loading"){throw new g("Invalid state","InvalidStateError")}A[r]="loading";A[i]=null;A[n]=null;const c=e.stream();const E=c.getReader();const l=[];let B=E.read();let h=true;(async()=>{while(!A[s]){try{const{done:c,value:g}=await B;if(h&&!A[s]){queueMicrotask((()=>{fireAProgressEvent("loadstart",A)}))}h=false;if(!c&&Q.isUint8Array(g)){l.push(g);if((A[o]===undefined||Date.now()-A[o]>=50)&&!A[s]){A[o]=Date.now();queueMicrotask((()=>{fireAProgressEvent("progress",A)}))}B=E.read()}else if(c){queueMicrotask((()=>{A[r]="done";try{const r=packageData(l,t,e.type,a);if(A[s]){return}A[i]=r;fireAProgressEvent("load",A)}catch(e){A[n]=e;fireAProgressEvent("error",A)}if(A[r]!=="loading"){fireAProgressEvent("loadend",A)}}));break}}catch(e){if(A[s]){return}queueMicrotask((()=>{A[r]="done";A[n]=e;fireAProgressEvent("error",A);if(A[r]!=="loading"){fireAProgressEvent("loadend",A)}}));break}}})()}function fireAProgressEvent(A,e){const t=new a(A,{bubbles:false,cancelable:false});e.dispatchEvent(t)}function packageData(A,e,t,r){switch(e){case"DataURL":{let e="data:";const r=l(t||"application/octet-stream");if(r!=="failure"){e+=E(r)}e+=";base64,";const n=new B("latin1");for(const t of A){e+=h(n.write(t))}e+=h(n.end());return e}case"Text":{let e="failure";if(r){e=c(r)}if(e==="failure"&&t){const A=l(t);if(A!=="failure"){e=c(A.parameters.get("charset"))}}if(e==="failure"){e="UTF-8"}return decode(A,e)}case"ArrayBuffer":{const e=combineByteSequences(A);return e.buffer}case"BinaryString":{let e="";const t=new B("latin1");for(const r of A){e+=t.write(r)}e+=t.end();return e}}}function decode(A,e){const t=combineByteSequences(A);const r=BOMSniffing(t);let n=0;if(r!==null){e=r;n=r==="UTF-8"?3:2}const i=t.slice(n);return new TextDecoder(e).decode(i)}function BOMSniffing(A){const[e,t,r]=A;if(e===239&&t===187&&r===191){return"UTF-8"}else if(e===254&&t===255){return"UTF-16BE"}else if(e===255&&t===254){return"UTF-16LE"}return null}function combineByteSequences(A){const e=A.reduce(((A,e)=>A+e.byteLength),0);let t=0;return A.reduce(((A,e)=>{A.set(e,t);t+=e.byteLength;return A}),new Uint8Array(e))}A.exports={staticPropertyDescriptors:C,readOperation:readOperation,fireAProgressEvent:fireAProgressEvent}},5230:(A,e,t)=>{"use strict";const r=Symbol.for("undici.globalDispatcher.1");const{InvalidArgumentError:n}=t(1070);const i=t(8944);if(getGlobalDispatcher()===undefined){setGlobalDispatcher(new i)}function setGlobalDispatcher(A){if(!A||typeof A.dispatch!=="function"){throw new n("Argument agent must implement Agent")}Object.defineProperty(globalThis,r,{value:A,writable:true,enumerable:false,configurable:false})}function getGlobalDispatcher(){return globalThis[r]}A.exports={setGlobalDispatcher:setGlobalDispatcher,getGlobalDispatcher:getGlobalDispatcher}},9036:A=>{"use strict";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)}}},620:(A,e,t)=>{"use strict";const r=t(8657);const{kBodyUsed:n}=t(5862);const i=t(9491);const{InvalidArgumentError:s}=t(1070);const o=t(2361);const a=[300,301,302,303,307,308];const c=Symbol("body");class BodyAsyncIterable{constructor(A){this[c]=A;this[n]=false}async*[Symbol.asyncIterator](){i(!this[n],"disturbed");this[n]=true;yield*this[c]}}class RedirectHandler{constructor(A,e,t,a){if(e!=null&&(!Number.isInteger(e)||e<0)){throw new s("maxRedirections must be a positive number")}r.validateHandler(a,t.method,t.upgrade);this.dispatch=A;this.location=null;this.abort=null;this.opts={...t,maxRedirections:0};this.maxRedirections=e;this.handler=a;this.history=[];if(r.isStream(this.opts.body)){if(r.bodyLength(this.opts.body)===0){this.opts.body.on("data",(function(){i(false)}))}if(typeof this.opts.body.readableDidRead!=="boolean"){this.opts.body[n]=false;o.prototype.on.call(this.opts.body,"data",(function(){this[n]=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(A){this.abort=A;this.handler.onConnect(A,{history:this.history})}onUpgrade(A,e,t){this.handler.onUpgrade(A,e,t)}onError(A){this.handler.onError(A)}onHeaders(A,e,t,n){this.location=this.history.length>=this.maxRedirections||r.isDisturbed(this.opts.body)?null:parseLocation(A,e);if(this.opts.origin){this.history.push(new URL(this.opts.path,this.opts.origin))}if(!this.location){return this.handler.onHeaders(A,e,t,n)}const{origin:i,pathname:s,search:o}=r.parseURL(new URL(this.location,this.opts.origin&&new URL(this.opts.path,this.opts.origin)));const a=o?`${s}${o}`:s;this.opts.headers=cleanRequestHeaders(this.opts.headers,A===303,this.opts.origin!==i);this.opts.path=a;this.opts.origin=i;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,e){if(a.indexOf(A)===-1){return null}for(let A=0;A{"use strict";const r=t(620);function createRedirectInterceptor({maxRedirections:A}){return e=>function Intercept(t,n){const{maxRedirections:i=A}=t;if(!i){return e(t,n)}const s=new r(e,i,t,n);t={...t,maxRedirections:0};return e(t,s)}}A.exports=createRedirectInterceptor},2381:(A,e,t)=>{"use strict";Object.defineProperty(e,"__esModule",{value:true});e.SPECIAL_HEADERS=e.HEADER_STATE=e.MINOR=e.MAJOR=e.CONNECTION_TOKEN_CHARS=e.HEADER_CHARS=e.TOKEN=e.STRICT_TOKEN=e.HEX=e.URL_CHAR=e.STRICT_URL_CHAR=e.USERINFO_CHARS=e.MARK=e.ALPHANUM=e.NUM=e.HEX_MAP=e.NUM_MAP=e.ALPHA=e.FINISH=e.H_METHOD_MAP=e.METHOD_MAP=e.METHODS_RTSP=e.METHODS_ICE=e.METHODS_HTTP=e.METHODS=e.LENIENT_FLAGS=e.FLAGS=e.TYPE=e.ERROR=void 0;const r=t(7325);var n;(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"})(n=e.ERROR||(e.ERROR={}));var i;(function(A){A[A["BOTH"]=0]="BOTH";A[A["REQUEST"]=1]="REQUEST";A[A["RESPONSE"]=2]="RESPONSE"})(i=e.TYPE||(e.TYPE={}));var s;(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"})(s=e.FLAGS||(e.FLAGS={}));var o;(function(A){A[A["HEADERS"]=1]="HEADERS";A[A["CHUNKED_LENGTH"]=2]="CHUNKED_LENGTH";A[A["KEEP_ALIVE"]=4]="KEEP_ALIVE"})(o=e.LENIENT_FLAGS||(e.LENIENT_FLAGS={}));var a;(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"})(a=e.METHODS||(e.METHODS={}));e.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];e.METHODS_ICE=[a.SOURCE];e.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];e.METHOD_MAP=r.enumToMap(a);e.H_METHOD_MAP={};Object.keys(e.METHOD_MAP).forEach((A=>{if(/^H/.test(A)){e.H_METHOD_MAP[A]=e.METHOD_MAP[A]}}));var c;(function(A){A[A["SAFE"]=0]="SAFE";A[A["SAFE_WITH_CB"]=1]="SAFE_WITH_CB";A[A["UNSAFE"]=2]="UNSAFE"})(c=e.FINISH||(e.FINISH={}));e.ALPHA=[];for(let A="A".charCodeAt(0);A<="Z".charCodeAt(0);A++){e.ALPHA.push(String.fromCharCode(A));e.ALPHA.push(String.fromCharCode(A+32))}e.NUM_MAP={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9};e.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};e.NUM=["0","1","2","3","4","5","6","7","8","9"];e.ALPHANUM=e.ALPHA.concat(e.NUM);e.MARK=["-","_",".","!","~","*","'","(",")"];e.USERINFO_CHARS=e.ALPHANUM.concat(e.MARK).concat(["%",";",":","&","=","+","$",","]);e.STRICT_URL_CHAR=["!",'"',"$","%","&","'","(",")","*","+",",","-",".","/",":",";","<","=",">","@","[","\\","]","^","_","`","{","|","}","~"].concat(e.ALPHANUM);e.URL_CHAR=e.STRICT_URL_CHAR.concat(["\t","\f"]);for(let A=128;A<=255;A++){e.URL_CHAR.push(A)}e.HEX=e.NUM.concat(["a","b","c","d","e","f","A","B","C","D","E","F"]);e.STRICT_TOKEN=["!","#","$","%","&","'","*","+","-",".","^","_","`","|","~"].concat(e.ALPHANUM);e.TOKEN=e.STRICT_TOKEN.concat([" "]);e.HEADER_CHARS=["\t"];for(let A=32;A<=255;A++){if(A!==127){e.HEADER_CHARS.push(A)}}e.CONNECTION_TOKEN_CHARS=e.HEADER_CHARS.filter((A=>A!==44));e.MAJOR=e.NUM_MAP;e.MINOR=e.MAJOR;var g;(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"})(g=e.HEADER_STATE||(e.HEADER_STATE={}));e.SPECIAL_HEADERS={connection:g.CONNECTION,"content-length":g.CONTENT_LENGTH,"proxy-connection":g.CONNECTION,"transfer-encoding":g.TRANSFER_ENCODING,upgrade:g.UPGRADE}},3938:A=>{A.exports="AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAwABBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJsbGh0dHBfc3RhdHVzX25hbWUAIRpsbGh0dHBfc2V0X2xlbmllbnRfaGVhZGVycwAiIWxsaHR0cF9zZXRfbGVuaWVudF9jaHVua2VkX2xlbmd0aAAjHWxsaHR0cF9zZXRfbGVuaWVudF9rZWVwX2FsaXZlACQkbGxodHRwX3NldF9sZW5pZW50X3RyYW5zZmVyX2VuY29kaW5nACUYbGxodHRwX21lc3NhZ2VfbmVlZHNfZW9mAD8JFwEAQQELEQECAwQFCwYHNTk3MS8tJyspCsLgAkUCAAsIABCIgICAAAsZACAAEMKAgIAAGiAAIAI2AjggACABOgAoCxwAIAAgAC8BMiAALQAuIAAQwYCAgAAQgICAgAALKgEBf0HAABDGgICAACIBEMKAgIAAGiABQYCIgIAANgI4IAEgADoAKCABCwoAIAAQyICAgAALBwAgAC0AKAsHACAALQAqCwcAIAAtACsLBwAgAC0AKQsHACAALwEyCwcAIAAtAC4LRQEEfyAAKAIYIQEgAC0ALSECIAAtACghAyAAKAI4IQQgABDCgICAABogACAENgI4IAAgAzoAKCAAIAI6AC0gACABNgIYCxEAIAAgASABIAJqEMOAgIAACxAAIABBAEHcABDMgICAABoLZwEBf0EAIQECQCAAKAIMDQACQAJAAkACQCAALQAvDgMBAAMCCyAAKAI4IgFFDQAgASgCLCIBRQ0AIAAgARGAgICAAAAiAQ0DC0EADwsQyoCAgAAACyAAQcOWgIAANgIQQQ4hAQsgAQseAAJAIAAoAgwNACAAQdGbgIAANgIQIABBFTYCDAsLFgACQCAAKAIMQRVHDQAgAEEANgIMCwsWAAJAIAAoAgxBFkcNACAAQQA2AgwLCwcAIAAoAgwLBwAgACgCEAsJACAAIAE2AhALBwAgACgCFAsiAAJAIABBJEkNABDKgICAAAALIABBAnRBoLOAgABqKAIACyIAAkAgAEEuSQ0AEMqAgIAAAAsgAEECdEGwtICAAGooAgAL7gsBAX9B66iAgAAhAQJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABBnH9qDvQDY2IAAWFhYWFhYQIDBAVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhBgcICQoLDA0OD2FhYWFhEGFhYWFhYWFhYWFhEWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYRITFBUWFxgZGhthYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2YTc4OTphYWFhYWFhYTthYWE8YWFhYT0+P2FhYWFhYWFhQGFhQWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYUJDREVGR0hJSktMTU5PUFFSU2FhYWFhYWFhVFVWV1hZWlthXF1hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFeYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhX2BhC0Hhp4CAAA8LQaShgIAADwtBy6yAgAAPC0H+sYCAAA8LQcCkgIAADwtBq6SAgAAPC0GNqICAAA8LQeKmgIAADwtBgLCAgAAPC0G5r4CAAA8LQdekgIAADwtB75+AgAAPC0Hhn4CAAA8LQfqfgIAADwtB8qCAgAAPC0Gor4CAAA8LQa6ygIAADwtBiLCAgAAPC0Hsp4CAAA8LQYKigIAADwtBjp2AgAAPC0HQroCAAA8LQcqjgIAADwtBxbKAgAAPC0HfnICAAA8LQdKcgIAADwtBxKCAgAAPC0HXoICAAA8LQaKfgIAADwtB7a6AgAAPC0GrsICAAA8LQdSlgIAADwtBzK6AgAAPC0H6roCAAA8LQfyrgIAADwtB0rCAgAAPC0HxnYCAAA8LQbuggIAADwtB96uAgAAPC0GQsYCAAA8LQdexgIAADwtBoq2AgAAPC0HUp4CAAA8LQeCrgIAADwtBn6yAgAAPC0HrsYCAAA8LQdWfgIAADwtByrGAgAAPC0HepYCAAA8LQdSegIAADwtB9JyAgAAPC0GnsoCAAA8LQbGdgIAADwtBoJ2AgAAPC0G5sYCAAA8LQbywgIAADwtBkqGAgAAPC0GzpoCAAA8LQemsgIAADwtBrJ6AgAAPC0HUq4CAAA8LQfemgIAADwtBgKaAgAAPC0GwoYCAAA8LQf6egIAADwtBjaOAgAAPC0GJrYCAAA8LQfeigIAADwtBoLGAgAAPC0Gun4CAAA8LQcalgIAADwtB6J6AgAAPC0GTooCAAA8LQcKvgIAADwtBw52AgAAPC0GLrICAAA8LQeGdgIAADwtBja+AgAAPC0HqoYCAAA8LQbStgIAADwtB0q+AgAAPC0HfsoCAAA8LQdKygIAADwtB8LCAgAAPC0GpooCAAA8LQfmjgIAADwtBmZ6AgAAPC0G1rICAAA8LQZuwgIAADwtBkrKAgAAPC0G2q4CAAA8LQcKigIAADwtB+LKAgAAPC0GepYCAAA8LQdCigIAADwtBup6AgAAPC0GBnoCAAA8LEMqAgIAAAAtB1qGAgAAhAQsgAQsWACAAIAAtAC1B/gFxIAFBAEdyOgAtCxkAIAAgAC0ALUH9AXEgAUEAR0EBdHI6AC0LGQAgACAALQAtQfsBcSABQQBHQQJ0cjoALQsZACAAIAAtAC1B9wFxIAFBAEdBA3RyOgAtCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAgAiBEUNACAAIAQRgICAgAAAIQMLIAMLSQECf0EAIQMCQCAAKAI4IgRFDQAgBCgCBCIERQ0AIAAgASACIAFrIAQRgYCAgAAAIgNBf0cNACAAQcaRgIAANgIQQRghAwsgAwsuAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIwIgRFDQAgACAEEYCAgIAAACEDCyADC0kBAn9BACEDAkAgACgCOCIERQ0AIAQoAggiBEUNACAAIAEgAiABayAEEYGAgIAAACIDQX9HDQAgAEH2ioCAADYCEEEYIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCNCIERQ0AIAAgBBGAgICAAAAhAwsgAwtJAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIMIgRFDQAgACABIAIgAWsgBBGBgICAAAAiA0F/Rw0AIABB7ZqAgAA2AhBBGCEDCyADCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAjgiBEUNACAAIAQRgICAgAAAIQMLIAMLSQECf0EAIQMCQCAAKAI4IgRFDQAgBCgCECIERQ0AIAAgASACIAFrIAQRgYCAgAAAIgNBf0cNACAAQZWQgIAANgIQQRghAwsgAwsuAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAI8IgRFDQAgACAEEYCAgIAAACEDCyADC0kBAn9BACEDAkAgACgCOCIERQ0AIAQoAhQiBEUNACAAIAEgAiABayAEEYGAgIAAACIDQX9HDQAgAEGqm4CAADYCEEEYIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCQCIERQ0AIAAgBBGAgICAAAAhAwsgAwtJAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIYIgRFDQAgACABIAIgAWsgBBGBgICAAAAiA0F/Rw0AIABB7ZOAgAA2AhBBGCEDCyADCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAkQiBEUNACAAIAQRgICAgAAAIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCJCIERQ0AIAAgBBGAgICAAAAhAwsgAwsuAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIsIgRFDQAgACAEEYCAgIAAACEDCyADC0kBAn9BACEDAkAgACgCOCIERQ0AIAQoAigiBEUNACAAIAEgAiABayAEEYGAgIAAACIDQX9HDQAgAEH2iICAADYCEEEYIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCUCIERQ0AIAAgBBGAgICAAAAhAwsgAwtJAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIcIgRFDQAgACABIAIgAWsgBBGBgICAAAAiA0F/Rw0AIABBwpmAgAA2AhBBGCEDCyADCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAkgiBEUNACAAIAQRgICAgAAAIQMLIAMLSQECf0EAIQMCQCAAKAI4IgRFDQAgBCgCICIERQ0AIAAgASACIAFrIAQRgYCAgAAAIgNBf0cNACAAQZSUgIAANgIQQRghAwsgAwsuAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAJMIgRFDQAgACAEEYCAgIAAACEDCyADCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAlQiBEUNACAAIAQRgICAgAAAIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCWCIERQ0AIAAgBBGAgICAAAAhAwsgAwtFAQF/AkACQCAALwEwQRRxQRRHDQBBASEDIAAtAChBAUYNASAALwEyQeUARiEDDAELIAAtAClBBUYhAwsgACADOgAuQQAL/gEBA39BASEDAkAgAC8BMCIEQQhxDQAgACkDIEIAUiEDCwJAAkAgAC0ALkUNAEEBIQUgAC0AKUEFRg0BQQEhBSAEQcAAcUUgA3FBAUcNAQtBACEFIARBwABxDQBBAiEFIARB//8DcSIDQQhxDQACQCADQYAEcUUNAAJAIAAtAChBAUcNACAALQAtQQpxDQBBBQ8LQQQPCwJAIANBIHENAAJAIAAtAChBAUYNACAALwEyQf//A3EiAEGcf2pB5ABJDQAgAEHMAUYNACAAQbACRg0AQQQhBSAEQShxRQ0CIANBiARxQYAERg0CC0EADwtBAEEDIAApAyBQGyEFCyAFC2IBAn9BACEBAkAgAC0AKEEBRg0AIAAvATJB//8DcSICQZx/akHkAEkNACACQcwBRg0AIAJBsAJGDQAgAC8BMCIAQcAAcQ0AQQEhASAAQYgEcUGABEYNACAAQShxRSEBCyABC6cBAQN/AkACQAJAIAAtACpFDQAgAC0AK0UNAEEAIQMgAC8BMCIEQQJxRQ0BDAILQQAhAyAALwEwIgRBAXFFDQELQQEhAyAALQAoQQFGDQAgAC8BMkH//wNxIgVBnH9qQeQASQ0AIAVBzAFGDQAgBUGwAkYNACAEQcAAcQ0AQQAhAyAEQYgEcUGABEYNACAEQShxQQBHIQMLIABBADsBMCAAQQA6AC8gAwuZAQECfwJAAkACQCAALQAqRQ0AIAAtACtFDQBBACEBIAAvATAiAkECcUUNAQwCC0EAIQEgAC8BMCICQQFxRQ0BC0EBIQEgAC0AKEEBRg0AIAAvATJB//8DcSIAQZx/akHkAEkNACAAQcwBRg0AIABBsAJGDQAgAkHAAHENAEEAIQEgAkGIBHFBgARGDQAgAkEocUEARyEBCyABC1kAIABBGGpCADcDACAAQgA3AwAgAEE4akIANwMAIABBMGpCADcDACAAQShqQgA3AwAgAEEgakIANwMAIABBEGpCADcDACAAQQhqQgA3AwAgAEHdATYCHEEAC3sBAX8CQCAAKAIMIgMNAAJAIAAoAgRFDQAgACABNgIECwJAIAAgASACEMSAgIAAIgMNACAAKAIMDwsgACADNgIcQQAhAyAAKAIEIgFFDQAgACABIAIgACgCCBGBgICAAAAiAUUNACAAIAI2AhQgACABNgIMIAEhAwsgAwvk8wEDDn8DfgR/I4CAgIAAQRBrIgMkgICAgAAgASEEIAEhBSABIQYgASEHIAEhCCABIQkgASEKIAEhCyABIQwgASENIAEhDiABIQ8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgACgCHCIQQX9qDt0B2gEB2QECAwQFBgcICQoLDA0O2AEPENcBERLWARMUFRYXGBkaG+AB3wEcHR7VAR8gISIjJCXUASYnKCkqKyzTAdIBLS7RAdABLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVG2wFHSElKzwHOAUvNAUzMAU1OT1BRUlNUVVZXWFlaW1xdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+f4ABgQGCAYMBhAGFAYYBhwGIAYkB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QAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAQDscBAAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxweHyAhIyUoP0BBREVGR0hJSktMTU9QUVJT3gNXWVtcXWBiZWZnaGlqa2xtb3BxcnN0dXZ3eHl6e3x9foABggGFAYYBhwGJAYsBjAGNAY4BjwGQAZEBlAGVAZYBlwGYAZkBmgGbAZwBnQGeAZ8BoAGhAaIBowGkAaUBpgGnAagBqQGqAasBrAGtAa4BrwGwAbEBsgGzAbQBtQG2AbcBuAG5AboBuwG8Ab0BvgG/AcABwQHCAcMBxAHFAcYBxwHIAckBygHLAcwBzQHOAc8B0AHRAdIB0wHUAdUB1gHXAdgB2QHaAdsB3AHdAd4B4AHhAeIB4wHkAeUB5gHnAegB6QHqAesB7AHtAe4B7wHwAfEB8gHzAZkCpAKwAv4C/gILIAEiBCACRw3zAUHdASEQDP8DCyABIhAgAkcN3QFBwwEhEAz+AwsgASIBIAJHDZABQfcAIRAM/QMLIAEiASACRw2GAUHvACEQDPwDCyABIgEgAkcNf0HqACEQDPsDCyABIgEgAkcNe0HoACEQDPoDCyABIgEgAkcNeEHmACEQDPkDCyABIgEgAkcNGkEYIRAM+AMLIAEiASACRw0UQRIhEAz3AwsgASIBIAJHDVlBxQAhEAz2AwsgASIBIAJHDUpBPyEQDPUDCyABIgEgAkcNSEE8IRAM9AMLIAEiASACRw1BQTEhEAzzAwsgAC0ALkEBRg3rAwyHAgsgACABIgEgAhDAgICAAEEBRw3mASAAQgA3AyAM5wELIAAgASIBIAIQtICAgAAiEA3nASABIQEM9QILAkAgASIBIAJHDQBBBiEQDPADCyAAIAFBAWoiASACELuAgIAAIhAN6AEgASEBDDELIABCADcDIEESIRAM1QMLIAEiECACRw0rQR0hEAztAwsCQCABIgEgAkYNACABQQFqIQFBECEQDNQDC0EHIRAM7AMLIABCACAAKQMgIhEgAiABIhBrrSISfSITIBMgEVYbNwMgIBEgElYiFEUN5QFBCCEQDOsDCwJAIAEiASACRg0AIABBiYCAgAA2AgggACABNgIEIAEhAUEUIRAM0gMLQQkhEAzqAwsgASEBIAApAyBQDeQBIAEhAQzyAgsCQCABIgEgAkcNAEELIRAM6QMLIAAgAUEBaiIBIAIQtoCAgAAiEA3lASABIQEM8gILIAAgASIBIAIQuICAgAAiEA3lASABIQEM8gILIAAgASIBIAIQuICAgAAiEA3mASABIQEMDQsgACABIgEgAhC6gICAACIQDecBIAEhAQzwAgsCQCABIgEgAkcNAEEPIRAM5QMLIAEtAAAiEEE7Rg0IIBBBDUcN6AEgAUEBaiEBDO8CCyAAIAEiASACELqAgIAAIhAN6AEgASEBDPICCwNAAkAgAS0AAEHwtYCAAGotAAAiEEEBRg0AIBBBAkcN6wEgACgCBCEQIABBADYCBCAAIBAgAUEBaiIBELmAgIAAIhAN6gEgASEBDPQCCyABQQFqIgEgAkcNAAtBEiEQDOIDCyAAIAEiASACELqAgIAAIhAN6QEgASEBDAoLIAEiASACRw0GQRshEAzgAwsCQCABIgEgAkcNAEEWIRAM4AMLIABBioCAgAA2AgggACABNgIEIAAgASACELiAgIAAIhAN6gEgASEBQSAhEAzGAwsCQCABIgEgAkYNAANAAkAgAS0AAEHwt4CAAGotAAAiEEECRg0AAkAgEEF/ag4E5QHsAQDrAewBCyABQQFqIQFBCCEQDMgDCyABQQFqIgEgAkcNAAtBFSEQDN8DC0EVIRAM3gMLA0ACQCABLQAAQfC5gIAAai0AACIQQQJGDQAgEEF/ag4E3gHsAeAB6wHsAQsgAUEBaiIBIAJHDQALQRghEAzdAwsCQCABIgEgAkYNACAAQYuAgIAANgIIIAAgATYCBCABIQFBByEQDMQDC0EZIRAM3AMLIAFBAWohAQwCCwJAIAEiFCACRw0AQRohEAzbAwsgFCEBAkAgFC0AAEFzag4U3QLuAu4C7gLuAu4C7gLuAu4C7gLuAu4C7gLuAu4C7gLuAu4C7gIA7gILQQAhECAAQQA2AhwgAEGvi4CAADYCECAAQQI2AgwgACAUQQFqNgIUDNoDCwJAIAEtAAAiEEE7Rg0AIBBBDUcN6AEgAUEBaiEBDOUCCyABQQFqIQELQSIhEAy/AwsCQCABIhAgAkcNAEEcIRAM2AMLQgAhESAQIQEgEC0AAEFQag435wHmAQECAwQFBgcIAAAAAAAAAAkKCwwNDgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADxAREhMUAAtBHiEQDL0DC0ICIREM5QELQgMhEQzkAQtCBCERDOMBC0IFIREM4gELQgYhEQzhAQtCByERDOABC0IIIREM3wELQgkhEQzeAQtCCiERDN0BC0ILIREM3AELQgwhEQzbAQtCDSERDNoBC0IOIREM2QELQg8hEQzYAQtCCiERDNcBC0ILIREM1gELQgwhEQzVAQtCDSERDNQBC0IOIREM0wELQg8hEQzSAQtCACERAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAQLQAAQVBqDjflAeQBAAECAwQFBgfmAeYB5gHmAeYB5gHmAQgJCgsMDeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gEODxAREhPmAQtCAiERDOQBC0IDIREM4wELQgQhEQziAQtCBSERDOEBC0IGIREM4AELQgchEQzfAQtCCCERDN4BC0IJIREM3QELQgohEQzcAQtCCyERDNsBC0IMIREM2gELQg0hEQzZAQtCDiERDNgBC0IPIREM1wELQgohEQzWAQtCCyERDNUBC0IMIREM1AELQg0hEQzTAQtCDiERDNIBC0IPIREM0QELIABCACAAKQMgIhEgAiABIhBrrSISfSITIBMgEVYbNwMgIBEgElYiFEUN0gFBHyEQDMADCwJAIAEiASACRg0AIABBiYCAgAA2AgggACABNgIEIAEhAUEkIRAMpwMLQSAhEAy/AwsgACABIhAgAhC+gICAAEF/ag4FtgEAxQIB0QHSAQtBESEQDKQDCyAAQQE6AC8gECEBDLsDCyABIgEgAkcN0gFBJCEQDLsDCyABIg0gAkcNHkHGACEQDLoDCyAAIAEiASACELKAgIAAIhAN1AEgASEBDLUBCyABIhAgAkcNJkHQACEQDLgDCwJAIAEiASACRw0AQSghEAy4AwsgAEEANgIEIABBjICAgAA2AgggACABIAEQsYCAgAAiEA3TASABIQEM2AELAkAgASIQIAJHDQBBKSEQDLcDCyAQLQAAIgFBIEYNFCABQQlHDdMBIBBBAWohAQwVCwJAIAEiASACRg0AIAFBAWohAQwXC0EqIRAMtQMLAkAgASIQIAJHDQBBKyEQDLUDCwJAIBAtAAAiAUEJRg0AIAFBIEcN1QELIAAtACxBCEYN0wEgECEBDJEDCwJAIAEiASACRw0AQSwhEAy0AwsgAS0AAEEKRw3VASABQQFqIQEMyQILIAEiDiACRw3VAUEvIRAMsgMLA0ACQCABLQAAIhBBIEYNAAJAIBBBdmoOBADcAdwBANoBCyABIQEM4AELIAFBAWoiASACRw0AC0ExIRAMsQMLQTIhECABIhQgAkYNsAMgAiAUayAAKAIAIgFqIRUgFCABa0EDaiEWAkADQCAULQAAIhdBIHIgFyAXQb9/akH/AXFBGkkbQf8BcSABQfC7gIAAai0AAEcNAQJAIAFBA0cNAEEGIQEMlgMLIAFBAWohASAUQQFqIhQgAkcNAAsgACAVNgIADLEDCyAAQQA2AgAgFCEBDNkBC0EzIRAgASIUIAJGDa8DIAIgFGsgACgCACIBaiEVIBQgAWtBCGohFgJAA0AgFC0AACIXQSByIBcgF0G/f2pB/wFxQRpJG0H/AXEgAUH0u4CAAGotAABHDQECQCABQQhHDQBBBSEBDJUDCyABQQFqIQEgFEEBaiIUIAJHDQALIAAgFTYCAAywAwsgAEEANgIAIBQhAQzYAQtBNCEQIAEiFCACRg2uAyACIBRrIAAoAgAiAWohFSAUIAFrQQVqIRYCQANAIBQtAAAiF0EgciAXIBdBv39qQf8BcUEaSRtB/wFxIAFB0MKAgABqLQAARw0BAkAgAUEFRw0AQQchAQyUAwsgAUEBaiEBIBRBAWoiFCACRw0ACyAAIBU2AgAMrwMLIABBADYCACAUIQEM1wELAkAgASIBIAJGDQADQAJAIAEtAABBgL6AgABqLQAAIhBBAUYNACAQQQJGDQogASEBDN0BCyABQQFqIgEgAkcNAAtBMCEQDK4DC0EwIRAMrQMLAkAgASIBIAJGDQADQAJAIAEtAAAiEEEgRg0AIBBBdmoOBNkB2gHaAdkB2gELIAFBAWoiASACRw0AC0E4IRAMrQMLQTghEAysAwsDQAJAIAEtAAAiEEEgRg0AIBBBCUcNAwsgAUEBaiIBIAJHDQALQTwhEAyrAwsDQAJAIAEtAAAiEEEgRg0AAkACQCAQQXZqDgTaAQEB2gEACyAQQSxGDdsBCyABIQEMBAsgAUEBaiIBIAJHDQALQT8hEAyqAwsgASEBDNsBC0HAACEQIAEiFCACRg2oAyACIBRrIAAoAgAiAWohFiAUIAFrQQZqIRcCQANAIBQtAABBIHIgAUGAwICAAGotAABHDQEgAUEGRg2OAyABQQFqIQEgFEEBaiIUIAJHDQALIAAgFjYCAAypAwsgAEEANgIAIBQhAQtBNiEQDI4DCwJAIAEiDyACRw0AQcEAIRAMpwMLIABBjICAgAA2AgggACAPNgIEIA8hASAALQAsQX9qDgTNAdUB1wHZAYcDCyABQQFqIQEMzAELAkAgASIBIAJGDQADQAJAIAEtAAAiEEEgciAQIBBBv39qQf8BcUEaSRtB/wFxIhBBCUYNACAQQSBGDQACQAJAAkACQCAQQZ1/ag4TAAMDAwMDAwMBAwMDAwMDAwMDAgMLIAFBAWohAUExIRAMkQMLIAFBAWohAUEyIRAMkAMLIAFBAWohAUEzIRAMjwMLIAEhAQzQAQsgAUEBaiIBIAJHDQALQTUhEAylAwtBNSEQDKQDCwJAIAEiASACRg0AA0ACQCABLQAAQYC8gIAAai0AAEEBRg0AIAEhAQzTAQsgAUEBaiIBIAJHDQALQT0hEAykAwtBPSEQDKMDCyAAIAEiASACELCAgIAAIhAN1gEgASEBDAELIBBBAWohAQtBPCEQDIcDCwJAIAEiASACRw0AQcIAIRAMoAMLAkADQAJAIAEtAABBd2oOGAAC/gL+AoQD/gL+Av4C/gL+Av4C/gL+Av4C/gL+Av4C/gL+Av4C/gL+Av4CAP4CCyABQQFqIgEgAkcNAAtBwgAhEAygAwsgAUEBaiEBIAAtAC1BAXFFDb0BIAEhAQtBLCEQDIUDCyABIgEgAkcN0wFBxAAhEAydAwsDQAJAIAEtAABBkMCAgABqLQAAQQFGDQAgASEBDLcCCyABQQFqIgEgAkcNAAtBxQAhEAycAwsgDS0AACIQQSBGDbMBIBBBOkcNgQMgACgCBCEBIABBADYCBCAAIAEgDRCvgICAACIBDdABIA1BAWohAQyzAgtBxwAhECABIg0gAkYNmgMgAiANayAAKAIAIgFqIRYgDSABa0EFaiEXA0AgDS0AACIUQSByIBQgFEG/f2pB/wFxQRpJG0H/AXEgAUGQwoCAAGotAABHDYADIAFBBUYN9AIgAUEBaiEBIA1BAWoiDSACRw0ACyAAIBY2AgAMmgMLQcgAIRAgASINIAJGDZkDIAIgDWsgACgCACIBaiEWIA0gAWtBCWohFwNAIA0tAAAiFEEgciAUIBRBv39qQf8BcUEaSRtB/wFxIAFBlsKAgABqLQAARw3/AgJAIAFBCUcNAEECIQEM9QILIAFBAWohASANQQFqIg0gAkcNAAsgACAWNgIADJkDCwJAIAEiDSACRw0AQckAIRAMmQMLAkACQCANLQAAIgFBIHIgASABQb9/akH/AXFBGkkbQf8BcUGSf2oOBwCAA4ADgAOAA4ADAYADCyANQQFqIQFBPiEQDIADCyANQQFqIQFBPyEQDP8CC0HKACEQIAEiDSACRg2XAyACIA1rIAAoAgAiAWohFiANIAFrQQFqIRcDQCANLQAAIhRBIHIgFCAUQb9/akH/AXFBGkkbQf8BcSABQaDCgIAAai0AAEcN/QIgAUEBRg3wAiABQQFqIQEgDUEBaiINIAJHDQALIAAgFjYCAAyXAwtBywAhECABIg0gAkYNlgMgAiANayAAKAIAIgFqIRYgDSABa0EOaiEXA0AgDS0AACIUQSByIBQgFEG/f2pB/wFxQRpJG0H/AXEgAUGiwoCAAGotAABHDfwCIAFBDkYN8AIgAUEBaiEBIA1BAWoiDSACRw0ACyAAIBY2AgAMlgMLQcwAIRAgASINIAJGDZUDIAIgDWsgACgCACIBaiEWIA0gAWtBD2ohFwNAIA0tAAAiFEEgciAUIBRBv39qQf8BcUEaSRtB/wFxIAFBwMKAgABqLQAARw37AgJAIAFBD0cNAEEDIQEM8QILIAFBAWohASANQQFqIg0gAkcNAAsgACAWNgIADJUDC0HNACEQIAEiDSACRg2UAyACIA1rIAAoAgAiAWohFiANIAFrQQVqIRcDQCANLQAAIhRBIHIgFCAUQb9/akH/AXFBGkkbQf8BcSABQdDCgIAAai0AAEcN+gICQCABQQVHDQBBBCEBDPACCyABQQFqIQEgDUEBaiINIAJHDQALIAAgFjYCAAyUAwsCQCABIg0gAkcNAEHOACEQDJQDCwJAAkACQAJAIA0tAAAiAUEgciABIAFBv39qQf8BcUEaSRtB/wFxQZ1/ag4TAP0C/QL9Av0C/QL9Av0C/QL9Av0C/QL9AgH9Av0C/QICA/0CCyANQQFqIQFBwQAhEAz9AgsgDUEBaiEBQcIAIRAM/AILIA1BAWohAUHDACEQDPsCCyANQQFqIQFBxAAhEAz6AgsCQCABIgEgAkYNACAAQY2AgIAANgIIIAAgATYCBCABIQFBxQAhEAz6AgtBzwAhEAySAwsgECEBAkACQCAQLQAAQXZqDgQBqAKoAgCoAgsgEEEBaiEBC0EnIRAM+AILAkAgASIBIAJHDQBB0QAhEAyRAwsCQCABLQAAQSBGDQAgASEBDI0BCyABQQFqIQEgAC0ALUEBcUUNxwEgASEBDIwBCyABIhcgAkcNyAFB0gAhEAyPAwtB0wAhECABIhQgAkYNjgMgAiAUayAAKAIAIgFqIRYgFCABa0EBaiEXA0AgFC0AACABQdbCgIAAai0AAEcNzAEgAUEBRg3HASABQQFqIQEgFEEBaiIUIAJHDQALIAAgFjYCAAyOAwsCQCABIgEgAkcNAEHVACEQDI4DCyABLQAAQQpHDcwBIAFBAWohAQzHAQsCQCABIgEgAkcNAEHWACEQDI0DCwJAAkAgAS0AAEF2ag4EAM0BzQEBzQELIAFBAWohAQzHAQsgAUEBaiEBQcoAIRAM8wILIAAgASIBIAIQroCAgAAiEA3LASABIQFBzQAhEAzyAgsgAC0AKUEiRg2FAwymAgsCQCABIgEgAkcNAEHbACEQDIoDC0EAIRRBASEXQQEhFkEAIRACQAJAAkACQAJAAkACQAJAAkAgAS0AAEFQag4K1AHTAQABAgMEBQYI1QELQQIhEAwGC0EDIRAMBQtBBCEQDAQLQQUhEAwDC0EGIRAMAgtBByEQDAELQQghEAtBACEXQQAhFkEAIRQMzAELQQkhEEEBIRRBACEXQQAhFgzLAQsCQCABIgEgAkcNAEHdACEQDIkDCyABLQAAQS5HDcwBIAFBAWohAQymAgsgASIBIAJHDcwBQd8AIRAMhwMLAkAgASIBIAJGDQAgAEGOgICAADYCCCAAIAE2AgQgASEBQdAAIRAM7gILQeAAIRAMhgMLQeEAIRAgASIBIAJGDYUDIAIgAWsgACgCACIUaiEWIAEgFGtBA2ohFwNAIAEtAAAgFEHiwoCAAGotAABHDc0BIBRBA0YNzAEgFEEBaiEUIAFBAWoiASACRw0ACyAAIBY2AgAMhQMLQeIAIRAgASIBIAJGDYQDIAIgAWsgACgCACIUaiEWIAEgFGtBAmohFwNAIAEtAAAgFEHmwoCAAGotAABHDcwBIBRBAkYNzgEgFEEBaiEUIAFBAWoiASACRw0ACyAAIBY2AgAMhAMLQeMAIRAgASIBIAJGDYMDIAIgAWsgACgCACIUaiEWIAEgFGtBA2ohFwNAIAEtAAAgFEHpwoCAAGotAABHDcsBIBRBA0YNzgEgFEEBaiEUIAFBAWoiASACRw0ACyAAIBY2AgAMgwMLAkAgASIBIAJHDQBB5QAhEAyDAwsgACABQQFqIgEgAhCogICAACIQDc0BIAEhAUHWACEQDOkCCwJAIAEiASACRg0AA0ACQCABLQAAIhBBIEYNAAJAAkACQCAQQbh/ag4LAAHPAc8BzwHPAc8BzwHPAc8BAs8BCyABQQFqIQFB0gAhEAztAgsgAUEBaiEBQdMAIRAM7AILIAFBAWohAUHUACEQDOsCCyABQQFqIgEgAkcNAAtB5AAhEAyCAwtB5AAhEAyBAwsDQAJAIAEtAABB8MKAgABqLQAAIhBBAUYNACAQQX5qDgPPAdAB0QHSAQsgAUEBaiIBIAJHDQALQeYAIRAMgAMLAkAgASIBIAJGDQAgAUEBaiEBDAMLQecAIRAM/wILA0ACQCABLQAAQfDEgIAAai0AACIQQQFGDQACQCAQQX5qDgTSAdMB1AEA1QELIAEhAUHXACEQDOcCCyABQQFqIgEgAkcNAAtB6AAhEAz+AgsCQCABIgEgAkcNAEHpACEQDP4CCwJAIAEtAAAiEEF2ag4augHVAdUBvAHVAdUB1QHVAdUB1QHVAdUB1QHVAdUB1QHVAdUB1QHVAdUB1QHKAdUB1QEA0wELIAFBAWohAQtBBiEQDOMCCwNAAkAgAS0AAEHwxoCAAGotAABBAUYNACABIQEMngILIAFBAWoiASACRw0AC0HqACEQDPsCCwJAIAEiASACRg0AIAFBAWohAQwDC0HrACEQDPoCCwJAIAEiASACRw0AQewAIRAM+gILIAFBAWohAQwBCwJAIAEiASACRw0AQe0AIRAM+QILIAFBAWohAQtBBCEQDN4CCwJAIAEiFCACRw0AQe4AIRAM9wILIBQhAQJAAkACQCAULQAAQfDIgIAAai0AAEF/ag4H1AHVAdYBAJwCAQLXAQsgFEEBaiEBDAoLIBRBAWohAQzNAQtBACEQIABBADYCHCAAQZuSgIAANgIQIABBBzYCDCAAIBRBAWo2AhQM9gILAkADQAJAIAEtAABB8MiAgABqLQAAIhBBBEYNAAJAAkAgEEF/ag4H0gHTAdQB2QEABAHZAQsgASEBQdoAIRAM4AILIAFBAWohAUHcACEQDN8CCyABQQFqIgEgAkcNAAtB7wAhEAz2AgsgAUEBaiEBDMsBCwJAIAEiFCACRw0AQfAAIRAM9QILIBQtAABBL0cN1AEgFEEBaiEBDAYLAkAgASIUIAJHDQBB8QAhEAz0AgsCQCAULQAAIgFBL0cNACAUQQFqIQFB3QAhEAzbAgsgAUF2aiIEQRZLDdMBQQEgBHRBiYCAAnFFDdMBDMoCCwJAIAEiASACRg0AIAFBAWohAUHeACEQDNoCC0HyACEQDPICCwJAIAEiFCACRw0AQfQAIRAM8gILIBQhAQJAIBQtAABB8MyAgABqLQAAQX9qDgPJApQCANQBC0HhACEQDNgCCwJAIAEiFCACRg0AA0ACQCAULQAAQfDKgIAAai0AACIBQQNGDQACQCABQX9qDgLLAgDVAQsgFCEBQd8AIRAM2gILIBRBAWoiFCACRw0AC0HzACEQDPECC0HzACEQDPACCwJAIAEiASACRg0AIABBj4CAgAA2AgggACABNgIEIAEhAUHgACEQDNcCC0H1ACEQDO8CCwJAIAEiASACRw0AQfYAIRAM7wILIABBj4CAgAA2AgggACABNgIEIAEhAQtBAyEQDNQCCwNAIAEtAABBIEcNwwIgAUEBaiIBIAJHDQALQfcAIRAM7AILAkAgASIBIAJHDQBB+AAhEAzsAgsgAS0AAEEgRw3OASABQQFqIQEM7wELIAAgASIBIAIQrICAgAAiEA3OASABIQEMjgILAkAgASIEIAJHDQBB+gAhEAzqAgsgBC0AAEHMAEcN0QEgBEEBaiEBQRMhEAzPAQsCQCABIgQgAkcNAEH7ACEQDOkCCyACIARrIAAoAgAiAWohFCAEIAFrQQVqIRADQCAELQAAIAFB8M6AgABqLQAARw3QASABQQVGDc4BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQfsAIRAM6AILAkAgASIEIAJHDQBB/AAhEAzoAgsCQAJAIAQtAABBvX9qDgwA0QHRAdEB0QHRAdEB0QHRAdEB0QEB0QELIARBAWohAUHmACEQDM8CCyAEQQFqIQFB5wAhEAzOAgsCQCABIgQgAkcNAEH9ACEQDOcCCyACIARrIAAoAgAiAWohFCAEIAFrQQJqIRACQANAIAQtAAAgAUHtz4CAAGotAABHDc8BIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEH9ACEQDOcCCyAAQQA2AgAgEEEBaiEBQRAhEAzMAQsCQCABIgQgAkcNAEH+ACEQDOYCCyACIARrIAAoAgAiAWohFCAEIAFrQQVqIRACQANAIAQtAAAgAUH2zoCAAGotAABHDc4BIAFBBUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEH+ACEQDOYCCyAAQQA2AgAgEEEBaiEBQRYhEAzLAQsCQCABIgQgAkcNAEH/ACEQDOUCCyACIARrIAAoAgAiAWohFCAEIAFrQQNqIRACQANAIAQtAAAgAUH8zoCAAGotAABHDc0BIAFBA0YNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEH/ACEQDOUCCyAAQQA2AgAgEEEBaiEBQQUhEAzKAQsCQCABIgQgAkcNAEGAASEQDOQCCyAELQAAQdkARw3LASAEQQFqIQFBCCEQDMkBCwJAIAEiBCACRw0AQYEBIRAM4wILAkACQCAELQAAQbJ/ag4DAMwBAcwBCyAEQQFqIQFB6wAhEAzKAgsgBEEBaiEBQewAIRAMyQILAkAgASIEIAJHDQBBggEhEAziAgsCQAJAIAQtAABBuH9qDggAywHLAcsBywHLAcsBAcsBCyAEQQFqIQFB6gAhEAzJAgsgBEEBaiEBQe0AIRAMyAILAkAgASIEIAJHDQBBgwEhEAzhAgsgAiAEayAAKAIAIgFqIRAgBCABa0ECaiEUAkADQCAELQAAIAFBgM+AgABqLQAARw3JASABQQJGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBA2AgBBgwEhEAzhAgtBACEQIABBADYCACAUQQFqIQEMxgELAkAgASIEIAJHDQBBhAEhEAzgAgsgAiAEayAAKAIAIgFqIRQgBCABa0EEaiEQAkADQCAELQAAIAFBg8+AgABqLQAARw3IASABQQRGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBhAEhEAzgAgsgAEEANgIAIBBBAWohAUEjIRAMxQELAkAgASIEIAJHDQBBhQEhEAzfAgsCQAJAIAQtAABBtH9qDggAyAHIAcgByAHIAcgBAcgBCyAEQQFqIQFB7wAhEAzGAgsgBEEBaiEBQfAAIRAMxQILAkAgASIEIAJHDQBBhgEhEAzeAgsgBC0AAEHFAEcNxQEgBEEBaiEBDIMCCwJAIAEiBCACRw0AQYcBIRAM3QILIAIgBGsgACgCACIBaiEUIAQgAWtBA2ohEAJAA0AgBC0AACABQYjPgIAAai0AAEcNxQEgAUEDRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQYcBIRAM3QILIABBADYCACAQQQFqIQFBLSEQDMIBCwJAIAEiBCACRw0AQYgBIRAM3AILIAIgBGsgACgCACIBaiEUIAQgAWtBCGohEAJAA0AgBC0AACABQdDPgIAAai0AAEcNxAEgAUEIRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQYgBIRAM3AILIABBADYCACAQQQFqIQFBKSEQDMEBCwJAIAEiASACRw0AQYkBIRAM2wILQQEhECABLQAAQd8ARw3AASABQQFqIQEMgQILAkAgASIEIAJHDQBBigEhEAzaAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQA0AgBC0AACABQYzPgIAAai0AAEcNwQEgAUEBRg2vAiABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGKASEQDNkCCwJAIAEiBCACRw0AQYsBIRAM2QILIAIgBGsgACgCACIBaiEUIAQgAWtBAmohEAJAA0AgBC0AACABQY7PgIAAai0AAEcNwQEgAUECRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQYsBIRAM2QILIABBADYCACAQQQFqIQFBAiEQDL4BCwJAIAEiBCACRw0AQYwBIRAM2AILIAIgBGsgACgCACIBaiEUIAQgAWtBAWohEAJAA0AgBC0AACABQfDPgIAAai0AAEcNwAEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQYwBIRAM2AILIABBADYCACAQQQFqIQFBHyEQDL0BCwJAIAEiBCACRw0AQY0BIRAM1wILIAIgBGsgACgCACIBaiEUIAQgAWtBAWohEAJAA0AgBC0AACABQfLPgIAAai0AAEcNvwEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQY0BIRAM1wILIABBADYCACAQQQFqIQFBCSEQDLwBCwJAIAEiBCACRw0AQY4BIRAM1gILAkACQCAELQAAQbd/ag4HAL8BvwG/Ab8BvwEBvwELIARBAWohAUH4ACEQDL0CCyAEQQFqIQFB+QAhEAy8AgsCQCABIgQgAkcNAEGPASEQDNUCCyACIARrIAAoAgAiAWohFCAEIAFrQQVqIRACQANAIAQtAAAgAUGRz4CAAGotAABHDb0BIAFBBUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGPASEQDNUCCyAAQQA2AgAgEEEBaiEBQRghEAy6AQsCQCABIgQgAkcNAEGQASEQDNQCCyACIARrIAAoAgAiAWohFCAEIAFrQQJqIRACQANAIAQtAAAgAUGXz4CAAGotAABHDbwBIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGQASEQDNQCCyAAQQA2AgAgEEEBaiEBQRchEAy5AQsCQCABIgQgAkcNAEGRASEQDNMCCyACIARrIAAoAgAiAWohFCAEIAFrQQZqIRACQANAIAQtAAAgAUGaz4CAAGotAABHDbsBIAFBBkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGRASEQDNMCCyAAQQA2AgAgEEEBaiEBQRUhEAy4AQsCQCABIgQgAkcNAEGSASEQDNICCyACIARrIAAoAgAiAWohFCAEIAFrQQVqIRACQANAIAQtAAAgAUGhz4CAAGotAABHDboBIAFBBUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGSASEQDNICCyAAQQA2AgAgEEEBaiEBQR4hEAy3AQsCQCABIgQgAkcNAEGTASEQDNECCyAELQAAQcwARw24ASAEQQFqIQFBCiEQDLYBCwJAIAQgAkcNAEGUASEQDNACCwJAAkAgBC0AAEG/f2oODwC5AbkBuQG5AbkBuQG5AbkBuQG5AbkBuQG5AQG5AQsgBEEBaiEBQf4AIRAMtwILIARBAWohAUH/ACEQDLYCCwJAIAQgAkcNAEGVASEQDM8CCwJAAkAgBC0AAEG/f2oOAwC4AQG4AQsgBEEBaiEBQf0AIRAMtgILIARBAWohBEGAASEQDLUCCwJAIAQgAkcNAEGWASEQDM4CCyACIARrIAAoAgAiAWohFCAEIAFrQQFqIRACQANAIAQtAAAgAUGnz4CAAGotAABHDbYBIAFBAUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGWASEQDM4CCyAAQQA2AgAgEEEBaiEBQQshEAyzAQsCQCAEIAJHDQBBlwEhEAzNAgsCQAJAAkACQCAELQAAQVNqDiMAuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AQG4AbgBuAG4AbgBArgBuAG4AQO4AQsgBEEBaiEBQfsAIRAMtgILIARBAWohAUH8ACEQDLUCCyAEQQFqIQRBgQEhEAy0AgsgBEEBaiEEQYIBIRAMswILAkAgBCACRw0AQZgBIRAMzAILIAIgBGsgACgCACIBaiEUIAQgAWtBBGohEAJAA0AgBC0AACABQanPgIAAai0AAEcNtAEgAUEERg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZgBIRAMzAILIABBADYCACAQQQFqIQFBGSEQDLEBCwJAIAQgAkcNAEGZASEQDMsCCyACIARrIAAoAgAiAWohFCAEIAFrQQVqIRACQANAIAQtAAAgAUGuz4CAAGotAABHDbMBIAFBBUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGZASEQDMsCCyAAQQA2AgAgEEEBaiEBQQYhEAywAQsCQCAEIAJHDQBBmgEhEAzKAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQAkADQCAELQAAIAFBtM+AgABqLQAARw2yASABQQFGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBmgEhEAzKAgsgAEEANgIAIBBBAWohAUEcIRAMrwELAkAgBCACRw0AQZsBIRAMyQILIAIgBGsgACgCACIBaiEUIAQgAWtBAWohEAJAA0AgBC0AACABQbbPgIAAai0AAEcNsQEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZsBIRAMyQILIABBADYCACAQQQFqIQFBJyEQDK4BCwJAIAQgAkcNAEGcASEQDMgCCwJAAkAgBC0AAEGsf2oOAgABsQELIARBAWohBEGGASEQDK8CCyAEQQFqIQRBhwEhEAyuAgsCQCAEIAJHDQBBnQEhEAzHAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQAkADQCAELQAAIAFBuM+AgABqLQAARw2vASABQQFGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBnQEhEAzHAgsgAEEANgIAIBBBAWohAUEmIRAMrAELAkAgBCACRw0AQZ4BIRAMxgILIAIgBGsgACgCACIBaiEUIAQgAWtBAWohEAJAA0AgBC0AACABQbrPgIAAai0AAEcNrgEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZ4BIRAMxgILIABBADYCACAQQQFqIQFBAyEQDKsBCwJAIAQgAkcNAEGfASEQDMUCCyACIARrIAAoAgAiAWohFCAEIAFrQQJqIRACQANAIAQtAAAgAUHtz4CAAGotAABHDa0BIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGfASEQDMUCCyAAQQA2AgAgEEEBaiEBQQwhEAyqAQsCQCAEIAJHDQBBoAEhEAzEAgsgAiAEayAAKAIAIgFqIRQgBCABa0EDaiEQAkADQCAELQAAIAFBvM+AgABqLQAARw2sASABQQNGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBoAEhEAzEAgsgAEEANgIAIBBBAWohAUENIRAMqQELAkAgBCACRw0AQaEBIRAMwwILAkACQCAELQAAQbp/ag4LAKwBrAGsAawBrAGsAawBrAGsAQGsAQsgBEEBaiEEQYsBIRAMqgILIARBAWohBEGMASEQDKkCCwJAIAQgAkcNAEGiASEQDMICCyAELQAAQdAARw2pASAEQQFqIQQM6QELAkAgBCACRw0AQaMBIRAMwQILAkACQCAELQAAQbd/ag4HAaoBqgGqAaoBqgEAqgELIARBAWohBEGOASEQDKgCCyAEQQFqIQFBIiEQDKYBCwJAIAQgAkcNAEGkASEQDMACCyACIARrIAAoAgAiAWohFCAEIAFrQQFqIRACQANAIAQtAAAgAUHAz4CAAGotAABHDagBIAFBAUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGkASEQDMACCyAAQQA2AgAgEEEBaiEBQR0hEAylAQsCQCAEIAJHDQBBpQEhEAy/AgsCQAJAIAQtAABBrn9qDgMAqAEBqAELIARBAWohBEGQASEQDKYCCyAEQQFqIQFBBCEQDKQBCwJAIAQgAkcNAEGmASEQDL4CCwJAAkACQAJAAkAgBC0AAEG/f2oOFQCqAaoBqgGqAaoBqgGqAaoBqgGqAQGqAaoBAqoBqgEDqgGqAQSqAQsgBEEBaiEEQYgBIRAMqAILIARBAWohBEGJASEQDKcCCyAEQQFqIQRBigEhEAymAgsgBEEBaiEEQY8BIRAMpQILIARBAWohBEGRASEQDKQCCwJAIAQgAkcNAEGnASEQDL0CCyACIARrIAAoAgAiAWohFCAEIAFrQQJqIRACQANAIAQtAAAgAUHtz4CAAGotAABHDaUBIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGnASEQDL0CCyAAQQA2AgAgEEEBaiEBQREhEAyiAQsCQCAEIAJHDQBBqAEhEAy8AgsgAiAEayAAKAIAIgFqIRQgBCABa0ECaiEQAkADQCAELQAAIAFBws+AgABqLQAARw2kASABQQJGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBqAEhEAy8AgsgAEEANgIAIBBBAWohAUEsIRAMoQELAkAgBCACRw0AQakBIRAMuwILIAIgBGsgACgCACIBaiEUIAQgAWtBBGohEAJAA0AgBC0AACABQcXPgIAAai0AAEcNowEgAUEERg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQakBIRAMuwILIABBADYCACAQQQFqIQFBKyEQDKABCwJAIAQgAkcNAEGqASEQDLoCCyACIARrIAAoAgAiAWohFCAEIAFrQQJqIRACQANAIAQtAAAgAUHKz4CAAGotAABHDaIBIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGqASEQDLoCCyAAQQA2AgAgEEEBaiEBQRQhEAyfAQsCQCAEIAJHDQBBqwEhEAy5AgsCQAJAAkACQCAELQAAQb5/ag4PAAECpAGkAaQBpAGkAaQBpAGkAaQBpAGkAQOkAQsgBEEBaiEEQZMBIRAMogILIARBAWohBEGUASEQDKECCyAEQQFqIQRBlQEhEAygAgsgBEEBaiEEQZYBIRAMnwILAkAgBCACRw0AQawBIRAMuAILIAQtAABBxQBHDZ8BIARBAWohBAzgAQsCQCAEIAJHDQBBrQEhEAy3AgsgAiAEayAAKAIAIgFqIRQgBCABa0ECaiEQAkADQCAELQAAIAFBzc+AgABqLQAARw2fASABQQJGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBrQEhEAy3AgsgAEEANgIAIBBBAWohAUEOIRAMnAELAkAgBCACRw0AQa4BIRAMtgILIAQtAABB0ABHDZ0BIARBAWohAUElIRAMmwELAkAgBCACRw0AQa8BIRAMtQILIAIgBGsgACgCACIBaiEUIAQgAWtBCGohEAJAA0AgBC0AACABQdDPgIAAai0AAEcNnQEgAUEIRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQa8BIRAMtQILIABBADYCACAQQQFqIQFBKiEQDJoBCwJAIAQgAkcNAEGwASEQDLQCCwJAAkAgBC0AAEGrf2oOCwCdAZ0BnQGdAZ0BnQGdAZ0BnQEBnQELIARBAWohBEGaASEQDJsCCyAEQQFqIQRBmwEhEAyaAgsCQCAEIAJHDQBBsQEhEAyzAgsCQAJAIAQtAABBv39qDhQAnAGcAZwBnAGcAZwBnAGcAZwBnAGcAZwBnAGcAZwBnAGcAZwBAZwBCyAEQQFqIQRBmQEhEAyaAgsgBEEBaiEEQZwBIRAMmQILAkAgBCACRw0AQbIBIRAMsgILIAIgBGsgACgCACIBaiEUIAQgAWtBA2ohEAJAA0AgBC0AACABQdnPgIAAai0AAEcNmgEgAUEDRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQbIBIRAMsgILIABBADYCACAQQQFqIQFBISEQDJcBCwJAIAQgAkcNAEGzASEQDLECCyACIARrIAAoAgAiAWohFCAEIAFrQQZqIRACQANAIAQtAAAgAUHdz4CAAGotAABHDZkBIAFBBkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGzASEQDLECCyAAQQA2AgAgEEEBaiEBQRohEAyWAQsCQCAEIAJHDQBBtAEhEAywAgsCQAJAAkAgBC0AAEG7f2oOEQCaAZoBmgGaAZoBmgGaAZoBmgEBmgGaAZoBmgGaAQKaAQsgBEEBaiEEQZ0BIRAMmAILIARBAWohBEGeASEQDJcCCyAEQQFqIQRBnwEhEAyWAgsCQCAEIAJHDQBBtQEhEAyvAgsgAiAEayAAKAIAIgFqIRQgBCABa0EFaiEQAkADQCAELQAAIAFB5M+AgABqLQAARw2XASABQQVGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBtQEhEAyvAgsgAEEANgIAIBBBAWohAUEoIRAMlAELAkAgBCACRw0AQbYBIRAMrgILIAIgBGsgACgCACIBaiEUIAQgAWtBAmohEAJAA0AgBC0AACABQerPgIAAai0AAEcNlgEgAUECRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQbYBIRAMrgILIABBADYCACAQQQFqIQFBByEQDJMBCwJAIAQgAkcNAEG3ASEQDK0CCwJAAkAgBC0AAEG7f2oODgCWAZYBlgGWAZYBlgGWAZYBlgGWAZYBlgEBlgELIARBAWohBEGhASEQDJQCCyAEQQFqIQRBogEhEAyTAgsCQCAEIAJHDQBBuAEhEAysAgsgAiAEayAAKAIAIgFqIRQgBCABa0ECaiEQAkADQCAELQAAIAFB7c+AgABqLQAARw2UASABQQJGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBuAEhEAysAgsgAEEANgIAIBBBAWohAUESIRAMkQELAkAgBCACRw0AQbkBIRAMqwILIAIgBGsgACgCACIBaiEUIAQgAWtBAWohEAJAA0AgBC0AACABQfDPgIAAai0AAEcNkwEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQbkBIRAMqwILIABBADYCACAQQQFqIQFBICEQDJABCwJAIAQgAkcNAEG6ASEQDKoCCyACIARrIAAoAgAiAWohFCAEIAFrQQFqIRACQANAIAQtAAAgAUHyz4CAAGotAABHDZIBIAFBAUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEG6ASEQDKoCCyAAQQA2AgAgEEEBaiEBQQ8hEAyPAQsCQCAEIAJHDQBBuwEhEAypAgsCQAJAIAQtAABBt39qDgcAkgGSAZIBkgGSAQGSAQsgBEEBaiEEQaUBIRAMkAILIARBAWohBEGmASEQDI8CCwJAIAQgAkcNAEG8ASEQDKgCCyACIARrIAAoAgAiAWohFCAEIAFrQQdqIRACQANAIAQtAAAgAUH0z4CAAGotAABHDZABIAFBB0YNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEG8ASEQDKgCCyAAQQA2AgAgEEEBaiEBQRshEAyNAQsCQCAEIAJHDQBBvQEhEAynAgsCQAJAAkAgBC0AAEG+f2oOEgCRAZEBkQGRAZEBkQGRAZEBkQEBkQGRAZEBkQGRAZEBApEBCyAEQQFqIQRBpAEhEAyPAgsgBEEBaiEEQacBIRAMjgILIARBAWohBEGoASEQDI0CCwJAIAQgAkcNAEG+ASEQDKYCCyAELQAAQc4ARw2NASAEQQFqIQQMzwELAkAgBCACRw0AQb8BIRAMpQILAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgBC0AAEG/f2oOFQABAgOcAQQFBpwBnAGcAQcICQoLnAEMDQ4PnAELIARBAWohAUHoACEQDJoCCyAEQQFqIQFB6QAhEAyZAgsgBEEBaiEBQe4AIRAMmAILIARBAWohAUHyACEQDJcCCyAEQQFqIQFB8wAhEAyWAgsgBEEBaiEBQfYAIRAMlQILIARBAWohAUH3ACEQDJQCCyAEQQFqIQFB+gAhEAyTAgsgBEEBaiEEQYMBIRAMkgILIARBAWohBEGEASEQDJECCyAEQQFqIQRBhQEhEAyQAgsgBEEBaiEEQZIBIRAMjwILIARBAWohBEGYASEQDI4CCyAEQQFqIQRBoAEhEAyNAgsgBEEBaiEEQaMBIRAMjAILIARBAWohBEGqASEQDIsCCwJAIAQgAkYNACAAQZCAgIAANgIIIAAgBDYCBEGrASEQDIsCC0HAASEQDKMCCyAAIAUgAhCqgICAACIBDYsBIAUhAQxcCwJAIAYgAkYNACAGQQFqIQUMjQELQcIBIRAMoQILA0ACQCAQLQAAQXZqDgSMAQAAjwEACyAQQQFqIhAgAkcNAAtBwwEhEAygAgsCQCAHIAJGDQAgAEGRgICAADYCCCAAIAc2AgQgByEBQQEhEAyHAgtBxAEhEAyfAgsCQCAHIAJHDQBBxQEhEAyfAgsCQAJAIActAABBdmoOBAHOAc4BAM4BCyAHQQFqIQYMjQELIAdBAWohBQyJAQsCQCAHIAJHDQBBxgEhEAyeAgsCQAJAIActAABBdmoOFwGPAY8BAY8BjwGPAY8BjwGPAY8BjwGPAY8BjwGPAY8BjwGPAY8BjwGPAQCPAQsgB0EBaiEHC0GwASEQDIQCCwJAIAggAkcNAEHIASEQDJ0CCyAILQAAQSBHDY0BIABBADsBMiAIQQFqIQFBswEhEAyDAgsgASEXAkADQCAXIgcgAkYNASAHLQAAQVBqQf8BcSIQQQpPDcwBAkAgAC8BMiIUQZkzSw0AIAAgFEEKbCIUOwEyIBBB//8DcyAUQf7/A3FJDQAgB0EBaiEXIAAgFCAQaiIQOwEyIBBB//8DcUHoB0kNAQsLQQAhECAAQQA2AhwgAEHBiYCAADYCECAAQQ02AgwgACAHQQFqNgIUDJwCC0HHASEQDJsCCyAAIAggAhCugICAACIQRQ3KASAQQRVHDYwBIABByAE2AhwgACAINgIUIABByZeAgAA2AhAgAEEVNgIMQQAhEAyaAgsCQCAJIAJHDQBBzAEhEAyaAgtBACEUQQEhF0EBIRZBACEQAkACQAJAAkACQAJAAkACQAJAIAktAABBUGoOCpYBlQEAAQIDBAUGCJcBC0ECIRAMBgtBAyEQDAULQQQhEAwEC0EFIRAMAwtBBiEQDAILQQchEAwBC0EIIRALQQAhF0EAIRZBACEUDI4BC0EJIRBBASEUQQAhF0EAIRYMjQELAkAgCiACRw0AQc4BIRAMmQILIAotAABBLkcNjgEgCkEBaiEJDMoBCyALIAJHDY4BQdABIRAMlwILAkAgCyACRg0AIABBjoCAgAA2AgggACALNgIEQbcBIRAM/gELQdEBIRAMlgILAkAgBCACRw0AQdIBIRAMlgILIAIgBGsgACgCACIQaiEUIAQgEGtBBGohCwNAIAQtAAAgEEH8z4CAAGotAABHDY4BIBBBBEYN6QEgEEEBaiEQIARBAWoiBCACRw0ACyAAIBQ2AgBB0gEhEAyVAgsgACAMIAIQrICAgAAiAQ2NASAMIQEMuAELAkAgBCACRw0AQdQBIRAMlAILIAIgBGsgACgCACIQaiEUIAQgEGtBAWohDANAIAQtAAAgEEGB0ICAAGotAABHDY8BIBBBAUYNjgEgEEEBaiEQIARBAWoiBCACRw0ACyAAIBQ2AgBB1AEhEAyTAgsCQCAEIAJHDQBB1gEhEAyTAgsgAiAEayAAKAIAIhBqIRQgBCAQa0ECaiELA0AgBC0AACAQQYPQgIAAai0AAEcNjgEgEEECRg2QASAQQQFqIRAgBEEBaiIEIAJHDQALIAAgFDYCAEHWASEQDJICCwJAIAQgAkcNAEHXASEQDJICCwJAAkAgBC0AAEG7f2oOEACPAY8BjwGPAY8BjwGPAY8BjwGPAY8BjwGPAY8BAY8BCyAEQQFqIQRBuwEhEAz5AQsgBEEBaiEEQbwBIRAM+AELAkAgBCACRw0AQdgBIRAMkQILIAQtAABByABHDYwBIARBAWohBAzEAQsCQCAEIAJGDQAgAEGQgICAADYCCCAAIAQ2AgRBvgEhEAz3AQtB2QEhEAyPAgsCQCAEIAJHDQBB2gEhEAyPAgsgBC0AAEHIAEYNwwEgAEEBOgAoDLkBCyAAQQI6AC8gACAEIAIQpoCAgAAiEA2NAUHCASEQDPQBCyAALQAoQX9qDgK3AbkBuAELA0ACQCAELQAAQXZqDgQAjgGOAQCOAQsgBEEBaiIEIAJHDQALQd0BIRAMiwILIABBADoALyAALQAtQQRxRQ2EAgsgAEEAOgAvIABBAToANCABIQEMjAELIBBBFUYN2gEgAEEANgIcIAAgATYCFCAAQaeOgIAANgIQIABBEjYCDEEAIRAMiAILAkAgACAQIAIQtICAgAAiBA0AIBAhAQyBAgsCQCAEQRVHDQAgAEEDNgIcIAAgEDYCFCAAQbCYgIAANgIQIABBFTYCDEEAIRAMiAILIABBADYCHCAAIBA2AhQgAEGnjoCAADYCECAAQRI2AgxBACEQDIcCCyAQQRVGDdYBIABBADYCHCAAIAE2AhQgAEHajYCAADYCECAAQRQ2AgxBACEQDIYCCyAAKAIEIRcgAEEANgIEIBAgEadqIhYhASAAIBcgECAWIBQbIhAQtYCAgAAiFEUNjQEgAEEHNgIcIAAgEDYCFCAAIBQ2AgxBACEQDIUCCyAAIAAvATBBgAFyOwEwIAEhAQtBKiEQDOoBCyAQQRVGDdEBIABBADYCHCAAIAE2AhQgAEGDjICAADYCECAAQRM2AgxBACEQDIICCyAQQRVGDc8BIABBADYCHCAAIAE2AhQgAEGaj4CAADYCECAAQSI2AgxBACEQDIECCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQt4CAgAAiEA0AIAFBAWohAQyNAQsgAEEMNgIcIAAgEDYCDCAAIAFBAWo2AhRBACEQDIACCyAQQRVGDcwBIABBADYCHCAAIAE2AhQgAEGaj4CAADYCECAAQSI2AgxBACEQDP8BCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQt4CAgAAiEA0AIAFBAWohAQyMAQsgAEENNgIcIAAgEDYCDCAAIAFBAWo2AhRBACEQDP4BCyAQQRVGDckBIABBADYCHCAAIAE2AhQgAEHGjICAADYCECAAQSM2AgxBACEQDP0BCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQuYCAgAAiEA0AIAFBAWohAQyLAQsgAEEONgIcIAAgEDYCDCAAIAFBAWo2AhRBACEQDPwBCyAAQQA2AhwgACABNgIUIABBwJWAgAA2AhAgAEECNgIMQQAhEAz7AQsgEEEVRg3FASAAQQA2AhwgACABNgIUIABBxoyAgAA2AhAgAEEjNgIMQQAhEAz6AQsgAEEQNgIcIAAgATYCFCAAIBA2AgxBACEQDPkBCyAAKAIEIQQgAEEANgIEAkAgACAEIAEQuYCAgAAiBA0AIAFBAWohAQzxAQsgAEERNgIcIAAgBDYCDCAAIAFBAWo2AhRBACEQDPgBCyAQQRVGDcEBIABBADYCHCAAIAE2AhQgAEHGjICAADYCECAAQSM2AgxBACEQDPcBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQuYCAgAAiEA0AIAFBAWohAQyIAQsgAEETNgIcIAAgEDYCDCAAIAFBAWo2AhRBACEQDPYBCyAAKAIEIQQgAEEANgIEAkAgACAEIAEQuYCAgAAiBA0AIAFBAWohAQztAQsgAEEUNgIcIAAgBDYCDCAAIAFBAWo2AhRBACEQDPUBCyAQQRVGDb0BIABBADYCHCAAIAE2AhQgAEGaj4CAADYCECAAQSI2AgxBACEQDPQBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQt4CAgAAiEA0AIAFBAWohAQyGAQsgAEEWNgIcIAAgEDYCDCAAIAFBAWo2AhRBACEQDPMBCyAAKAIEIQQgAEEANgIEAkAgACAEIAEQt4CAgAAiBA0AIAFBAWohAQzpAQsgAEEXNgIcIAAgBDYCDCAAIAFBAWo2AhRBACEQDPIBCyAAQQA2AhwgACABNgIUIABBzZOAgAA2AhAgAEEMNgIMQQAhEAzxAQtCASERCyAQQQFqIQECQCAAKQMgIhJC//////////8PVg0AIAAgEkIEhiARhDcDICABIQEMhAELIABBADYCHCAAIAE2AhQgAEGtiYCAADYCECAAQQw2AgxBACEQDO8BCyAAQQA2AhwgACAQNgIUIABBzZOAgAA2AhAgAEEMNgIMQQAhEAzuAQsgACgCBCEXIABBADYCBCAQIBGnaiIWIQEgACAXIBAgFiAUGyIQELWAgIAAIhRFDXMgAEEFNgIcIAAgEDYCFCAAIBQ2AgxBACEQDO0BCyAAQQA2AhwgACAQNgIUIABBqpyAgAA2AhAgAEEPNgIMQQAhEAzsAQsgACAQIAIQtICAgAAiAQ0BIBAhAQtBDiEQDNEBCwJAIAFBFUcNACAAQQI2AhwgACAQNgIUIABBsJiAgAA2AhAgAEEVNgIMQQAhEAzqAQsgAEEANgIcIAAgEDYCFCAAQaeOgIAANgIQIABBEjYCDEEAIRAM6QELIAFBAWohEAJAIAAvATAiAUGAAXFFDQACQCAAIBAgAhC7gICAACIBDQAgECEBDHALIAFBFUcNugEgAEEFNgIcIAAgEDYCFCAAQfmXgIAANgIQIABBFTYCDEEAIRAM6QELAkAgAUGgBHFBoARHDQAgAC0ALUECcQ0AIABBADYCHCAAIBA2AhQgAEGWk4CAADYCECAAQQQ2AgxBACEQDOkBCyAAIBAgAhC9gICAABogECEBAkACQAJAAkACQCAAIBAgAhCzgICAAA4WAgEABAQEBAQEBAQEBAQEBAQEBAQEAwQLIABBAToALgsgACAALwEwQcAAcjsBMCAQIQELQSYhEAzRAQsgAEEjNgIcIAAgEDYCFCAAQaWWgIAANgIQIABBFTYCDEEAIRAM6QELIABBADYCHCAAIBA2AhQgAEHVi4CAADYCECAAQRE2AgxBACEQDOgBCyAALQAtQQFxRQ0BQcMBIRAMzgELAkAgDSACRg0AA0ACQCANLQAAQSBGDQAgDSEBDMQBCyANQQFqIg0gAkcNAAtBJSEQDOcBC0ElIRAM5gELIAAoAgQhBCAAQQA2AgQgACAEIA0Qr4CAgAAiBEUNrQEgAEEmNgIcIAAgBDYCDCAAIA1BAWo2AhRBACEQDOUBCyAQQRVGDasBIABBADYCHCAAIAE2AhQgAEH9jYCAADYCECAAQR02AgxBACEQDOQBCyAAQSc2AhwgACABNgIUIAAgEDYCDEEAIRAM4wELIBAhAUEBIRQCQAJAAkACQAJAAkACQCAALQAsQX5qDgcGBQUDAQIABQsgACAALwEwQQhyOwEwDAMLQQIhFAwBC0EEIRQLIABBAToALCAAIAAvATAgFHI7ATALIBAhAQtBKyEQDMoBCyAAQQA2AhwgACAQNgIUIABBq5KAgAA2AhAgAEELNgIMQQAhEAziAQsgAEEANgIcIAAgATYCFCAAQeGPgIAANgIQIABBCjYCDEEAIRAM4QELIABBADoALCAQIQEMvQELIBAhAUEBIRQCQAJAAkACQAJAIAAtACxBe2oOBAMBAgAFCyAAIAAvATBBCHI7ATAMAwtBAiEUDAELQQQhFAsgAEEBOgAsIAAgAC8BMCAUcjsBMAsgECEBC0EpIRAMxQELIABBADYCHCAAIAE2AhQgAEHwlICAADYCECAAQQM2AgxBACEQDN0BCwJAIA4tAABBDUcNACAAKAIEIQEgAEEANgIEAkAgACABIA4QsYCAgAAiAQ0AIA5BAWohAQx1CyAAQSw2AhwgACABNgIMIAAgDkEBajYCFEEAIRAM3QELIAAtAC1BAXFFDQFBxAEhEAzDAQsCQCAOIAJHDQBBLSEQDNwBCwJAAkADQAJAIA4tAABBdmoOBAIAAAMACyAOQQFqIg4gAkcNAAtBLSEQDN0BCyAAKAIEIQEgAEEANgIEAkAgACABIA4QsYCAgAAiAQ0AIA4hAQx0CyAAQSw2AhwgACAONgIUIAAgATYCDEEAIRAM3AELIAAoAgQhASAAQQA2AgQCQCAAIAEgDhCxgICAACIBDQAgDkEBaiEBDHMLIABBLDYCHCAAIAE2AgwgACAOQQFqNgIUQQAhEAzbAQsgACgCBCEEIABBADYCBCAAIAQgDhCxgICAACIEDaABIA4hAQzOAQsgEEEsRw0BIAFBAWohEEEBIQECQAJAAkACQAJAIAAtACxBe2oOBAMBAgQACyAQIQEMBAtBAiEBDAELQQQhAQsgAEEBOgAsIAAgAC8BMCABcjsBMCAQIQEMAQsgACAALwEwQQhyOwEwIBAhAQtBOSEQDL8BCyAAQQA6ACwgASEBC0E0IRAMvQELIAAgAC8BMEEgcjsBMCABIQEMAgsgACgCBCEEIABBADYCBAJAIAAgBCABELGAgIAAIgQNACABIQEMxwELIABBNzYCHCAAIAE2AhQgACAENgIMQQAhEAzUAQsgAEEIOgAsIAEhAQtBMCEQDLkBCwJAIAAtAChBAUYNACABIQEMBAsgAC0ALUEIcUUNkwEgASEBDAMLIAAtADBBIHENlAFBxQEhEAy3AQsCQCAPIAJGDQACQANAAkAgDy0AAEFQaiIBQf8BcUEKSQ0AIA8hAUE1IRAMugELIAApAyAiEUKZs+bMmbPmzBlWDQEgACARQgp+IhE3AyAgESABrUL/AYMiEkJ/hVYNASAAIBEgEnw3AyAgD0EBaiIPIAJHDQALQTkhEAzRAQsgACgCBCECIABBADYCBCAAIAIgD0EBaiIEELGAgIAAIgINlQEgBCEBDMMBC0E5IRAMzwELAkAgAC8BMCIBQQhxRQ0AIAAtAChBAUcNACAALQAtQQhxRQ2QAQsgACABQff7A3FBgARyOwEwIA8hAQtBNyEQDLQBCyAAIAAvATBBEHI7ATAMqwELIBBBFUYNiwEgAEEANgIcIAAgATYCFCAAQfCOgIAANgIQIABBHDYCDEEAIRAMywELIABBwwA2AhwgACABNgIMIAAgDUEBajYCFEEAIRAMygELAkAgAS0AAEE6Rw0AIAAoAgQhECAAQQA2AgQCQCAAIBAgARCvgICAACIQDQAgAUEBaiEBDGMLIABBwwA2AhwgACAQNgIMIAAgAUEBajYCFEEAIRAMygELIABBADYCHCAAIAE2AhQgAEGxkYCAADYCECAAQQo2AgxBACEQDMkBCyAAQQA2AhwgACABNgIUIABBoJmAgAA2AhAgAEEeNgIMQQAhEAzIAQsgAEEANgIACyAAQYASOwEqIAAgF0EBaiIBIAIQqICAgAAiEA0BIAEhAQtBxwAhEAysAQsgEEEVRw2DASAAQdEANgIcIAAgATYCFCAAQeOXgIAANgIQIABBFTYCDEEAIRAMxAELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDF4LIABB0gA2AhwgACABNgIUIAAgEDYCDEEAIRAMwwELIABBADYCHCAAIBQ2AhQgAEHBqICAADYCECAAQQc2AgwgAEEANgIAQQAhEAzCAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMXQsgAEHTADYCHCAAIAE2AhQgACAQNgIMQQAhEAzBAQtBACEQIABBADYCHCAAIAE2AhQgAEGAkYCAADYCECAAQQk2AgwMwAELIBBBFUYNfSAAQQA2AhwgACABNgIUIABBlI2AgAA2AhAgAEEhNgIMQQAhEAy/AQtBASEWQQAhF0EAIRRBASEQCyAAIBA6ACsgAUEBaiEBAkACQCAALQAtQRBxDQACQAJAAkAgAC0AKg4DAQACBAsgFkUNAwwCCyAUDQEMAgsgF0UNAQsgACgCBCEQIABBADYCBAJAIAAgECABEK2AgIAAIhANACABIQEMXAsgAEHYADYCHCAAIAE2AhQgACAQNgIMQQAhEAy+AQsgACgCBCEEIABBADYCBAJAIAAgBCABEK2AgIAAIgQNACABIQEMrQELIABB2QA2AhwgACABNgIUIAAgBDYCDEEAIRAMvQELIAAoAgQhBCAAQQA2AgQCQCAAIAQgARCtgICAACIEDQAgASEBDKsBCyAAQdoANgIcIAAgATYCFCAAIAQ2AgxBACEQDLwBCyAAKAIEIQQgAEEANgIEAkAgACAEIAEQrYCAgAAiBA0AIAEhAQypAQsgAEHcADYCHCAAIAE2AhQgACAENgIMQQAhEAy7AQsCQCABLQAAQVBqIhBB/wFxQQpPDQAgACAQOgAqIAFBAWohAUHPACEQDKIBCyAAKAIEIQQgAEEANgIEAkAgACAEIAEQrYCAgAAiBA0AIAEhAQynAQsgAEHeADYCHCAAIAE2AhQgACAENgIMQQAhEAy6AQsgAEEANgIAIBdBAWohAQJAIAAtAClBI08NACABIQEMWQsgAEEANgIcIAAgATYCFCAAQdOJgIAANgIQIABBCDYCDEEAIRAMuQELIABBADYCAAtBACEQIABBADYCHCAAIAE2AhQgAEGQs4CAADYCECAAQQg2AgwMtwELIABBADYCACAXQQFqIQECQCAALQApQSFHDQAgASEBDFYLIABBADYCHCAAIAE2AhQgAEGbioCAADYCECAAQQg2AgxBACEQDLYBCyAAQQA2AgAgF0EBaiEBAkAgAC0AKSIQQV1qQQtPDQAgASEBDFULAkAgEEEGSw0AQQEgEHRBygBxRQ0AIAEhAQxVC0EAIRAgAEEANgIcIAAgATYCFCAAQfeJgIAANgIQIABBCDYCDAy1AQsgEEEVRg1xIABBADYCHCAAIAE2AhQgAEG5jYCAADYCECAAQRo2AgxBACEQDLQBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxUCyAAQeUANgIcIAAgATYCFCAAIBA2AgxBACEQDLMBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxNCyAAQdIANgIcIAAgATYCFCAAIBA2AgxBACEQDLIBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxNCyAAQdMANgIcIAAgATYCFCAAIBA2AgxBACEQDLEBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxRCyAAQeUANgIcIAAgATYCFCAAIBA2AgxBACEQDLABCyAAQQA2AhwgACABNgIUIABBxoqAgAA2AhAgAEEHNgIMQQAhEAyvAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHSADYCHCAAIAE2AhQgACAQNgIMQQAhEAyuAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHTADYCHCAAIAE2AhQgACAQNgIMQQAhEAytAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMTQsgAEHlADYCHCAAIAE2AhQgACAQNgIMQQAhEAysAQsgAEEANgIcIAAgATYCFCAAQdyIgIAANgIQIABBBzYCDEEAIRAMqwELIBBBP0cNASABQQFqIQELQQUhEAyQAQtBACEQIABBADYCHCAAIAE2AhQgAEH9koCAADYCECAAQQc2AgwMqAELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0gA2AhwgACABNgIUIAAgEDYCDEEAIRAMpwELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0wA2AhwgACABNgIUIAAgEDYCDEEAIRAMpgELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEYLIABB5QA2AhwgACABNgIUIAAgEDYCDEEAIRAMpQELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0gA2AhwgACAUNgIUIAAgATYCDEEAIRAMpAELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0wA2AhwgACAUNgIUIAAgATYCDEEAIRAMowELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDEMLIABB5QA2AhwgACAU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YWdlX2JlZ2luYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlYCBjYWxsYmFjayBlcnJvcgBgb25fc3RhdHVzX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdmVyc2lvbl9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3VybF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWVzc2FnZV9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX21ldGhvZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lYCBjYWxsYmFjayBlcnJvcgBVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNlcnZlcgBJbnZhbGlkIGhlYWRlciB2YWx1ZSBjaGFyAEludmFsaWQgaGVhZGVyIGZpZWxkIGNoYXIAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl92ZXJzaW9uAEludmFsaWQgbWlub3IgdmVyc2lvbgBJbnZhbGlkIG1ham9yIHZlcnNpb24ARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgdmVyc2lvbgBFeHBlY3RlZCBDUkxGIGFmdGVyIHZlcnNpb24ASW52YWxpZCBIVFRQIHZlcnNpb24ASW52YWxpZCBoZWFkZXIgdG9rZW4AU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl91cmwASW52YWxpZCBjaGFyYWN0ZXJzIGluIHVybABVbmV4cGVjdGVkIHN0YXJ0IGNoYXIgaW4gdXJsAERvdWJsZSBAIGluIHVybABFbXB0eSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXJhY3RlciBpbiBDb250ZW50LUxlbmd0aABEdXBsaWNhdGUgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyIGluIHVybCBwYXRoAENvbnRlbnQtTGVuZ3RoIGNhbid0IGJlIHByZXNlbnQgd2l0aCBUcmFuc2Zlci1FbmNvZGluZwBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBzaXplAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX3ZhbHVlAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgdmFsdWUATWlzc2luZyBleHBlY3RlZCBMRiBhZnRlciBoZWFkZXIgdmFsdWUASW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHF1b3RlIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAFBhdXNlZCBieSBvbl9oZWFkZXJzX2NvbXBsZXRlAEludmFsaWQgRU9GIHN0YXRlAG9uX3Jlc2V0IHBhdXNlAG9uX2NodW5rX2hlYWRlciBwYXVzZQBvbl9tZXNzYWdlX2JlZ2luIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZSBwYXVzZQBvbl9zdGF0dXNfY29tcGxldGUgcGF1c2UAb25fdmVyc2lvbl9jb21wbGV0ZSBwYXVzZQBvbl91cmxfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlIHBhdXNlAG9uX21lc3NhZ2VfY29tcGxldGUgcGF1c2UAb25fbWV0aG9kX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fbmFtZSBwYXVzZQBVbmV4cGVjdGVkIHNwYWNlIGFmdGVyIHN0YXJ0IGxpbmUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fbmFtZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIG5hbWUAUGF1c2Ugb24gQ09OTkVDVC9VcGdyYWRlAFBhdXNlIG9uIFBSSS9VcGdyYWRlAEV4cGVjdGVkIEhUVFAvMiBDb25uZWN0aW9uIFByZWZhY2UAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9tZXRob2QARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgbWV0aG9kAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX2ZpZWxkAFBhdXNlZABJbnZhbGlkIHdvcmQgZW5jb3VudGVyZWQASW52YWxpZCBtZXRob2QgZW5jb3VudGVyZWQAVW5leHBlY3RlZCBjaGFyIGluIHVybCBzY2hlbWEAUmVxdWVzdCBoYXMgaW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgAFNXSVRDSF9QUk9YWQBVU0VfUFJPWFkATUtBQ1RJVklUWQBVTlBST0NFU1NBQkxFX0VOVElUWQBDT1BZAE1PVkVEX1BFUk1BTkVOVExZAFRPT19FQVJMWQBOT1RJRlkARkFJTEVEX0RFUEVOREVOQ1kAQkFEX0dBVEVXQVkAUExBWQBQVVQAQ0hFQ0tPVVQAR0FURVdBWV9USU1FT1VUAFJFUVVFU1RfVElNRU9VVABORVRXT1JLX0NPTk5FQ1RfVElNRU9VVABDT05ORUNUSU9OX1RJTUVPVVQATE9HSU5fVElNRU9VVABORVRXT1JLX1JFQURfVElNRU9VVABQT1NUAE1JU0RJUkVDVEVEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfTE9BRF9CQUxBTkNFRF9SRVFVRVNUAEJBRF9SRVFVRVNUAEhUVFBfUkVRVUVTVF9TRU5UX1RPX0hUVFBTX1BPUlQAUkVQT1JUAElNX0FfVEVBUE9UAFJFU0VUX0NPTlRFTlQATk9fQ09OVEVOVABQQVJUSUFMX0NPTlRFTlQASFBFX0lOVkFMSURfQ09OU1RBTlQASFBFX0NCX1JFU0VUAEdFVABIUEVfU1RSSUNUAENPTkZMSUNUAFRFTVBPUkFSWV9SRURJUkVDVABQRVJNQU5FTlRfUkVESVJFQ1QAQ09OTkVDVABNVUxUSV9TVEFUVVMASFBFX0lOVkFMSURfU1RBVFVTAFRPT19NQU5ZX1JFUVVFU1RTAEVBUkxZX0hJTlRTAFVOQVZBSUxBQkxFX0ZPUl9MRUdBTF9SRUFTT05TAE9QVElPTlMAU1dJVENISU5HX1BST1RPQ09MUwBWQVJJQU5UX0FMU09fTkVHT1RJQVRFUwBNVUxUSVBMRV9DSE9JQ0VTAElOVEVSTkFMX1NFUlZFUl9FUlJPUgBXRUJfU0VSVkVSX1VOS05PV05fRVJST1IAUkFJTEdVTl9FUlJPUgBJREVOVElUWV9QUk9WSURFUl9BVVRIRU5USUNBVElPTl9FUlJPUgBTU0xfQ0VSVElGSUNBVEVfRVJST1IASU5WQUxJRF9YX0ZPUldBUkRFRF9GT1IAU0VUX1BBUkFNRVRFUgBHRVRfUEFSQU1FVEVSAEhQRV9VU0VSAFNFRV9PVEhFUgBIUEVfQ0JfQ0hVTktfSEVBREVSAE1LQ0FMRU5EQVIAU0VUVVAAV0VCX1NFUlZFUl9JU19ET1dOAFRFQVJET1dOAEhQRV9DTE9TRURfQ09OTkVDVElPTgBIRVVSSVNUSUNfRVhQSVJBVElPTgBESVNDT05ORUNURURfT1BFUkFUSU9OAE5PTl9BVVRIT1JJVEFUSVZFX0lORk9STUFUSU9OAEhQRV9JTlZBTElEX1ZFUlNJT04ASFBFX0NCX01FU1NBR0VfQkVHSU4AU0lURV9JU19GUk9aRU4ASFBFX0lOVkFMSURfSEVBREVSX1RPS0VOAElOVkFMSURfVE9LRU4ARk9SQklEREVOAEVOSEFOQ0VfWU9VUl9DQUxNAEhQRV9JTlZBTElEX1VSTABCTE9DS0VEX0JZX1BBUkVOVEFMX0NPTlRST0wATUtDT0wAQUNMAEhQRV9JTlRFUk5BTABSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFX1VOT0ZGSUNJQUwASFBFX09LAFVOTElOSwBVTkxPQ0sAUFJJAFJFVFJZX1dJVEgASFBFX0lOVkFMSURfQ09OVEVOVF9MRU5HVEgASFBFX1VORVhQRUNURURfQ09OVEVOVF9MRU5HVEgARkxVU0gAUFJPUFBBVENIAE0tU0VBUkNIAFVSSV9UT09fTE9ORwBQUk9DRVNTSU5HAE1JU0NFTExBTkVPVVNfUEVSU0lTVEVOVF9XQVJOSU5HAE1JU0NFTExBTkVPVVNfV0FSTklORwBIUEVfSU5WQUxJRF9UUkFOU0ZFUl9FTkNPRElORwBFeHBlY3RlZCBDUkxGAEhQRV9JTlZBTElEX0NIVU5LX1NJWkUATU9WRQBDT05USU5VRQBIUEVfQ0JfU1RBVFVTX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJTX0NPTVBMRVRFAEhQRV9DQl9WRVJTSU9OX0NPTVBMRVRFAEhQRV9DQl9VUkxfQ09NUExFVEUASFBFX0NCX0NIVU5LX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX05BTUVfQ09NUExFVEUASFBFX0NCX01FU1NBR0VfQ09NUExFVEUASFBFX0NCX01FVEhPRF9DT01QTEVURQBIUEVfQ0JfSEVBREVSX0ZJRUxEX0NPTVBMRVRFAERFTEVURQBIUEVfSU5WQUxJRF9FT0ZfU1RBVEUASU5WQUxJRF9TU0xfQ0VSVElGSUNBVEUAUEFVU0UATk9fUkVTUE9OU0UAVU5TVVBQT1JURURfTUVESUFfVFlQRQBHT05FAE5PVF9BQ0NFUFRBQkxFAFNFUlZJQ0VfVU5BVkFJTEFCTEUAUkFOR0VfTk9UX1NBVElTRklBQkxFAE9SSUdJTl9JU19VTlJFQUNIQUJMRQBSRVNQT05TRV9JU19TVEFMRQBQVVJHRQBNRVJHRQBSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFAFJFUVVFU1RfSEVBREVSX1RPT19MQVJHRQBQQVlMT0FEX1RPT19MQVJHRQBJTlNVRkZJQ0lFTlRfU1RPUkFHRQBIUEVfUEFVU0VEX1VQR1JBREUASFBFX1BBVVNFRF9IMl9VUEdSQURFAFNPVVJDRQBBTk5PVU5DRQBUUkFDRQBIUEVfVU5FWFBFQ1RFRF9TUEFDRQBERVNDUklCRQBVTlNVQlNDUklCRQBSRUNPUkQASFBFX0lOVkFMSURfTUVUSE9EAE5PVF9GT1VORABQUk9QRklORABVTkJJTkQAUkVCSU5EAFVOQVVUSE9SSVpFRABNRVRIT0RfTk9UX0FMTE9XRUQASFRUUF9WRVJTSU9OX05PVF9TVVBQT1JURUQAQUxSRUFEWV9SRVBPUlRFRABBQ0NFUFRFRABOT1RfSU1QTEVNRU5URUQATE9PUF9ERVRFQ1RFRABIUEVfQ1JfRVhQRUNURUQASFBFX0xGX0VYUEVDVEVEAENSRUFURUQASU1fVVNFRABIUEVfUEFVU0VEAFRJTUVPVVRfT0NDVVJFRABQQVlNRU5UX1JFUVVJUkVEAFBSRUNPTkRJVElPTl9SRVFVSVJFRABQUk9YWV9BVVRIRU5USUNBVElPTl9SRVFVSVJFRABORVRXT1JLX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAExFTkdUSF9SRVFVSVJFRABTU0xfQ0VSVElGSUNBVEVfUkVRVUlSRUQAVVBHUkFERV9SRVFVSVJFRABQQUdFX0VYUElSRUQAUFJFQ09ORElUSU9OX0ZBSUxFRABFWFBFQ1RBVElPTl9GQUlMRUQAUkVWQUxJREFUSU9OX0ZBSUxFRABTU0xfSEFORFNIQUtFX0ZBSUxFRABMT0NLRUQAVFJBTlNGT1JNQVRJT05fQVBQTElFRABOT1RfTU9ESUZJRUQATk9UX0VYVEVOREVEAEJBTkRXSURUSF9MSU1JVF9FWENFRURFRABTSVRFX0lTX09WRVJMT0FERUQASEVBRABFeHBlY3RlZCBIVFRQLwAAXhMAACYTAAAwEAAA8BcAAJ0TAAAVEgAAORcAAPASAAAKEAAAdRIAAK0SAACCEwAATxQAAH8QAACgFQAAIxQAAIkSAACLFAAATRUAANQRAADPFAAAEBgAAMkWAADcFgAAwREAAOAXAAC7FAAAdBQAAHwVAADlFAAACBcAAB8QAABlFQAAoxQAACgVAAACFQAAmRUAACwQAACLGQAATw8AANQOAABqEAAAzhAAAAIXAACJDgAAbhMAABwTAABmFAAAVhcAAMETAADNEwAAbBMAAGgXAABmFwAAXxcAACITAADODwAAaQ4AANgOAABjFgAAyxMAAKoOAAAoFwAAJhcAAMUTAABdFgAA6BEAAGcTAABlEwAA8hYAAHMTAAAdFwAA+RYAAPMRAADPDgAAzhUAAAwSAACzEQAApREAAGEQAAAyFwAAuxMAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIDAgICAgIAAAICAAICAAICAgICAgICAgIABAAAAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAACAAICAgICAAACAgACAgACAgICAgICAgICAAMABAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbG9zZWVlcC1hbGl2ZQAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEBAQEBAQEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBY2h1bmtlZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEAAAEBAAEBAAEBAQEBAQEBAQEAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AAAAAAAAAAAAAAAAAAAByYW5zZmVyLWVuY29kaW5ncGdyYWRlDQoNCg0KU00NCg0KVFRQL0NFL1RTUC8AAAAAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQIAAQMAAAAAAAAAAAAAAAAAAAAAAAAEAQEFAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAAAAQAAAgAAAAAAAAAAAAAAAAAAAAAAAAMEAAAEBAQEBAQEBAQEBAUEBAQEBAQEBAQEBAQABAAGBwQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAABAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAIAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOT1VOQ0VFQ0tPVVRORUNURVRFQ1JJQkVMVVNIRVRFQURTRUFSQ0hSR0VDVElWSVRZTEVOREFSVkVPVElGWVBUSU9OU0NIU0VBWVNUQVRDSEdFT1JESVJFQ1RPUlRSQ0hQQVJBTUVURVJVUkNFQlNDUklCRUFSRE9XTkFDRUlORE5LQ0tVQlNDUklCRUhUVFAvQURUUC8="},6249:A=>{A.exports="AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAwABBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJsbGh0dHBfc3RhdHVzX25hbWUAIRpsbGh0dHBfc2V0X2xlbmllbnRfaGVhZGVycwAiIWxsaHR0cF9zZXRfbGVuaWVudF9jaHVua2VkX2xlbmd0aAAjHWxsaHR0cF9zZXRfbGVuaWVudF9rZWVwX2FsaXZlACQkbGxodHRwX3NldF9sZW5pZW50X3RyYW5zZmVyX2VuY29kaW5nACUYbGxodHRwX21lc3NhZ2VfbmVlZHNfZW9mAD8JFwEAQQELEQECAwQFCwYHNTk3MS8tJyspCrLgAkUCAAsIABCIgICAAAsZACAAEMKAgIAAGiAAIAI2AjggACABOgAoCxwAIAAgAC8BMiAALQAuIAAQwYCAgAAQgICAgAALKgEBf0HAABDGgICAACIBEMKAgIAAGiABQYCIgIAANgI4IAEgADoAKCABCwoAIAAQyICAgAALBwAgAC0AKAsHACAALQAqCwcAIAAtACsLBwAgAC0AKQsHACAALwEyCwcAIAAtAC4LRQEEfyAAKAIYIQEgAC0ALSECIAAtACghAyAAKAI4IQQgABDCgICAABogACAENgI4IAAgAzoAKCAAIAI6AC0gACABNgIYCxEAIAAgASABIAJqEMOAgIAACxAAIABBAEHcABDMgICAABoLZwEBf0EAIQECQCAAKAIMDQACQAJAAkACQCAALQAvDgMBAAMCCyAAKAI4IgFFDQAgASgCLCIBRQ0AIAAgARGAgICAAAAiAQ0DC0EADwsQyoCAgAAACyAAQcOWgIAANgIQQQ4hAQsgAQseAAJAIAAoAgwNACAAQdGbgIAANgIQIABBFTYCDAsLFgACQCAAKAIMQRVHDQAgAEEANgIMCwsWAAJAIAAoAgxBFkcNACAAQQA2AgwLCwcAIAAoAgwLBwAgACgCEAsJACAAIAE2AhALBwAgACgCFAsiAAJAIABBJEkNABDKgICAAAALIABBAnRBoLOAgABqKAIACyIAAkAgAEEuSQ0AEMqAgIAAAAsgAEECdEGwtICAAGooAgAL7gsBAX9B66iAgAAhAQJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABBnH9qDvQDY2IAAWFhYWFhYQIDBAVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhBgcICQoLDA0OD2FhYWFhEGFhYWFhYWFhYWFhEWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYRITFBUWFxgZGhthYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2YTc4OTphYWFhYWFhYTthYWE8YWFhYT0+P2FhYWFhYWFhQGFhQWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYUJDREVGR0hJSktMTU5PUFFSU2FhYWFhYWFhVFVWV1hZWlthXF1hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFeYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhX2BhC0Hhp4CAAA8LQaShgIAADwtBy6yAgAAPC0H+sYCAAA8LQcCkgIAADwtBq6SAgAAPC0GNqICAAA8LQeKmgIAADwtBgLCAgAAPC0G5r4CAAA8LQdekgIAADwtB75+AgAAPC0Hhn4CAAA8LQfqfgIAADwtB8qCAgAAPC0Gor4CAAA8LQa6ygIAADwtBiLCAgAAPC0Hsp4CAAA8LQYKigIAADwtBjp2AgAAPC0HQroCAAA8LQcqjgIAADwtBxbKAgAAPC0HfnICAAA8LQdKcgIAADwtBxKCAgAAPC0HXoICAAA8LQaKfgIAADwtB7a6AgAAPC0GrsICAAA8LQdSlgIAADwtBzK6AgAAPC0H6roCAAA8LQfyrgIAADwtB0rCAgAAPC0HxnYCAAA8LQbuggIAADwtB96uAgAAPC0GQsYCAAA8LQdexgIAADwtBoq2AgAAPC0HUp4CAAA8LQeCrgIAADwtBn6yAgAAPC0HrsYCAAA8LQdWfgIAADwtByrGAgAAPC0HepYCAAA8LQdSegIAADwtB9JyAgAAPC0GnsoCAAA8LQbGdgIAADwtBoJ2AgAAPC0G5sYCAAA8LQbywgIAADwtBkqGAgAAPC0GzpoCAAA8LQemsgIAADwtBrJ6AgAAPC0HUq4CAAA8LQfemgIAADwtBgKaAgAAPC0GwoYCAAA8LQf6egIAADwtBjaOAgAAPC0GJrYCAAA8LQfeigIAADwtBoLGAgAAPC0Gun4CAAA8LQcalgIAADwtB6J6AgAAPC0GTooCAAA8LQcKvgIAADwtBw52AgAAPC0GLrICAAA8LQeGdgIAADwtBja+AgAAPC0HqoYCAAA8LQbStgIAADwtB0q+AgAAPC0HfsoCAAA8LQdKygIAADwtB8LCAgAAPC0GpooCAAA8LQfmjgIAADwtBmZ6AgAAPC0G1rICAAA8LQZuwgIAADwtBkrKAgAAPC0G2q4CAAA8LQcKigIAADwtB+LKAgAAPC0GepYCAAA8LQdCigIAADwtBup6AgAAPC0GBnoCAAA8LEMqAgIAAAAtB1qGAgAAhAQsgAQsWACAAIAAtAC1B/gFxIAFBAEdyOgAtCxkAIAAgAC0ALUH9AXEgAUEAR0EBdHI6AC0LGQAgACAALQAtQfsBcSABQQBHQQJ0cjoALQsZACAAIAAtAC1B9wFxIAFBAEdBA3RyOgAtCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAgAiBEUNACAAIAQRgICAgAAAIQMLIAMLSQECf0EAIQMCQCAAKAI4IgRFDQAgBCgCBCIERQ0AIAAgASACIAFrIAQRgYCAgAAAIgNBf0cNACAAQcaRgIAANgIQQRghAwsgAwsuAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIwIgRFDQAgACAEEYCAgIAAACEDCyADC0kBAn9BACEDAkAgACgCOCIERQ0AIAQoAggiBEUNACAAIAEgAiABayAEEYGAgIAAACIDQX9HDQAgAEH2ioCAADYCEEEYIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCNCIERQ0AIAAgBBGAgICAAAAhAwsgAwtJAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIMIgRFDQAgACABIAIgAWsgBBGBgICAAAAiA0F/Rw0AIABB7ZqAgAA2AhBBGCEDCyADCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAjgiBEUNACAAIAQRgICAgAAAIQMLIAMLSQECf0EAIQMCQCAAKAI4IgRFDQAgBCgCECIERQ0AIAAgASACIAFrIAQRgYCAgAAAIgNBf0cNACAAQZWQgIAANgIQQRghAwsgAwsuAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAI8IgRFDQAgACAEEYCAgIAAACEDCyADC0kBAn9BACEDAkAgACgCOCIERQ0AIAQoAhQiBEUNACAAIAEgAiABayAEEYGAgIAAACIDQX9HDQAgAEGqm4CAADYCEEEYIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCQCIERQ0AIAAgBBGAgICAAAAhAwsgAwtJAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIYIgRFDQAgACABIAIgAWsgBBGBgICAAAAiA0F/Rw0AIABB7ZOAgAA2AhBBGCEDCyADCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAkQiBEUNACAAIAQRgICAgAAAIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCJCIERQ0AIAAgBBGAgICAAAAhAwsgAwsuAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIsIgRFDQAgACAEEYCAgIAAACEDCyADC0kBAn9BACEDAkAgACgCOCIERQ0AIAQoAigiBEUNACAAIAEgAiABayAEEYGAgIAAACIDQX9HDQAgAEH2iICAADYCEEEYIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCUCIERQ0AIAAgBBGAgICAAAAhAwsgAwtJAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIcIgRFDQAgACABIAIgAWsgBBGBgICAAAAiA0F/Rw0AIABBwpmAgAA2AhBBGCEDCyADCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAkgiBEUNACAAIAQRgICAgAAAIQMLIAMLSQECf0EAIQMCQCAAKAI4IgRFDQAgBCgCICIERQ0AIAAgASACIAFrIAQRgYCAgAAAIgNBf0cNACAAQZSUgIAANgIQQRghAwsgAwsuAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAJMIgRFDQAgACAEEYCAgIAAACEDCyADCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAlQiBEUNACAAIAQRgICAgAAAIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCWCIERQ0AIAAgBBGAgICAAAAhAwsgAwtFAQF/AkACQCAALwEwQRRxQRRHDQBBASEDIAAtAChBAUYNASAALwEyQeUARiEDDAELIAAtAClBBUYhAwsgACADOgAuQQAL/gEBA39BASEDAkAgAC8BMCIEQQhxDQAgACkDIEIAUiEDCwJAAkAgAC0ALkUNAEEBIQUgAC0AKUEFRg0BQQEhBSAEQcAAcUUgA3FBAUcNAQtBACEFIARBwABxDQBBAiEFIARB//8DcSIDQQhxDQACQCADQYAEcUUNAAJAIAAtAChBAUcNACAALQAtQQpxDQBBBQ8LQQQPCwJAIANBIHENAAJAIAAtAChBAUYNACAALwEyQf//A3EiAEGcf2pB5ABJDQAgAEHMAUYNACAAQbACRg0AQQQhBSAEQShxRQ0CIANBiARxQYAERg0CC0EADwtBAEEDIAApAyBQGyEFCyAFC2IBAn9BACEBAkAgAC0AKEEBRg0AIAAvATJB//8DcSICQZx/akHkAEkNACACQcwBRg0AIAJBsAJGDQAgAC8BMCIAQcAAcQ0AQQEhASAAQYgEcUGABEYNACAAQShxRSEBCyABC6cBAQN/AkACQAJAIAAtACpFDQAgAC0AK0UNAEEAIQMgAC8BMCIEQQJxRQ0BDAILQQAhAyAALwEwIgRBAXFFDQELQQEhAyAALQAoQQFGDQAgAC8BMkH//wNxIgVBnH9qQeQASQ0AIAVBzAFGDQAgBUGwAkYNACAEQcAAcQ0AQQAhAyAEQYgEcUGABEYNACAEQShxQQBHIQMLIABBADsBMCAAQQA6AC8gAwuZAQECfwJAAkACQCAALQAqRQ0AIAAtACtFDQBBACEBIAAvATAiAkECcUUNAQwCC0EAIQEgAC8BMCICQQFxRQ0BC0EBIQEgAC0AKEEBRg0AIAAvATJB//8DcSIAQZx/akHkAEkNACAAQcwBRg0AIABBsAJGDQAgAkHAAHENAEEAIQEgAkGIBHFBgARGDQAgAkEocUEARyEBCyABC0kBAXsgAEEQav0MAAAAAAAAAAAAAAAAAAAAACIB/QsDACAAIAH9CwMAIABBMGogAf0LAwAgAEEgaiAB/QsDACAAQd0BNgIcQQALewEBfwJAIAAoAgwiAw0AAkAgACgCBEUNACAAIAE2AgQLAkAgACABIAIQxICAgAAiAw0AIAAoAgwPCyAAIAM2AhxBACEDIAAoAgQiAUUNACAAIAEgAiAAKAIIEYGAgIAAACIBRQ0AIAAgAjYCFCAAIAE2AgwgASEDCyADC+TzAQMOfwN+BH8jgICAgABBEGsiAySAgICAACABIQQgASEFIAEhBiABIQcgASEIIAEhCSABIQogASELIAEhDCABIQ0gASEOIAEhDwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAKAIcIhBBf2oO3QHaAQHZAQIDBAUGBwgJCgsMDQ7YAQ8Q1wEREtYBExQVFhcYGRob4AHfARwdHtUBHyAhIiMkJdQBJicoKSorLNMB0gEtLtEB0AEvMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUbbAUdISUrPAc4BS80BTMwBTU5PUFFSU1RVVldYWVpbXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gAGBAYIBgwGEAYUBhgGHAYgBiQGKAYsBjAGNAY4BjwGQAZEB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QAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIBAOxwEAAQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB4fICEjJSg/QEFERUZHSElKS0xNT1BRUlPeA1dZW1xdYGJlZmdoaWprbG1vcHFyc3R1dnd4eXp7fH1+gAGCAYUBhgGHAYkBiwGMAY0BjgGPAZABkQGUAZUBlgGXAZgBmQGaAZsBnAGdAZ4BnwGgAaEBogGjAaQBpQGmAacBqAGpAaoBqwGsAa0BrgGvAbABsQGyAbMBtAG1AbYBtwG4AbkBugG7AbwBvQG+Ab8BwAHBAcIBwwHEAcUBxgHHAcgByQHKAcsBzAHNAc4BzwHQAdEB0gHTAdQB1QHWAdcB2AHZAdoB2wHcAd0B3gHgAeEB4gHjAeQB5QHmAecB6AHpAeoB6wHsAe0B7gHvAfAB8QHyAfMBmQKkArAC/gL+AgsgASIEIAJHDfMBQd0BIRAM/wMLIAEiECACRw3dAUHDASEQDP4DCyABIgEgAkcNkAFB9wAhEAz9AwsgASIBIAJHDYYBQe8AIRAM/AMLIAEiASACRw1/QeoAIRAM+wMLIAEiASACRw17QegAIRAM+gMLIAEiASACRw14QeYAIRAM+QMLIAEiASACRw0aQRghEAz4AwsgASIBIAJHDRRBEiEQDPcDCyABIgEgAkcNWUHFACEQDPYDCyABIgEgAkcNSkE/IRAM9QMLIAEiASACRw1IQTwhEAz0AwsgASIBIAJHDUFBMSEQDPMDCyAALQAuQQFGDesDDIcCCyAAIAEiASACEMCAgIAAQQFHDeYBIABCADcDIAznAQsgACABIgEgAhC0gICAACIQDecBIAEhAQz1AgsCQCABIgEgAkcNAEEGIRAM8AMLIAAgAUEBaiIBIAIQu4CAgAAiEA3oASABIQEMMQsgAEIANwMgQRIhEAzVAwsgASIQIAJHDStBHSEQDO0DCwJAIAEiASACRg0AIAFBAWohAUEQIRAM1AMLQQchEAzsAwsgAEIAIAApAyAiESACIAEiEGutIhJ9IhMgEyARVhs3AyAgESASViIURQ3lAUEIIRAM6wMLAkAgASIBIAJGDQAgAEGJgICAADYCCCAAIAE2AgQgASEBQRQhEAzSAwtBCSEQDOoDCyABIQEgACkDIFAN5AEgASEBDPICCwJAIAEiASACRw0AQQshEAzpAwsgACABQQFqIgEgAhC2gICAACIQDeUBIAEhAQzyAgsgACABIgEgAhC4gICAACIQDeUBIAEhAQzyAgsgACABIgEgAhC4gICAACIQDeYBIAEhAQwNCyAAIAEiASACELqAgIAAIhAN5wEgASEBDPACCwJAIAEiASACRw0AQQ8hEAzlAwsgAS0AACIQQTtGDQggEEENRw3oASABQQFqIQEM7wILIAAgASIBIAIQuoCAgAAiEA3oASABIQEM8gILA0ACQCABLQAAQfC1gIAAai0AACIQQQFGDQAgEEECRw3rASAAKAIEIRAgAEEANgIEIAAgECABQQFqIgEQuYCAgAAiEA3qASABIQEM9AILIAFBAWoiASACRw0AC0ESIRAM4gMLIAAgASIBIAIQuoCAgAAiEA3pASABIQEMCgsgASIBIAJHDQZBGyEQDOADCwJAIAEiASACRw0AQRYhEAzgAwsgAEGKgICAADYCCCAAIAE2AgQgACABIAIQuICAgAAiEA3qASABIQFBICEQDMYDCwJAIAEiASACRg0AA0ACQCABLQAAQfC3gIAAai0AACIQQQJGDQACQCAQQX9qDgTlAewBAOsB7AELIAFBAWohAUEIIRAMyAMLIAFBAWoiASACRw0AC0EVIRAM3wMLQRUhEAzeAwsDQAJAIAEtAABB8LmAgABqLQAAIhBBAkYNACAQQX9qDgTeAewB4AHrAewBCyABQQFqIgEgAkcNAAtBGCEQDN0DCwJAIAEiASACRg0AIABBi4CAgAA2AgggACABNgIEIAEhAUEHIRAMxAMLQRkhEAzcAwsgAUEBaiEBDAILAkAgASIUIAJHDQBBGiEQDNsDCyAUIQECQCAULQAAQXNqDhTdAu4C7gLuAu4C7gLuAu4C7gLuAu4C7gLuAu4C7gLuAu4C7gLuAgDuAgtBACEQIABBADYCHCAAQa+LgIAANgIQIABBAjYCDCAAIBRBAWo2AhQM2gMLAkAgAS0AACIQQTtGDQAgEEENRw3oASABQQFqIQEM5QILIAFBAWohAQtBIiEQDL8DCwJAIAEiECACRw0AQRwhEAzYAwtCACERIBAhASAQLQAAQVBqDjfnAeYBAQIDBAUGBwgAAAAAAAAACQoLDA0OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPEBESExQAC0EeIRAMvQMLQgIhEQzlAQtCAyERDOQBC0IEIREM4wELQgUhEQziAQtCBiERDOEBC0IHIREM4AELQgghEQzfAQtCCSERDN4BC0IKIREM3QELQgshEQzcAQtCDCERDNsBC0INIREM2gELQg4hEQzZAQtCDyERDNgBC0IKIREM1wELQgshEQzWAQtCDCERDNUBC0INIREM1AELQg4hEQzTAQtCDyERDNIBC0IAIRECQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIBAtAABBUGoON+UB5AEAAQIDBAUGB+YB5gHmAeYB5gHmAeYBCAkKCwwN5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAQ4PEBESE+YBC0ICIREM5AELQgMhEQzjAQtCBCERDOIBC0IFIREM4QELQgYhEQzgAQtCByERDN8BC0IIIREM3gELQgkhEQzdAQtCCiERDNwBC0ILIREM2wELQgwhEQzaAQtCDSERDNkBC0IOIREM2AELQg8hEQzXAQtCCiERDNYBC0ILIREM1QELQgwhEQzUAQtCDSERDNMBC0IOIREM0gELQg8hEQzRAQsgAEIAIAApAyAiESACIAEiEGutIhJ9IhMgEyARVhs3AyAgESASViIURQ3SAUEfIRAMwAMLAkAgASIBIAJGDQAgAEGJgICAADYCCCAAIAE2AgQgASEBQSQhEAynAwtBICEQDL8DCyAAIAEiECACEL6AgIAAQX9qDgW2AQDFAgHRAdIBC0ERIRAMpAMLIABBAToALyAQIQEMuwMLIAEiASACRw3SAUEkIRAMuwMLIAEiDSACRw0eQcYAIRAMugMLIAAgASIBIAIQsoCAgAAiEA3UASABIQEMtQELIAEiECACRw0mQdAAIRAMuAMLAkAgASIBIAJHDQBBKCEQDLgDCyAAQQA2AgQgAEGMgICAADYCCCAAIAEgARCxgICAACIQDdMBIAEhAQzYAQsCQCABIhAgAkcNAEEpIRAMtwMLIBAtAAAiAUEgRg0UIAFBCUcN0wEgEEEBaiEBDBULAkAgASIBIAJGDQAgAUEBaiEBDBcLQSohEAy1AwsCQCABIhAgAkcNAEErIRAMtQMLAkAgEC0AACIBQQlGDQAgAUEgRw3VAQsgAC0ALEEIRg3TASAQIQEMkQMLAkAgASIBIAJHDQBBLCEQDLQDCyABLQAAQQpHDdUBIAFBAWohAQzJAgsgASIOIAJHDdUBQS8hEAyyAwsDQAJAIAEtAAAiEEEgRg0AAkAgEEF2ag4EANwB3AEA2gELIAEhAQzgAQsgAUEBaiIBIAJHDQALQTEhEAyxAwtBMiEQIAEiFCACRg2wAyACIBRrIAAoAgAiAWohFSAUIAFrQQNqIRYCQANAIBQtAAAiF0EgciAXIBdBv39qQf8BcUEaSRtB/wFxIAFB8LuAgABqLQAARw0BAkAgAUEDRw0AQQYhAQyWAwsgAUEBaiEBIBRBAWoiFCACRw0ACyAAIBU2AgAMsQMLIABBADYCACAUIQEM2QELQTMhECABIhQgAkYNrwMgAiAUayAAKAIAIgFqIRUgFCABa0EIaiEWAkADQCAULQAAIhdBIHIgFyAXQb9/akH/AXFBGkkbQf8BcSABQfS7gIAAai0AAEcNAQJAIAFBCEcNAEEFIQEMlQMLIAFBAWohASAUQQFqIhQgAkcNAAsgACAVNgIADLADCyAAQQA2AgAgFCEBDNgBC0E0IRAgASIUIAJGDa4DIAIgFGsgACgCACIBaiEVIBQgAWtBBWohFgJAA0AgFC0AACIXQSByIBcgF0G/f2pB/wFxQRpJG0H/AXEgAUHQwoCAAGotAABHDQECQCABQQVHDQBBByEBDJQDCyABQQFqIQEgFEEBaiIUIAJHDQALIAAgFTYCAAyvAwsgAEEANgIAIBQhAQzXAQsCQCABIgEgAkYNAANAAkAgAS0AAEGAvoCAAGotAAAiEEEBRg0AIBBBAkYNCiABIQEM3QELIAFBAWoiASACRw0AC0EwIRAMrgMLQTAhEAytAwsCQCABIgEgAkYNAANAAkAgAS0AACIQQSBGDQAgEEF2ag4E2QHaAdoB2QHaAQsgAUEBaiIBIAJHDQALQTghEAytAwtBOCEQDKwDCwNAAkAgAS0AACIQQSBGDQAgEEEJRw0DCyABQQFqIgEgAkcNAAtBPCEQDKsDCwNAAkAgAS0AACIQQSBGDQACQAJAIBBBdmoOBNoBAQHaAQALIBBBLEYN2wELIAEhAQwECyABQQFqIgEgAkcNAAtBPyEQDKoDCyABIQEM2wELQcAAIRAgASIUIAJGDagDIAIgFGsgACgCACIBaiEWIBQgAWtBBmohFwJAA0AgFC0AAEEgciABQYDAgIAAai0AAEcNASABQQZGDY4DIAFBAWohASAUQQFqIhQgAkcNAAsgACAWNgIADKkDCyAAQQA2AgAgFCEBC0E2IRAMjgMLAkAgASIPIAJHDQBBwQAhEAynAwsgAEGMgICAADYCCCAAIA82AgQgDyEBIAAtACxBf2oOBM0B1QHXAdkBhwMLIAFBAWohAQzMAQsCQCABIgEgAkYNAANAAkAgAS0AACIQQSByIBAgEEG/f2pB/wFxQRpJG0H/AXEiEEEJRg0AIBBBIEYNAAJAAkACQAJAIBBBnX9qDhMAAwMDAwMDAwEDAwMDAwMDAwMCAwsgAUEBaiEBQTEhEAyRAwsgAUEBaiEBQTIhEAyQAwsgAUEBaiEBQTMhEAyPAwsgASEBDNABCyABQQFqIgEgAkcNAAtBNSEQDKUDC0E1IRAMpAMLAkAgASIBIAJGDQADQAJAIAEtAABBgLyAgABqLQAAQQFGDQAgASEBDNMBCyABQQFqIgEgAkcNAAtBPSEQDKQDC0E9IRAMowMLIAAgASIBIAIQsICAgAAiEA3WASABIQEMAQsgEEEBaiEBC0E8IRAMhwMLAkAgASIBIAJHDQBBwgAhEAygAwsCQANAAkAgAS0AAEF3ag4YAAL+Av4ChAP+Av4C/gL+Av4C/gL+Av4C/gL+Av4C/gL+Av4C/gL+Av4C/gIA/gILIAFBAWoiASACRw0AC0HCACEQDKADCyABQQFqIQEgAC0ALUEBcUUNvQEgASEBC0EsIRAMhQMLIAEiASACRw3TAUHEACEQDJ0DCwNAAkAgAS0AAEGQwICAAGotAABBAUYNACABIQEMtwILIAFBAWoiASACRw0AC0HFACEQDJwDCyANLQAAIhBBIEYNswEgEEE6Rw2BAyAAKAIEIQEgAEEANgIEIAAgASANEK+AgIAAIgEN0AEgDUEBaiEBDLMCC0HHACEQIAEiDSACRg2aAyACIA1rIAAoAgAiAWohFiANIAFrQQVqIRcDQCANLQAAIhRBIHIgFCAUQb9/akH/AXFBGkkbQf8BcSABQZDCgIAAai0AAEcNgAMgAUEFRg30AiABQQFqIQEgDUEBaiINIAJHDQALIAAgFjYCAAyaAwtByAAhECABIg0gAkYNmQMgAiANayAAKAIAIgFqIRYgDSABa0EJaiEXA0AgDS0AACIUQSByIBQgFEG/f2pB/wFxQRpJG0H/AXEgAUGWwoCAAGotAABHDf8CAkAgAUEJRw0AQQIhAQz1AgsgAUEBaiEBIA1BAWoiDSACRw0ACyAAIBY2AgAMmQMLAkAgASINIAJHDQBByQAhEAyZAwsCQAJAIA0tAAAiAUEgciABIAFBv39qQf8BcUEaSRtB/wFxQZJ/ag4HAIADgAOAA4ADgAMBgAMLIA1BAWohAUE+IRAMgAMLIA1BAWohAUE/IRAM/wILQcoAIRAgASINIAJGDZcDIAIgDWsgACgCACIBaiEWIA0gAWtBAWohFwNAIA0tAAAiFEEgciAUIBRBv39qQf8BcUEaSRtB/wFxIAFBoMKAgABqLQAARw39AiABQQFGDfACIAFBAWohASANQQFqIg0gAkcNAAsgACAWNgIADJcDC0HLACEQIAEiDSACRg2WAyACIA1rIAAoAgAiAWohFiANIAFrQQ5qIRcDQCANLQAAIhRBIHIgFCAUQb9/akH/AXFBGkkbQf8BcSABQaLCgIAAai0AAEcN/AIgAUEORg3wAiABQQFqIQEgDUEBaiINIAJHDQALIAAgFjYCAAyWAwtBzAAhECABIg0gAkYNlQMgAiANayAAKAIAIgFqIRYgDSABa0EPaiEXA0AgDS0AACIUQSByIBQgFEG/f2pB/wFxQRpJG0H/AXEgAUHAwoCAAGotAABHDfsCAkAgAUEPRw0AQQMhAQzxAgsgAUEBaiEBIA1BAWoiDSACRw0ACyAAIBY2AgAMlQMLQc0AIRAgASINIAJGDZQDIAIgDWsgACgCACIBaiEWIA0gAWtBBWohFwNAIA0tAAAiFEEgciAUIBRBv39qQf8BcUEaSRtB/wFxIAFB0MKAgABqLQAARw36AgJAIAFBBUcNAEEEIQEM8AILIAFBAWohASANQQFqIg0gAkcNAAsgACAWNgIADJQDCwJAIAEiDSACRw0AQc4AIRAMlAMLAkACQAJAAkAgDS0AACIBQSByIAEgAUG/f2pB/wFxQRpJG0H/AXFBnX9qDhMA/QL9Av0C/QL9Av0C/QL9Av0C/QL9Av0CAf0C/QL9AgID/QILIA1BAWohAUHBACEQDP0CCyANQQFqIQFBwgAhEAz8AgsgDUEBaiEBQcMAIRAM+wILIA1BAWohAUHEACEQDPoCCwJAIAEiASACRg0AIABBjYCAgAA2AgggACABNgIEIAEhAUHFACEQDPoCC0HPACEQDJIDCyAQIQECQAJAIBAtAABBdmoOBAGoAqgCAKgCCyAQQQFqIQELQSchEAz4AgsCQCABIgEgAkcNAEHRACEQDJEDCwJAIAEtAABBIEYNACABIQEMjQELIAFBAWohASAALQAtQQFxRQ3HASABIQEMjAELIAEiFyACRw3IAUHSACEQDI8DC0HTACEQIAEiFCACRg2OAyACIBRrIAAoAgAiAWohFiAUIAFrQQFqIRcDQCAULQAAIAFB1sKAgABqLQAARw3MASABQQFGDccBIAFBAWohASAUQQFqIhQgAkcNAAsgACAWNgIADI4DCwJAIAEiASACRw0AQdUAIRAMjgMLIAEtAABBCkcNzAEgAUEBaiEBDMcBCwJAIAEiASACRw0AQdYAIRAMjQMLAkACQCABLQAAQXZqDgQAzQHNAQHNAQsgAUEBaiEBDMcBCyABQQFqIQFBygAhEAzzAgsgACABIgEgAhCugICAACIQDcsBIAEhAUHNACEQDPICCyAALQApQSJGDYUDDKYCCwJAIAEiASACRw0AQdsAIRAMigMLQQAhFEEBIRdBASEWQQAhEAJAAkACQAJAAkACQAJAAkACQCABLQAAQVBqDgrUAdMBAAECAwQFBgjVAQtBAiEQDAYLQQMhEAwFC0EEIRAMBAtBBSEQDAMLQQYhEAwCC0EHIRAMAQtBCCEQC0EAIRdBACEWQQAhFAzMAQtBCSEQQQEhFEEAIRdBACEWDMsBCwJAIAEiASACRw0AQd0AIRAMiQMLIAEtAABBLkcNzAEgAUEBaiEBDKYCCyABIgEgAkcNzAFB3wAhEAyHAwsCQCABIgEgAkYNACAAQY6AgIAANgIIIAAgATYCBCABIQFB0AAhEAzuAgtB4AAhEAyGAwtB4QAhECABIgEgAkYNhQMgAiABayAAKAIAIhRqIRYgASAUa0EDaiEXA0AgAS0AACAUQeLCgIAAai0AAEcNzQEgFEEDRg3MASAUQQFqIRQgAUEBaiIBIAJHDQALIAAgFjYCAAyFAwtB4gAhECABIgEgAkYNhAMgAiABayAAKAIAIhRqIRYgASAUa0ECaiEXA0AgAS0AACAUQebCgIAAai0AAEcNzAEgFEECRg3OASAUQQFqIRQgAUEBaiIBIAJHDQALIAAgFjYCAAyEAwtB4wAhECABIgEgAkYNgwMgAiABayAAKAIAIhRqIRYgASAUa0EDaiEXA0AgAS0AACAUQenCgIAAai0AAEcNywEgFEEDRg3OASAUQQFqIRQgAUEBaiIBIAJHDQALIAAgFjYCAAyDAwsCQCABIgEgAkcNAEHlACEQDIMDCyAAIAFBAWoiASACEKiAgIAAIhANzQEgASEBQdYAIRAM6QILAkAgASIBIAJGDQADQAJAIAEtAAAiEEEgRg0AAkACQAJAIBBBuH9qDgsAAc8BzwHPAc8BzwHPAc8BzwECzwELIAFBAWohAUHSACEQDO0CCyABQQFqIQFB0wAhEAzsAgsgAUEBaiEBQdQAIRAM6wILIAFBAWoiASACRw0AC0HkACEQDIIDC0HkACEQDIEDCwNAAkAgAS0AAEHwwoCAAGotAAAiEEEBRg0AIBBBfmoOA88B0AHRAdIBCyABQQFqIgEgAkcNAAtB5gAhEAyAAwsCQCABIgEgAkYNACABQQFqIQEMAwtB5wAhEAz/AgsDQAJAIAEtAABB8MSAgABqLQAAIhBBAUYNAAJAIBBBfmoOBNIB0wHUAQDVAQsgASEBQdcAIRAM5wILIAFBAWoiASACRw0AC0HoACEQDP4CCwJAIAEiASACRw0AQekAIRAM/gILAkAgAS0AACIQQXZqDhq6AdUB1QG8AdUB1QHVAdUB1QHVAdUB1QHVAdUB1QHVAdUB1QHVAdUB1QHVAcoB1QHVAQDTAQsgAUEBaiEBC0EGIRAM4wILA0ACQCABLQAAQfDGgIAAai0AAEEBRg0AIAEhAQyeAgsgAUEBaiIBIAJHDQALQeoAIRAM+wILAkAgASIBIAJGDQAgAUEBaiEBDAMLQesAIRAM+gILAkAgASIBIAJHDQBB7AAhEAz6AgsgAUEBaiEBDAELAkAgASIBIAJHDQBB7QAhEAz5AgsgAUEBaiEBC0EEIRAM3gILAkAgASIUIAJHDQBB7gAhEAz3AgsgFCEBAkACQAJAIBQtAABB8MiAgABqLQAAQX9qDgfUAdUB1gEAnAIBAtcBCyAUQQFqIQEMCgsgFEEBaiEBDM0BC0EAIRAgAEEANgIcIABBm5KAgAA2AhAgAEEHNgIMIAAgFEEBajYCFAz2AgsCQANAAkAgAS0AAEHwyICAAGotAAAiEEEERg0AAkACQCAQQX9qDgfSAdMB1AHZAQAEAdkBCyABIQFB2gAhEAzgAgsgAUEBaiEBQdwAIRAM3wILIAFBAWoiASACRw0AC0HvACEQDPYCCyABQQFqIQEMywELAkAgASIUIAJHDQBB8AAhEAz1AgsgFC0AAEEvRw3UASAUQQFqIQEMBgsCQCABIhQgAkcNAEHxACEQDPQCCwJAIBQtAAAiAUEvRw0AIBRBAWohAUHdACEQDNsCCyABQXZqIgRBFksN0wFBASAEdEGJgIACcUUN0wEMygILAkAgASIBIAJGDQAgAUEBaiEBQd4AIRAM2gILQfIAIRAM8gILAkAgASIUIAJHDQBB9AAhEAzyAgsgFCEBAkAgFC0AAEHwzICAAGotAABBf2oOA8kClAIA1AELQeEAIRAM2AILAkAgASIUIAJGDQADQAJAIBQtAABB8MqAgABqLQAAIgFBA0YNAAJAIAFBf2oOAssCANUBCyAUIQFB3wAhEAzaAgsgFEEBaiIUIAJHDQALQfMAIRAM8QILQfMAIRAM8AILAkAgASIBIAJGDQAgAEGPgICAADYCCCAAIAE2AgQgASEBQeAAIRAM1wILQfUAIRAM7wILAkAgASIBIAJHDQBB9gAhEAzvAgsgAEGPgICAADYCCCAAIAE2AgQgASEBC0EDIRAM1AILA0AgAS0AAEEgRw3DAiABQQFqIgEgAkcNAAtB9wAhEAzsAgsCQCABIgEgAkcNAEH4ACEQDOwCCyABLQAAQSBHDc4BIAFBAWohAQzvAQsgACABIgEgAhCsgICAACIQDc4BIAEhAQyOAgsCQCABIgQgAkcNAEH6ACEQDOoCCyAELQAAQcwARw3RASAEQQFqIQFBEyEQDM8BCwJAIAEiBCACRw0AQfsAIRAM6QILIAIgBGsgACgCACIBaiEUIAQgAWtBBWohEANAIAQtAAAgAUHwzoCAAGotAABHDdABIAFBBUYNzgEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBB+wAhEAzoAgsCQCABIgQgAkcNAEH8ACEQDOgCCwJAAkAgBC0AAEG9f2oODADRAdEB0QHRAdEB0QHRAdEB0QHRAQHRAQsgBEEBaiEBQeYAIRAMzwILIARBAWohAUHnACEQDM4CCwJAIAEiBCACRw0AQf0AIRAM5wILIAIgBGsgACgCACIBaiEUIAQgAWtBAmohEAJAA0AgBC0AACABQe3PgIAAai0AAEcNzwEgAUECRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQf0AIRAM5wILIABBADYCACAQQQFqIQFBECEQDMwBCwJAIAEiBCACRw0AQf4AIRAM5gILIAIgBGsgACgCACIBaiEUIAQgAWtBBWohEAJAA0AgBC0AACABQfbOgIAAai0AAEcNzgEgAUEFRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQf4AIRAM5gILIABBADYCACAQQQFqIQFBFiEQDMsBCwJAIAEiBCACRw0AQf8AIRAM5QILIAIgBGsgACgCACIBaiEUIAQgAWtBA2ohEAJAA0AgBC0AACABQfzOgIAAai0AAEcNzQEgAUEDRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQf8AIRAM5QILIABBADYCACAQQQFqIQFBBSEQDMoBCwJAIAEiBCACRw0AQYABIRAM5AILIAQtAABB2QBHDcsBIARBAWohAUEIIRAMyQELAkAgASIEIAJHDQBBgQEhEAzjAgsCQAJAIAQtAABBsn9qDgMAzAEBzAELIARBAWohAUHrACEQDMoCCyAEQQFqIQFB7AAhEAzJAgsCQCABIgQgAkcNAEGCASEQDOICCwJAAkAgBC0AAEG4f2oOCADLAcsBywHLAcsBywEBywELIARBAWohAUHqACEQDMkCCyAEQQFqIQFB7QAhEAzIAgsCQCABIgQgAkcNAEGDASEQDOECCyACIARrIAAoAgAiAWohECAEIAFrQQJqIRQCQANAIAQtAAAgAUGAz4CAAGotAABHDckBIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgEDYCAEGDASEQDOECC0EAIRAgAEEANgIAIBRBAWohAQzGAQsCQCABIgQgAkcNAEGEASEQDOACCyACIARrIAAoAgAiAWohFCAEIAFrQQRqIRACQANAIAQtAAAgAUGDz4CAAGotAABHDcgBIAFBBEYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGEASEQDOACCyAAQQA2AgAgEEEBaiEBQSMhEAzFAQsCQCABIgQgAkcNAEGFASEQDN8CCwJAAkAgBC0AAEG0f2oOCADIAcgByAHIAcgByAEByAELIARBAWohAUHvACEQDMYCCyAEQQFqIQFB8AAhEAzFAgsCQCABIgQgAkcNAEGGASEQDN4CCyAELQAAQcUARw3FASAEQQFqIQEMgwILAkAgASIEIAJHDQBBhwEhEAzdAgsgAiAEayAAKAIAIgFqIRQgBCABa0EDaiEQAkADQCAELQAAIAFBiM+AgABqLQAARw3FASABQQNGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBhwEhEAzdAgsgAEEANgIAIBBBAWohAUEtIRAMwgELAkAgASIEIAJHDQBBiAEhEAzcAgsgAiAEayAAKAIAIgFqIRQgBCABa0EIaiEQAkADQCAELQAAIAFB0M+AgABqLQAARw3EASABQQhGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBiAEhEAzcAgsgAEEANgIAIBBBAWohAUEpIRAMwQELAkAgASIBIAJHDQBBiQEhEAzbAgtBASEQIAEtAABB3wBHDcABIAFBAWohAQyBAgsCQCABIgQgAkcNAEGKASEQDNoCCyACIARrIAAoAgAiAWohFCAEIAFrQQFqIRADQCAELQAAIAFBjM+AgABqLQAARw3BASABQQFGDa8CIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQYoBIRAM2QILAkAgASIEIAJHDQBBiwEhEAzZAgsgAiAEayAAKAIAIgFqIRQgBCABa0ECaiEQAkADQCAELQAAIAFBjs+AgABqLQAARw3BASABQQJGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBiwEhEAzZAgsgAEEANgIAIBBBAWohAUECIRAMvgELAkAgASIEIAJHDQBBjAEhEAzYAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQAkADQCAELQAAIAFB8M+AgABqLQAARw3AASABQQFGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBjAEhEAzYAgsgAEEANgIAIBBBAWohAUEfIRAMvQELAkAgASIEIAJHDQBBjQEhEAzXAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQAkADQCAELQAAIAFB8s+AgABqLQAARw2/ASABQQFGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBjQEhEAzXAgsgAEEANgIAIBBBAWohAUEJIRAMvAELAkAgASIEIAJHDQBBjgEhEAzWAgsCQAJAIAQtAABBt39qDgcAvwG/Ab8BvwG/AQG/AQsgBEEBaiEBQfgAIRAMvQILIARBAWohAUH5ACEQDLwCCwJAIAEiBCACRw0AQY8BIRAM1QILIAIgBGsgACgCACIBaiEUIAQgAWtBBWohEAJAA0AgBC0AACABQZHPgIAAai0AAEcNvQEgAUEFRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQY8BIRAM1QILIABBADYCACAQQQFqIQFBGCEQDLoBCwJAIAEiBCACRw0AQZABIRAM1AILIAIgBGsgACgCACIBaiEUIAQgAWtBAmohEAJAA0AgBC0AACABQZfPgIAAai0AAEcNvAEgAUECRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZABIRAM1AILIABBADYCACAQQQFqIQFBFyEQDLkBCwJAIAEiBCACRw0AQZEBIRAM0wILIAIgBGsgACgCACIBaiEUIAQgAWtBBmohEAJAA0AgBC0AACABQZrPgIAAai0AAEcNuwEgAUEGRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZEBIRAM0wILIABBADYCACAQQQFqIQFBFSEQDLgBCwJAIAEiBCACRw0AQZIBIRAM0gILIAIgBGsgACgCACIBaiEUIAQgAWtBBWohEAJAA0AgBC0AACABQaHPgIAAai0AAEcNugEgAUEFRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZIBIRAM0gILIABBADYCACAQQQFqIQFBHiEQDLcBCwJAIAEiBCACRw0AQZMBIRAM0QILIAQtAABBzABHDbgBIARBAWohAUEKIRAMtgELAkAgBCACRw0AQZQBIRAM0AILAkACQCAELQAAQb9/ag4PALkBuQG5AbkBuQG5AbkBuQG5AbkBuQG5AbkBAbkBCyAEQQFqIQFB/gAhEAy3AgsgBEEBaiEBQf8AIRAMtgILAkAgBCACRw0AQZUBIRAMzwILAkACQCAELQAAQb9/ag4DALgBAbgBCyAEQQFqIQFB/QAhEAy2AgsgBEEBaiEEQYABIRAMtQILAkAgBCACRw0AQZYBIRAMzgILIAIgBGsgACgCACIBaiEUIAQgAWtBAWohEAJAA0AgBC0AACABQafPgIAAai0AAEcNtgEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZYBIRAMzgILIABBADYCACAQQQFqIQFBCyEQDLMBCwJAIAQgAkcNAEGXASEQDM0CCwJAAkACQAJAIAQtAABBU2oOIwC4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBAbgBuAG4AbgBuAECuAG4AbgBA7gBCyAEQQFqIQFB+wAhEAy2AgsgBEEBaiEBQfwAIRAMtQILIARBAWohBEGBASEQDLQCCyAEQQFqIQRBggEhEAyzAgsCQCAEIAJHDQBBmAEhEAzMAgsgAiAEayAAKAIAIgFqIRQgBCABa0EEaiEQAkADQCAELQAAIAFBqc+AgABqLQAARw20ASABQQRGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBmAEhEAzMAgsgAEEANgIAIBBBAWohAUEZIRAMsQELAkAgBCACRw0AQZkBIRAMywILIAIgBGsgACgCACIBaiEUIAQgAWtBBWohEAJAA0AgBC0AACABQa7PgIAAai0AAEcNswEgAUEFRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZkBIRAMywILIABBADYCACAQQQFqIQFBBiEQDLABCwJAIAQgAkcNAEGaASEQDMoCCyACIARrIAAoAgAiAWohFCAEIAFrQQFqIRACQANAIAQtAAAgAUG0z4CAAGotAABHDbIBIAFBAUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGaASEQDMoCCyAAQQA2AgAgEEEBaiEBQRwhEAyvAQsCQCAEIAJHDQBBmwEhEAzJAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQAkADQCAELQAAIAFBts+AgABqLQAARw2xASABQQFGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBmwEhEAzJAgsgAEEANgIAIBBBAWohAUEnIRAMrgELAkAgBCACRw0AQZwBIRAMyAILAkACQCAELQAAQax/ag4CAAGxAQsgBEEBaiEEQYYBIRAMrwILIARBAWohBEGHASEQDK4CCwJAIAQgAkcNAEGdASEQDMcCCyACIARrIAAoAgAiAWohFCAEIAFrQQFqIRACQANAIAQtAAAgAUG4z4CAAGotAABHDa8BIAFBAUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGdASEQDMcCCyAAQQA2AgAgEEEBaiEBQSYhEAysAQsCQCAEIAJHDQBBngEhEAzGAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQAkADQCAELQAAIAFBus+AgABqLQAARw2uASABQQFGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBngEhEAzGAgsgAEEANgIAIBBBAWohAUEDIRAMqwELAkAgBCACRw0AQZ8BIRAMxQILIAIgBGsgACgCACIBaiEUIAQgAWtBAmohEAJAA0AgBC0AACABQe3PgIAAai0AAEcNrQEgAUECRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZ8BIRAMxQILIABBADYCACAQQQFqIQFBDCEQDKoBCwJAIAQgAkcNAEGgASEQDMQCCyACIARrIAAoAgAiAWohFCAEIAFrQQNqIRACQANAIAQtAAAgAUG8z4CAAGotAABHDawBIAFBA0YNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGgASEQDMQCCyAAQQA2AgAgEEEBaiEBQQ0hEAypAQsCQCAEIAJHDQBBoQEhEAzDAgsCQAJAIAQtAABBun9qDgsArAGsAawBrAGsAawBrAGsAawBAawBCyAEQQFqIQRBiwEhEAyqAgsgBEEBaiEEQYwBIRAMqQILAkAgBCACRw0AQaIBIRAMwgILIAQtAABB0ABHDakBIARBAWohBAzpAQsCQCAEIAJHDQBBowEhEAzBAgsCQAJAIAQtAABBt39qDgcBqgGqAaoBqgGqAQCqAQsgBEEBaiEEQY4BIRAMqAILIARBAWohAUEiIRAMpgELAkAgBCACRw0AQaQBIRAMwAILIAIgBGsgACgCACIBaiEUIAQgAWtBAWohEAJAA0AgBC0AACABQcDPgIAAai0AAEcNqAEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQaQBIRAMwAILIABBADYCACAQQQFqIQFBHSEQDKUBCwJAIAQgAkcNAEGlASEQDL8CCwJAAkAgBC0AAEGuf2oOAwCoAQGoAQsgBEEBaiEEQZABIRAMpgILIARBAWohAUEEIRAMpAELAkAgBCACRw0AQaYBIRAMvgILAkACQAJAAkACQCAELQAAQb9/ag4VAKoBqgGqAaoBqgGqAaoBqgGqAaoBAaoBqgECqgGqAQOqAaoBBKoBCyAEQQFqIQRBiAEhEAyoAgsgBEEBaiEEQYkBIRAMpwILIARBAWohBEGKASEQDKYCCyAEQQFqIQRBjwEhEAylAgsgBEEBaiEEQZEBIRAMpAILAkAgBCACRw0AQacBIRAMvQILIAIgBGsgACgCACIBaiEUIAQgAWtBAmohEAJAA0AgBC0AACABQe3PgIAAai0AAEcNpQEgAUECRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQacBIRAMvQILIABBADYCACAQQQFqIQFBESEQDKIBCwJAIAQgAkcNAEGoASEQDLwCCyACIARrIAAoAgAiAWohFCAEIAFrQQJqIRACQANAIAQtAAAgAUHCz4CAAGotAABHDaQBIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGoASEQDLwCCyAAQQA2AgAgEEEBaiEBQSwhEAyhAQsCQCAEIAJHDQBBqQEhEAy7AgsgAiAEayAAKAIAIgFqIRQgBCABa0EEaiEQAkADQCAELQAAIAFBxc+AgABqLQAARw2jASABQQRGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBqQEhEAy7AgsgAEEANgIAIBBBAWohAUErIRAMoAELAkAgBCACRw0AQaoBIRAMugILIAIgBGsgACgCACIBaiEUIAQgAWtBAmohEAJAA0AgBC0AACABQcrPgIAAai0AAEcNogEgAUECRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQaoBIRAMugILIABBADYCACAQQQFqIQFBFCEQDJ8BCwJAIAQgAkcNAEGrASEQDLkCCwJAAkACQAJAIAQtAABBvn9qDg8AAQKkAaQBpAGkAaQBpAGkAaQBpAGkAaQBA6QBCyAEQQFqIQRBkwEhEAyiAgsgBEEBaiEEQZQBIRAMoQILIARBAWohBEGVASEQDKACCyAEQQFqIQRBlgEhEAyfAgsCQCAEIAJHDQBBrAEhEAy4AgsgBC0AAEHFAEcNnwEgBEEBaiEEDOABCwJAIAQgAkcNAEGtASEQDLcCCyACIARrIAAoAgAiAWohFCAEIAFrQQJqIRACQANAIAQtAAAgAUHNz4CAAGotAABHDZ8BIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGtASEQDLcCCyAAQQA2AgAgEEEBaiEBQQ4hEAycAQsCQCAEIAJHDQBBrgEhEAy2AgsgBC0AAEHQAEcNnQEgBEEBaiEBQSUhEAybAQsCQCAEIAJHDQBBrwEhEAy1AgsgAiAEayAAKAIAIgFqIRQgBCABa0EIaiEQAkADQCAELQAAIAFB0M+AgABqLQAARw2dASABQQhGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBrwEhEAy1AgsgAEEANgIAIBBBAWohAUEqIRAMmgELAkAgBCACRw0AQbABIRAMtAILAkACQCAELQAAQat/ag4LAJ0BnQGdAZ0BnQGdAZ0BnQGdAQGdAQsgBEEBaiEEQZoBIRAMmwILIARBAWohBEGbASEQDJoCCwJAIAQgAkcNAEGxASEQDLMCCwJAAkAgBC0AAEG/f2oOFACcAZwBnAGcAZwBnAGcAZwBnAGcAZwBnAGcAZwBnAGcAZwBnAEBnAELIARBAWohBEGZASEQDJoCCyAEQQFqIQRBnAEhEAyZAgsCQCAEIAJHDQBBsgEhEAyyAgsgAiAEayAAKAIAIgFqIRQgBCABa0EDaiEQAkADQCAELQAAIAFB2c+AgABqLQAARw2aASABQQNGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBsgEhEAyyAgsgAEEANgIAIBBBAWohAUEhIRAMlwELAkAgBCACRw0AQbMBIRAMsQILIAIgBGsgACgCACIBaiEUIAQgAWtBBmohEAJAA0AgBC0AACABQd3PgIAAai0AAEcNmQEgAUEGRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQbMBIRAMsQILIABBADYCACAQQQFqIQFBGiEQDJYBCwJAIAQgAkcNAEG0ASEQDLACCwJAAkACQCAELQAAQbt/ag4RAJoBmgGaAZoBmgGaAZoBmgGaAQGaAZoBmgGaAZoBApoBCyAEQQFqIQRBnQEhEAyYAgsgBEEBaiEEQZ4BIRAMlwILIARBAWohBEGfASEQDJYCCwJAIAQgAkcNAEG1ASEQDK8CCyACIARrIAAoAgAiAWohFCAEIAFrQQVqIRACQANAIAQtAAAgAUHkz4CAAGotAABHDZcBIAFBBUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEG1ASEQDK8CCyAAQQA2AgAgEEEBaiEBQSghEAyUAQsCQCAEIAJHDQBBtgEhEAyuAgsgAiAEayAAKAIAIgFqIRQgBCABa0ECaiEQAkADQCAELQAAIAFB6s+AgABqLQAARw2WASABQQJGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBtgEhEAyuAgsgAEEANgIAIBBBAWohAUEHIRAMkwELAkAgBCACRw0AQbcBIRAMrQILAkACQCAELQAAQbt/ag4OAJYBlgGWAZYBlgGWAZYBlgGWAZYBlgGWAQGWAQsgBEEBaiEEQaEBIRAMlAILIARBAWohBEGiASEQDJMCCwJAIAQgAkcNAEG4ASEQDKwCCyACIARrIAAoAgAiAWohFCAEIAFrQQJqIRACQANAIAQtAAAgAUHtz4CAAGotAABHDZQBIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEG4ASEQDKwCCyAAQQA2AgAgEEEBaiEBQRIhEAyRAQsCQCAEIAJHDQBBuQEhEAyrAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQAkADQCAELQAAIAFB8M+AgABqLQAARw2TASABQQFGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBuQEhEAyrAgsgAEEANgIAIBBBAWohAUEgIRAMkAELAkAgBCACRw0AQboBIRAMqgILIAIgBGsgACgCACIBaiEUIAQgAWtBAWohEAJAA0AgBC0AACABQfLPgIAAai0AAEcNkgEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQboBIRAMqgILIABBADYCACAQQQFqIQFBDyEQDI8BCwJAIAQgAkcNAEG7ASEQDKkCCwJAAkAgBC0AAEG3f2oOBwCSAZIBkgGSAZIBAZIBCyAEQQFqIQRBpQEhEAyQAgsgBEEBaiEEQaYBIRAMjwILAkAgBCACRw0AQbwBIRAMqAILIAIgBGsgACgCACIBaiEUIAQgAWtBB2ohEAJAA0AgBC0AACABQfTPgIAAai0AAEcNkAEgAUEHRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQbwBIRAMqAILIABBADYCACAQQQFqIQFBGyEQDI0BCwJAIAQgAkcNAEG9ASEQDKcCCwJAAkACQCAELQAAQb5/ag4SAJEBkQGRAZEBkQGRAZEBkQGRAQGRAZEBkQGRAZEBkQECkQELIARBAWohBEGkASEQDI8CCyAEQQFqIQRBpwEhEAyOAgsgBEEBaiEEQagBIRAMjQILAkAgBCACRw0AQb4BIRAMpgILIAQtAABBzgBHDY0BIARBAWohBAzPAQsCQCAEIAJHDQBBvwEhEAylAgsCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAELQAAQb9/ag4VAAECA5wBBAUGnAGcAZwBBwgJCgucAQwNDg+cAQsgBEEBaiEBQegAIRAMmgILIARBAWohAUHpACEQDJkCCyAEQQFqIQFB7gAhEAyYAgsgBEEBaiEBQfIAIRAMlwILIARBAWohAUHzACEQDJYCCyAEQQFqIQFB9gAhEAyVAgsgBEEBaiEBQfcAIRAMlAILIARBAWohAUH6ACEQDJMCCyAEQQFqIQRBgwEhEAySAgsgBEEBaiEEQYQBIRAMkQILIARBAWohBEGFASEQDJACCyAEQQFqIQRBkgEhEAyPAgsgBEEBaiEEQZgBIRAMjgILIARBAWohBEGgASEQDI0CCyAEQQFqIQRBowEhEAyMAgsgBEEBaiEEQaoBIRAMiwILAkAgBCACRg0AIABBkICAgAA2AgggACAENgIEQasBIRAMiwILQcABIRAMowILIAAgBSACEKqAgIAAIgENiwEgBSEBDFwLAkAgBiACRg0AIAZBAWohBQyNAQtBwgEhEAyhAgsDQAJAIBAtAABBdmoOBIwBAACPAQALIBBBAWoiECACRw0AC0HDASEQDKACCwJAIAcgAkYNACAAQZGAgIAANgIIIAAgBzYCBCAHIQFBASEQDIcCC0HEASEQDJ8CCwJAIAcgAkcNAEHFASEQDJ8CCwJAAkAgBy0AAEF2ag4EAc4BzgEAzgELIAdBAWohBgyNAQsgB0EBaiEFDIkBCwJAIAcgAkcNAEHGASEQDJ4CCwJAAkAgBy0AAEF2ag4XAY8BjwEBjwGPAY8BjwGPAY8BjwGPAY8BjwGPAY8BjwGPAY8BjwGPAY8BAI8BCyAHQQFqIQcLQbABIRAMhAILAkAgCCACRw0AQcgBIRAMnQILIAgtAABBIEcNjQEgAEEAOwEyIAhBAWohAUGzASEQDIMCCyABIRcCQANAIBciByACRg0BIActAABBUGpB/wFxIhBBCk8NzAECQCAALwEyIhRBmTNLDQAgACAUQQpsIhQ7ATIgEEH//wNzIBRB/v8DcUkNACAHQQFqIRcgACAUIBBqIhA7ATIgEEH//wNxQegHSQ0BCwtBACEQIABBADYCHCAAQcGJgIAANgIQIABBDTYCDCAAIAdBAWo2AhQMnAILQccBIRAMmwILIAAgCCACEK6AgIAAIhBFDcoBIBBBFUcNjAEgAEHIATYCHCAAIAg2AhQgAEHJl4CAADYCECAAQRU2AgxBACEQDJoCCwJAIAkgAkcNAEHMASEQDJoCC0EAIRRBASEXQQEhFkEAIRACQAJAAkACQAJAAkACQAJAAkAgCS0AAEFQag4KlgGVAQABAgMEBQYIlwELQQIhEAwGC0EDIRAMBQtBBCEQDAQLQQUhEAwDC0EGIRAMAgtBByEQDAELQQghEAtBACEXQQAhFkEAIRQMjgELQQkhEEEBIRRBACEXQQAhFgyNAQsCQCAKIAJHDQBBzgEhEAyZAgsgCi0AAEEuRw2OASAKQQFqIQkMygELIAsgAkcNjgFB0AEhEAyXAgsCQCALIAJGDQAgAEGOgICAADYCCCAAIAs2AgRBtwEhEAz+AQtB0QEhEAyWAgsCQCAEIAJHDQBB0gEhEAyWAgsgAiAEayAAKAIAIhBqIRQgBCAQa0EEaiELA0AgBC0AACAQQfzPgIAAai0AAEcNjgEgEEEERg3pASAQQQFqIRAgBEEBaiIEIAJHDQALIAAgFDYCAEHSASEQDJUCCyAAIAwgAhCsgICAACIBDY0BIAwhAQy4AQsCQCAEIAJHDQBB1AEhEAyUAgsgAiAEayAAKAIAIhBqIRQgBCAQa0EBaiEMA0AgBC0AACAQQYHQgIAAai0AAEcNjwEgEEEBRg2OASAQQQFqIRAgBEEBaiIEIAJHDQALIAAgFDYCAEHUASEQDJMCCwJAIAQgAkcNAEHWASEQDJMCCyACIARrIAAoAgAiEGohFCAEIBBrQQJqIQsDQCAELQAAIBBBg9CAgABqLQAARw2OASAQQQJGDZABIBBBAWohECAEQQFqIgQgAkcNAAsgACAUNgIAQdYBIRAMkgILAkAgBCACRw0AQdcBIRAMkgILAkACQCAELQAAQbt/ag4QAI8BjwGPAY8BjwGPAY8BjwGPAY8BjwGPAY8BjwEBjwELIARBAWohBEG7ASEQDPkBCyAEQQFqIQRBvAEhEAz4AQsCQCAEIAJHDQBB2AEhEAyRAgsgBC0AAEHIAEcNjAEgBEEBaiEEDMQBCwJAIAQgAkYNACAAQZCAgIAANgIIIAAgBDYCBEG+ASEQDPcBC0HZASEQDI8CCwJAIAQgAkcNAEHaASEQDI8CCyAELQAAQcgARg3DASAAQQE6ACgMuQELIABBAjoALyAAIAQgAhCmgICAACIQDY0BQcIBIRAM9AELIAAtAChBf2oOArcBuQG4AQsDQAJAIAQtAABBdmoOBACOAY4BAI4BCyAEQQFqIgQgAkcNAAtB3QEhEAyLAgsgAEEAOgAvIAAtAC1BBHFFDYQCCyAAQQA6AC8gAEEBOgA0IAEhAQyMAQsgEEEVRg3aASAAQQA2AhwgACABNgIUIABBp46AgAA2AhAgAEESNgIMQQAhEAyIAgsCQCAAIBAgAhC0gICAACIEDQAgECEBDIECCwJAIARBFUcNACAAQQM2AhwgACAQNgIUIABBsJiAgAA2AhAgAEEVNgIMQQAhEAyIAgsgAEEANgIcIAAgEDYCFCAAQaeOgIAANgIQIABBEjYCDEEAIRAMhwILIBBBFUYN1gEgAEEANgIcIAAgATYCFCAAQdqNgIAANgIQIABBFDYCDEEAIRAMhgILIAAoAgQhFyAAQQA2AgQgECARp2oiFiEBIAAgFyAQIBYgFBsiEBC1gICAACIURQ2NASAAQQc2AhwgACAQNgIUIAAgFDYCDEEAIRAMhQILIAAgAC8BMEGAAXI7ATAgASEBC0EqIRAM6gELIBBBFUYN0QEgAEEANgIcIAAgATYCFCAAQYOMgIAANgIQIABBEzYCDEEAIRAMggILIBBBFUYNzwEgAEEANgIcIAAgATYCFCAAQZqPgIAANgIQIABBIjYCDEEAIRAMgQILIAAoAgQhECAAQQA2AgQCQCAAIBAgARC3gICAACIQDQAgAUEBaiEBDI0BCyAAQQw2AhwgACAQNgIMIAAgAUEBajYCFEEAIRAMgAILIBBBFUYNzAEgAEEANgIcIAAgATYCFCAAQZqPgIAANgIQIABBIjYCDEEAIRAM/wELIAAoAgQhECAAQQA2AgQCQCAAIBAgARC3gICAACIQDQAgAUEBaiEBDIwBCyAAQQ02AhwgACAQNgIMIAAgAUEBajYCFEEAIRAM/gELIBBBFUYNyQEgAEEANgIcIAAgATYCFCAAQcaMgIAANgIQIABBIzYCDEEAIRAM/QELIAAoAgQhECAAQQA2AgQCQCAAIBAgARC5gICAACIQDQAgAUEBaiEBDIsBCyAAQQ42AhwgACAQNgIMIAAgAUEBajYCFEEAIRAM/AELIABBADYCHCAAIAE2AhQgAEHAlYCAADYCECAAQQI2AgxBACEQDPsBCyAQQRVGDcUBIABBADYCHCAAIAE2AhQgAEHGjICAADYCECAAQSM2AgxBACEQDPoBCyAAQRA2AhwgACABNgIUIAAgEDYCDEEAIRAM+QELIAAoAgQhBCAAQQA2AgQCQCAAIAQgARC5gICAACIEDQAgAUEBaiEBDPEBCyAAQRE2AhwgACAENgIMIAAgAUEBajYCFEEAIRAM+AELIBBBFUYNwQEgAEEANgIcIAAgATYCFCAAQcaMgIAANgIQIABBIzYCDEEAIRAM9wELIAAoAgQhECAAQQA2AgQCQCAAIBAgARC5gICAACIQDQAgAUEBaiEBDIgBCyAAQRM2AhwgACAQNgIMIAAgAUEBajYCFEEAIRAM9gELIAAoAgQhBCAAQQA2AgQCQCAAIAQgARC5gICAACIEDQAgAUEBaiEBDO0BCyAAQRQ2AhwgACAENgIMIAAgAUEBajYCFEEAIRAM9QELIBBBFUYNvQEgAEEANgIcIAAgATYCFCAAQZqPgIAANgIQIABBIjYCDEEAIRAM9AELIAAoAgQhECAAQQA2AgQCQCAAIBAgARC3gICAACIQDQAgAUEBaiEBDIYBCyAAQRY2AhwgACAQNgIMIAAgAUEBajYCFEEAIRAM8wELIAAoAgQhBCAAQQA2AgQCQCAAIAQgARC3gICAACIEDQAgAUEBaiEBDOkBCyAAQRc2AhwgACAENgIMIAAgAUEBajYCFEEAIRAM8gELIABBADYCHCAAIAE2AhQgAEHNk4CAADYCECAAQQw2AgxBACEQDPEBC0IBIRELIBBBAWohAQJAIAApAyAiEkL//////////w9WDQAgACASQgSGIBGENwMgIAEhAQyEAQsgAEEANgIcIAAgATYCFCAAQa2JgIAANgIQIABBDDYCDEEAIRAM7wELIABBADYCHCAAIBA2AhQgAEHNk4CAADYCECAAQQw2AgxBACEQDO4BCyAAKAIEIRcgAEEANgIEIBAgEadqIhYhASAAIBcgECAWIBQbIhAQtYCAgAAiFEUNcyAAQQU2AhwgACAQNgIUIAAgFDYCDEEAIRAM7QELIABBADYCHCAAIBA2AhQgAEGqnICAADYCECAAQQ82AgxBACEQDOwBCyAAIBAgAhC0gICAACIBDQEgECEBC0EOIRAM0QELAkAgAUEVRw0AIABBAjYCHCAAIBA2AhQgAEGwmICAADYCECAAQRU2AgxBACEQDOoBCyAAQQA2AhwgACAQNgIUIABBp46AgAA2AhAgAEESNgIMQQAhEAzpAQsgAUEBaiEQAkAgAC8BMCIBQYABcUUNAAJAIAAgECACELuAgIAAIgENACAQIQEMcAsgAUEVRw26ASAAQQU2AhwgACAQNgIUIABB+ZeAgAA2AhAgAEEVNgIMQQAhEAzpAQsCQCABQaAEcUGgBEcNACAALQAtQQJxDQAgAEEANgIcIAAgEDYCFCAAQZaTgIAANgIQIABBBDYCDEEAIRAM6QELIAAgECACEL2AgIAAGiAQIQECQAJAAkACQAJAIAAgECACELOAgIAADhYCAQAEBAQEBAQEBAQEBAQEBAQEBAQDBAsgAEEBOgAuCyAAIAAvATBBwAByOwEwIBAhAQtBJiEQDNEBCyAAQSM2AhwgACAQNgIUIABBpZaAgAA2AhAgAEEVNgIMQQAhEAzpAQsgAEEANgIcIAAgEDYCFCAAQdWLgIAANgIQIABBETYCDEEAIRAM6AELIAAtAC1BAXFFDQFBwwEhEAzOAQsCQCANIAJGDQADQAJAIA0tAABBIEYNACANIQEMxAELIA1BAWoiDSACRw0AC0ElIRAM5wELQSUhEAzmAQsgACgCBCEEIABBADYCBCAAIAQgDRCvgICAACIERQ2tASAAQSY2AhwgACAENgIMIAAgDUEBajYCFEEAIRAM5QELIBBBFUYNqwEgAEEANgIcIAAgATYCFCAAQf2NgIAANgIQIABBHTYCDEEAIRAM5AELIABBJzYCHCAAIAE2AhQgACAQNgIMQQAhEAzjAQsgECEBQQEhFAJAAkACQAJAAkACQAJAIAAtACxBfmoOBwYFBQMBAgAFCyAAIAAvATBBCHI7ATAMAwtBAiEUDAELQQQhFAsgAEEBOgAsIAAgAC8BMCAUcjsBMAsgECEBC0ErIRAMygELIABBADYCHCAAIBA2AhQgAEGrkoCAADYCECAAQQs2AgxBACEQDOIBCyAAQQA2AhwgACABNgIUIABB4Y+AgAA2AhAgAEEKNgIMQQAhEAzhAQsgAEEAOgAsIBAhAQy9AQsgECEBQQEhFAJAAkACQAJAAkAgAC0ALEF7ag4EAwECAAULIAAgAC8BMEEIcjsBMAwDC0ECIRQMAQtBBCEUCyAAQQE6ACwgACAALwEwIBRyOwEwCyAQIQELQSkhEAzFAQsgAEEANgIcIAAgATYCFCAAQfCUgIAANgIQIABBAzYCDEEAIRAM3QELAkAgDi0AAEENRw0AIAAoAgQhASAAQQA2AgQCQCAAIAEgDhCxgICAACIBDQAgDkEBaiEBDHULIABBLDYCHCAAIAE2AgwgACAOQQFqNgIUQQAhEAzdAQsgAC0ALUEBcUUNAUHEASEQDMMBCwJAIA4gAkcNAEEtIRAM3AELAkACQANAAkAgDi0AAEF2ag4EAgAAAwALIA5BAWoiDiACRw0AC0EtIRAM3QELIAAoAgQhASAAQQA2AgQCQCAAIAEgDhCxgICAACIBDQAgDiEBDHQLIABBLDYCHCAAIA42AhQgACABNgIMQQAhEAzcAQsgACgCBCEBIABBADYCBAJAIAAgASAOELGAgIAAIgENACAOQQFqIQEMcwsgAEEsNgIcIAAgATYCDCAAIA5BAWo2AhRBACEQDNsBCyAAKAIEIQQgAEEANgIEIAAgBCAOELGAgIAAIgQNoAEgDiEBDM4BCyAQQSxHDQEgAUEBaiEQQQEhAQJAAkACQAJAAkAgAC0ALEF7ag4EAwECBAALIBAhAQwEC0ECIQEMAQtBBCEBCyAAQQE6ACwgACAALwEwIAFyOwEwIBAhAQwBCyAAIAAvATBBCHI7ATAgECEBC0E5IRAMvwELIABBADoALCABIQELQTQhEAy9AQsgACAALwEwQSByOwEwIAEhAQwCCyAAKAIEIQQgAEEANgIEAkAgACAEIAEQsYCAgAAiBA0AIAEhAQzHAQsgAEE3NgIcIAAgATYCFCAAIAQ2AgxBACEQDNQBCyAAQQg6ACwgASEBC0EwIRAMuQELAkAgAC0AKEEBRg0AIAEhAQwECyAALQAtQQhxRQ2TASABIQEMAwsgAC0AMEEgcQ2UAUHFASEQDLcBCwJAIA8gAkYNAAJAA0ACQCAPLQAAQVBqIgFB/wFxQQpJDQAgDyEBQTUhEAy6AQsgACkDICIRQpmz5syZs+bMGVYNASAAIBFCCn4iETcDICARIAGtQv8BgyISQn+FVg0BIAAgESASfDcDICAPQQFqIg8gAkcNAAtBOSEQDNEBCyAAKAIEIQIgAEEANgIEIAAgAiAPQQFqIgQQsYCAgAAiAg2VASAEIQEMwwELQTkhEAzPAQsCQCAALwEwIgFBCHFFDQAgAC0AKEEBRw0AIAAtAC1BCHFFDZABCyAAIAFB9/sDcUGABHI7ATAgDyEBC0E3IRAMtAELIAAgAC8BMEEQcjsBMAyrAQsgEEEVRg2LASAAQQA2AhwgACABNgIUIABB8I6AgAA2AhAgAEEcNgIMQQAhEAzLAQsgAEHDADYCHCAAIAE2AgwgACANQQFqNgIUQQAhEAzKAQsCQCABLQAAQTpHDQAgACgCBCEQIABBADYCBAJAIAAgECABEK+AgIAAIhANACABQQFqIQEMYwsgAEHDADYCHCAAIBA2AgwgACABQQFqNgIUQQAhEAzKAQsgAEEANgIcIAAgATYCFCAAQbGRgIAANgIQIABBCjYCDEEAIRAMyQELIABBADYCHCAAIAE2AhQgAEGgmYCAADYCECAAQR42AgxBACEQDMgBCyAAQQA2AgALIABBgBI7ASogACAXQQFqIgEgAhCogICAACIQDQEgASEBC0HHACEQDKwBCyAQQRVHDYMBIABB0QA2AhwgACABNgIUIABB45eAgAA2AhAgAEEVNgIMQQAhEAzEAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMXgsgAEHSADYCHCAAIAE2AhQgACAQNgIMQQAhEAzDAQsgAEEANgIcIAAgFDYCFCAAQcGogIAANgIQIABBBzYCDCAAQQA2AgBBACEQDMIBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxdCyAAQdMANgIcIAAgATYCFCAAIBA2AgxBACEQDMEBC0EAIRAgAEEANgIcIAAgATYCFCAAQYCRgIAANgIQIABBCTYCDAzAAQsgEEEVRg19IABBADYCHCAAIAE2AhQgAEGUjYCAADYCECAAQSE2AgxBACEQDL8BC0EBIRZBACEXQQAhFEEBIRALIAAgEDoAKyABQQFqIQECQAJAIAAtAC1BEHENAAJAAkACQCAALQAqDgMBAAIECyAWRQ0DDAILIBQNAQwCCyAXRQ0BCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQrYCAgAAiEA0AIAEhAQxcCyAAQdgANgIcIAAgATYCFCAAIBA2AgxBACEQDL4BCyAAKAIEIQQgAEEANgIEAkAgACAEIAEQrYCAgAAiBA0AIAEhAQytAQsgAEHZADYCHCAAIAE2AhQgACAENgIMQQAhEAy9AQsgACgCBCEEIABBADYCBAJAIAAgBCABEK2AgIAAIgQNACABIQEMqwELIABB2gA2AhwgACABNgIUIAAgBDYCDEEAIRAMvAELIAAoAgQhBCAAQQA2AgQCQCAAIAQgARCtgICAACIEDQAgASEBDKkBCyAAQdwANgIcIAAgATYCFCAAIAQ2AgxBACEQDLsBCwJAIAEtAABBUGoiEEH/AXFBCk8NACAAIBA6ACogAUEBaiEBQc8AIRAMogELIAAoAgQhBCAAQQA2AgQCQCAAIAQgARCtgICAACIEDQAgASEBDKcBCyAAQd4ANgIcIAAgATYCFCAAIAQ2AgxBACEQDLoBCyAAQQA2AgAgF0EBaiEBAkAgAC0AKUEjTw0AIAEhAQxZCyAAQQA2AhwgACABNgIUIABB04mAgAA2AhAgAEEINgIMQQAhEAy5AQsgAEEANgIAC0EAIRAgAEEANgIcIAAgATYCFCAAQZCzgIAANgIQIABBCDYCDAy3AQsgAEEANgIAIBdBAWohAQJAIAAtAClBIUcNACABIQEMVgsgAEEANgIcIAAgATYCFCAAQZuKgIAANgIQIABBCDYCDEEAIRAMtgELIABBADYCACAXQQFqIQECQCAALQApIhBBXWpBC08NACABIQEMVQsCQCAQQQZLDQBBASAQdEHKAHFFDQAgASEBDFULQQAhECAAQQA2AhwgACABNgIUIABB94mAgAA2AhAgAEEINgIMDLUBCyAQQRVGDXEgAEEANgIcIAAgATYCFCAAQbmNgIAANgIQIABBGjYCDEEAIRAMtAELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDFQLIABB5QA2AhwgACABNgIUIAAgEDYCDEEAIRAMswELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDE0LIABB0gA2AhwgACABNgIUIAAgEDYCDEEAIRAMsgELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDE0LIABB0wA2AhwgACABNgIUIAAgEDYCDEEAIRAMsQELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDFELIABB5QA2AhwgACABNgIUIAAgEDYCDEEAIRAMsAELIABBADYCHCAAIAE2AhQgAEHGioCAADYCECAAQQc2AgxBACEQDK8BCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxJCyAAQdIANgIcIAAgATYCFCAAIBA2AgxBACEQDK4BCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxJCyAAQdMANgIcIAAgATYCFCAAIBA2AgxBACEQDK0BCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxNCyAAQeUANgIcIAAgATYCFCAAIBA2AgxBACEQDKwBCyAAQQA2AhwgACABNgIUIABB3IiAgAA2AhAgAEEHNgIMQQAhEAyrAQsgEEE/Rw0BIAFBAWohAQtBBSEQDJABC0EAIRAgAEEANgIcIAAgATYCFCAAQf2SgIAANgIQIABBBzYCDAyoAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMQgsgAEHSADYCHCAAIAE2AhQgACAQNgIMQQAhEAynAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMQgsgAEHTADYCHCAAIAE2AhQgACAQNgIMQQAhEAymAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMRgsgAEHlADYCHCAAIAE2AhQgACAQNgIMQQAhEAylAQsgACgCBCEBIABBADYCBAJAIAAgASAUEKeAgIAAIgENACAUIQEMPwsgAEHSADYCHCAAIBQ2AhQgACABNgIMQQAhEAykAQsgACgCBCEBIABBADYCBAJAIAAgASAUEKeAgIAAIgENACAUIQEMPwsgAEHTADYCHCAAIBQ2AhQgACABNgIMQQAhEAyjAQsgACgCBCEBIABBADYCBAJAIAAgASAUEKeAgIAAIgENACAUIQEMQwsgAEHlADYCHCAAIBQ2AhQgACABNgIMQQAhEAyiAQsgAEEANgIcIAAgFDYCFCAAQcOPgIAANgIQIABBBzYCDEEAIRAMoQELIABBADYCHCAAIAE2AhQgAEHDj4CAADYCECAAQQc2AgxBACEQDKABC0EAIRAgAEEANgIcIAAgFDYCFCAAQYycgIAANgIQIABBBzYCDAyfAQsgAEEANgIcIAAgFDYCFCAAQYycgIAANgIQIABBBzYCDEEAIRAMngELIABBADYCHCAAIBQ2AhQgAEH+kYCAADYCECAAQQc2AgxBACEQDJ0BCyAAQQA2AhwgACABNgIUIABBjpuAgAA2AhAgAEEGNgIMQQAhEAycAQsgEEEVRg1XIABBADYCHCAAIAE2AhQgAEHMjoCAADYCECAAQSA2AgxBACEQDJsBCyAAQQA2AgAgEEEBaiEBQSQhEAsgACAQOgApIAAoAgQhECAAQQA2AgQgACAQIAEQq4CAgAAiEA1UIAEhAQw+CyAAQQA2AgALQQAhECAAQQA2AhwgACAENgIUIABB8ZuAgAA2AhAgAEEGNgIMDJcBCyABQRVGDVAgAEEANgIcIAAgBTYCFCAAQfCMgIAANgIQIABBGzYCDEEAIRAMlgELIAAoAgQhBSAAQQA2AgQgACAFIBAQqYCAgAAiBQ0BIBBBAWohBQtBrQEhEAx7CyAAQcEBNgIcIAAgBTYCDCAAIBBBAWo2AhRBACEQDJMBCyAAKAIEIQYgAEEANgIEIAAgBiAQEKmAgIAAIgYNASAQQQFqIQYLQa4BIRAMeAsgAEHCATYCHCAAIAY2AgwgACAQQQFqNgIUQQAhEAyQAQsgAEEANgIcIAAgBzYCFCAAQZeLgIAANgIQIABBDTYCDEEAIRAMjwELIABBADYCHCAAIAg2AhQgAEHjkICAADYCECAAQQk2AgxBACEQDI4BCyAAQQA2AhwgACAINgIUIABBlI2AgAA2AhAgAEEhNgIMQQAhEAyNAQtBASEWQQAhF0EAIRRBASEQCyAAIBA6ACsgCUEBaiEIAkACQCAALQAtQRBxDQACQAJAAkAgAC0AKg4DAQACBAsgFkUNAwwCCyAUDQEMAgsgF0UNAQsgACgCBCEQIABBADYCBCAAIBAgCBCtgICAACIQRQ09IABByQE2AhwgACAINgIUIAAgEDYCDEEAIRAMjAELIAAoAgQhBCAAQQA2AgQgACAEIAgQrYCAgAAiBEUNdiAAQcoBNgIcIAAgCDYCFCAAIAQ2AgxBACEQDIsBCyAAKAIEIQQgAEEANgIEIAAgBCAJEK2AgIAAIgRFDXQgAEHLATYCHCAAIAk2AhQgACAENgIMQQAhEAyKAQsgACgCBCEEIABBADYCBCAAIAQgChCtgICAACIERQ1yIABBzQE2AhwgACAKNgIUIAAgBDYCDEEAIRAMiQELAkAgCy0AAEFQaiIQQf8BcUEKTw0AIAAgEDoAKiALQQFqIQpBtgEhEAxwCyAAKAIEIQQgAEEANgIEIAAgBCALEK2AgIAAIgRFDXAgAEHPATYCHCAAIAs2AhQgACAENgIMQQAhEAyIAQsgAEEANgIcIAAgBDYCFCAAQZCzgIAANgIQIABBCDYCDCAAQQA2AgBBACEQDIcBCyABQRVGDT8gAEEANgIcIAAgDDYCFCAAQcyOgIAANgIQIABBIDYCDEEAIRAMhgELIABBgQQ7ASggACgCBCEQIABCADcDACAAIBAgDEEBaiIMEKuAgIAAIhBFDTggAEHTATYCHCAAIAw2AhQgACAQNgIMQQAhEAyFAQsgAEEANgIAC0EAIRAgAEEANgIcIAAgBDYCFCAAQdibgIAANgIQIABBCDYCDAyDAQsgACgCBCEQIABCADcDACAAIBAgC0EBaiILEKuAgIAAIhANAUHGASEQDGkLIABBAjoAKAxVCyAAQdUBNgIcIAAgCzYCFCAAIBA2AgxBACEQDIABCyAQQRVGDTcgAEEANgIcIAAgBDYCFCAAQaSMgIAANgIQIABBEDYCDEEAIRAMfwsgAC0ANEEBRw00IAAgBCACELyAgIAAIhBFDTQgEEEVRw01IABB3AE2AhwgACAENgIUIABB1ZaAgAA2AhAgAEEVNgIMQQAhEAx+C0EAIRAgAEEANgIcIABBr4uAgAA2AhAgAEECNgIMIAAgFEEBajYCFAx9C0EAIRAMYwtBAiEQDGILQQ0hEAxhC0EPIRAMYAtBJSEQDF8LQRMhEAxeC0EVIRAMXQtBFiEQDFwLQRchEAxbC0EYIRAMWgtBGSEQDFkLQRohEAxYC0EbIRAMVwtBHCEQDFYLQR0hEAxVC0EfIRAMVAtBISEQDFMLQSMhEAxSC0HGACEQDFELQS4hEAxQC0EvIRAMTwtBOyEQDE4LQT0hEAxNC0HIACEQDEwLQckAIRAMSwtBywAhEAxKC0HMACEQDEkLQc4AIRAMSAtB0QAhEAxHC0HVACEQDEYLQdgAIRAMRQtB2QAhEAxEC0HbACEQDEMLQeQAIRAMQgtB5QAhEAxBC0HxACEQDEALQfQAIRAMPwtBjQEhEAw+C0GXASEQDD0LQakBIRAMPAtBrAEhEAw7C0HAASEQDDoLQbkBIRAMOQtBrwEhEAw4C0GxASEQDDcLQbIBIRAMNgtBtAEhEAw1C0G1ASEQDDQLQboBIRAMMwtBvQEhEAwyC0G/ASEQDDELQcEBIRAMMAsgAEEANgIcIAAgBDYCFCAAQemLgIAANgIQIABBHzYCDEEAIRAMSAsgAEHbATYCHCAAIAQ2AhQgAEH6loCAADYCECAAQRU2AgxBACEQDEcLIABB+AA2AhwgACAMNgIUIABBypiAgAA2AhAgAEEVNgIMQQAhEAxGCyAAQdEANgIcIAAgBTYCFCAAQbCXgIAANgIQIABBFTYCDEEAIRAMRQsgAEH5ADYCHCAAIAE2AhQgACAQNgIMQQAhEAxECyAAQfgANgIcIAAgATYCFCAAQcqYgIAANgIQIABBFTYCDEEAIRAMQwsgAEHkADYCHCAAIAE2AhQgAEHjl4CAADYCECAAQRU2AgxBACEQDEILIABB1wA2AhwgACABNgIUIABByZeAgAA2AhAgAEEVNgIMQQAhEAxBCyAAQQA2AhwgACABNgIUIABBuY2AgAA2AhAgAEEaNgIMQQAhEAxACyAAQcIANgIcIAAgATYCFCAAQeOYgIAANgIQIABBFTYCDEEAIRAMPwsgAEEANgIEIAAgDyAPELGAgIAAIgRFDQEgAEE6NgIcIAAgBDYCDCAAIA9BAWo2AhRBACEQDD4LIAAoAgQhBCAAQQA2AgQCQCAAIAQgARCxgICAACIERQ0AIABBOzYCHCAAIAQ2AgwgACABQQFqNgIUQQAhEAw+CyABQQFqIQEMLQsgD0EBaiEBDC0LIABBADYCHCAAIA82AhQgAEHkkoCAADYCECAAQQQ2AgxBACEQDDsLIABBNjYCHCAAIAQ2AhQgACACNgIMQQAhEAw6CyAAQS42AhwgACAONgIUIAAgBDYCDEEAIRAMOQsgAEHQADYCHCAAIAE2AhQgAEGRmICAADYCECAAQRU2AgxBACEQDDgLIA1BAWohAQwsCyAAQRU2AhwgACABNgIUIABBgpmAgAA2AhAgAEEVNgIMQQAhEAw2CyAAQRs2AhwgACABNgIUIABBkZeAgAA2AhAgAEEVNgIMQQAhEAw1CyAAQQ82AhwgACABNgIUIABBkZeAgAA2AhAgAEEVNgIMQQAhEAw0CyAAQQs2AhwgACABNgIUIABBkZeAgAA2AhAgAEEVNgIMQQAhEAwzCyAAQRo2AhwgACABNgIUIABBgpmAgAA2AhAgAEEVNgIMQQAhEAwyCyAAQQs2AhwgACABNgIUIABBgpmAgAA2AhAgAEEVNgIMQQAhEAwxCyAAQQo2AhwgACABNgIUIABB5JaAgAA2AhAgAEEVNgIMQQAhEAwwCyAAQR42AhwgACABNgIUIABB+ZeAgAA2AhAgAEEVNgIMQQAhEAwvCyAAQQA2AhwgACAQNgIUIABB2o2AgAA2AhAgAEEUNgIMQQAhEAwuCyAAQQQ2AhwgACABNgIUIABBsJiAgAA2AhAgAEEVNgIMQQAhEAwtCyAAQQA2AgAgC0EBaiELC0G4ASEQDBILIABBADYCACAQQQFqIQFB9QAhEAwRCyABIQECQCAALQApQQVHDQBB4wAhEAwRC0HiACEQDBALQQAhECAAQQA2AhwgAEHkkYCAADYCECAAQQc2AgwgACAUQQFqNgIUDCgLIABBADYCACAXQQFqIQFBwAAhEAwOC0EBIQELIAAgAToALCAAQQA2AgAgF0EBaiEBC0EoIRAMCwsgASEBC0E4IRAMCQsCQCABIg8gAkYNAANAAkAgDy0AAEGAvoCAAGotAAAiAUEBRg0AIAFBAkcNAyAPQQFqIQEMBAsgD0EBaiIPIAJHDQALQT4hEAwiC0E+IRAMIQsgAEEAOgAsIA8hAQwBC0ELIRAMBgtBOiEQDAULIAFBAWohAUEtIRAMBAsgACABOgAsIABBADYCACAWQQFqIQFBDCEQDAMLIABBADYCACAXQQFqIQFBCiEQDAILIABBADYCAAsgAEEAOgAsIA0hAUEJIRAMAAsLQQAhECAAQQA2AhwgACALNgIUIABBzZCAgAA2AhAgAEEJNgIMDBcLQQAhECAAQQA2AhwgACAKNgIUIABB6YqAgAA2AhAgAEEJNgIMDBYLQQAhECAAQQA2AhwgACAJNgIUIABBt5CAgAA2AhAgAEEJNgIMDBULQQAhECAAQQA2AhwgACAINgIUIABBnJGAgAA2AhAgAEEJNgIMDBQLQQAhECAAQQA2AhwgACABNgIUIABBzZCAgAA2AhAgAEEJNgIMDBMLQQAhECAAQQA2AhwgACABNgIUIABB6YqAgAA2AhAgAEEJNgIMDBILQQAhECAAQQA2AhwgACABNgIUIABBt5CAgAA2AhAgAEEJNgIMDBELQQAhECAAQQA2AhwgACABNgIUIABBnJGAgAA2AhAgAEEJNgIMDBALQQAhECAAQQA2AhwgACABNgIUIABBl5WAgAA2AhAgAEEPNgIMDA8LQQAhECAAQQA2AhwgACABNgIUIABBl5WAgAA2AhAgAEEPNgIMDA4LQQAhECAAQQA2AhwgACABNgIUIABBwJKAgAA2AhAgAEELNgIMDA0LQQAhECAAQQA2AhwgACABNgIUIABBlYmAgAA2AhAgAEELNgIMDAwLQQAhECAAQQA2AhwgACABNgIUIABB4Y+AgAA2AhAgAEEKNgIMDAsLQQAhECAAQQA2AhwgACABNgIUIABB+4+AgAA2AhAgAEEKNgIMDAoLQQAhECAAQQA2AhwgACABNgIUIABB8ZmAgAA2AhAgAEECNgIMDAkLQQAhECAAQQA2AhwgACABNgIUIABBxJSAgAA2AhAgAEECNgIMDAgLQQAhECAAQQA2AhwgACABNgIUIABB8pWAgAA2AhAgAEECNgIMDAcLIABBAjYCHCAAIAE2AhQgAEGcmoCAADYCECAAQRY2AgxBACEQDAYLQQEhEAwFC0HUACEQIAEiBCACRg0EIANBCGogACAEIAJB2MKAgABBChDFgICAACADKAIMIQQgAygCCA4DAQQCAAsQyoCAgAAACyAAQQA2AhwgAEG1moCAADYCECAAQRc2AgwgACAEQQFqNgIUQQAhEAwCCyAAQQA2AhwgACAENgIUIABBypqAgAA2AhAgAEEJNgIMQQAhEAwBCwJAIAEiBCACRw0AQSIhEAwBCyAAQYmAgIAANgIIIAAgBDYCBEEhIRALIANBEGokgICAgAAgEAuvAQECfyABKAIAIQYCQAJAIAIgA0YNACAEIAZqIQQgBiADaiACayEHIAIgBkF/cyAFaiIGaiEFA0ACQCACLQAAIAQtAABGDQBBAiEEDAMLAkAgBg0AQQAhBCAFIQIMAwsgBkF/aiEGIARBAWohBCACQQFqIgIgA0cNAAsgByEGIAMhAgsgAEEBNgIAIAEgBjYCACAAIAI2AgQPCyABQQA2AgAgACAENgIAIAAgAjYCBAsKACAAEMeAgIAAC/I2AQt/I4CAgIAAQRBrIgEkgICAgAACQEEAKAKg0ICAAA0AQQAQy4CAgABBgNSEgABrIgJB2QBJDQBBACEDAkBBACgC4NOAgAAiBA0AQQBCfzcC7NOAgABBAEKAgISAgIDAADcC5NOAgABBACABQQhqQXBxQdiq1aoFcyIENgLg04CAAEEAQQA2AvTTgIAAQQBBADYCxNOAgAALQQAgAjYCzNOAgABBAEGA1ISAADYCyNOAgABBAEGA1ISAADYCmNCAgABBACAENgKs0ICAAEEAQX82AqjQgIAAA0AgA0HE0ICAAGogA0G40ICAAGoiBDYCACAEIANBsNCAgABqIgU2AgAgA0G80ICAAGogBTYCACADQczQgIAAaiADQcDQgIAAaiIFNgIAIAUgBDYCACADQdTQgIAAaiADQcjQgIAAaiIENgIAIAQgBTYCACADQdDQgIAAaiAENgIAIANBIGoiA0GAAkcNAAtBgNSEgABBeEGA1ISAAGtBD3FBAEGA1ISAAEEIakEPcRsiA2oiBEEEaiACQUhqIgUgA2siA0EBcjYCAEEAQQAoAvDTgIAANgKk0ICAAEEAIAM2ApTQgIAAQQAgBDYCoNCAgABBgNSEgAAgBWpBODYCBAsCQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAEHsAUsNAAJAQQAoAojQgIAAIgZBECAAQRNqQXBxIABBC0kbIgJBA3YiBHYiA0EDcUUNAAJAAkAgA0EBcSAEckEBcyIFQQN0IgRBsNCAgABqIgMgBEG40ICAAGooAgAiBCgCCCICRw0AQQAgBkF+IAV3cTYCiNCAgAAMAQsgAyACNgIIIAIgAzYCDAsgBEEIaiEDIAQgBUEDdCIFQQNyNgIEIAQgBWoiBCAEKAIEQQFyNgIEDAwLIAJBACgCkNCAgAAiB00NAQJAIANFDQACQAJAIAMgBHRBAiAEdCIDQQAgA2tycSIDQQAgA2txQX9qIgMgA0EMdkEQcSIDdiIEQQV2QQhxIgUgA3IgBCAFdiIDQQJ2QQRxIgRyIAMgBHYiA0EBdkECcSIEciADIAR2IgNBAXZBAXEiBHIgAyAEdmoiBEEDdCIDQbDQgIAAaiIFIANBuNCAgABqKAIAIgMoAggiAEcNAEEAIAZBfiAEd3EiBjYCiNCAgAAMAQsgBSAANgIIIAAgBTYCDAsgAyACQQNyNgIEIAMgBEEDdCIEaiAEIAJrIgU2AgAgAyACaiIAIAVBAXI2AgQCQCAHRQ0AIAdBeHFBsNCAgABqIQJBACgCnNCAgAAhBAJAAkAgBkEBIAdBA3Z0IghxDQBBACAGIAhyNgKI0ICAACACIQgMAQsgAigCCCEICyAIIAQ2AgwgAiAENgIIIAQgAjYCDCAEIAg2AggLIANBCGohA0EAIAA2ApzQgIAAQQAgBTYCkNCAgAAMDAtBACgCjNCAgAAiCUUNASAJQQAgCWtxQX9qIgMgA0EMdkEQcSIDdiIEQQV2QQhxIgUgA3IgBCAFdiIDQQJ2QQRxIgRyIAMgBHYiA0EBdkECcSIEciADIAR2IgNBAXZBAXEiBHIgAyAEdmpBAnRBuNKAgABqKAIAIgAoAgRBeHEgAmshBCAAIQUCQANAAkAgBSgCECIDDQAgBUEUaigCACIDRQ0CCyADKAIEQXhxIAJrIgUgBCAFIARJIgUbIQQgAyAAIAUbIQAgAyEFDAALCyAAKAIYIQoCQCAAKAIMIgggAEYNACAAKAIIIgNBACgCmNCAgABJGiAIIAM2AgggAyAINgIMDAsLAkAgAEEUaiIFKAIAIgMNACAAKAIQIgNFDQMgAEEQaiEFCwNAIAUhCyADIghBFGoiBSgCACIDDQAgCEEQaiEFIAgoAhAiAw0ACyALQQA2AgAMCgtBfyECIABBv39LDQAgAEETaiIDQXBxIQJBACgCjNCAgAAiB0UNAEEAIQsCQCACQYACSQ0AQR8hCyACQf///wdLDQAgA0EIdiIDIANBgP4/akEQdkEIcSIDdCIEIARBgOAfakEQdkEEcSIEdCIFIAVBgIAPakEQdkECcSIFdEEPdiADIARyIAVyayIDQQF0IAIgA0EVanZBAXFyQRxqIQsLQQAgAmshBAJAAkACQAJAIAtBAnRBuNKAgABqKAIAIgUNAEEAIQNBACEIDAELQQAhAyACQQBBGSALQQF2ayALQR9GG3QhAEEAIQgDQAJAIAUoAgRBeHEgAmsiBiAETw0AIAYhBCAFIQggBg0AQQAhBCAFIQggBSEDDAMLIAMgBUEUaigCACIGIAYgBSAAQR12QQRxakEQaigCACIFRhsgAyAGGyEDIABBAXQhACAFDQALCwJAIAMgCHINAEEAIQhBAiALdCIDQQAgA2tyIAdxIgNFDQMgA0EAIANrcUF/aiIDIANBDHZBEHEiA3YiBUEFdkEIcSIAIANyIAUgAHYiA0ECdkEEcSIFciADIAV2IgNBAXZBAnEiBXIgAyAFdiIDQQF2QQFxIgVyIAMgBXZqQQJ0QbjSgIAAaigCACEDCyADRQ0BCwNAIAMoAgRBeHEgAmsiBiAESSEAAkAgAygCECIFDQAgA0EUaigCACEFCyAGIAQgABshBCADIAggABshCCAFIQMgBQ0ACwsgCEUNACAEQQAoApDQgIAAIAJrTw0AIAgoAhghCwJAIAgoAgwiACAIRg0AIAgoAggiA0EAKAKY0ICAAEkaIAAgAzYCCCADIAA2AgwMCQsCQCAIQRRqIgUoAgAiAw0AIAgoAhAiA0UNAyAIQRBqIQULA0AgBSEGIAMiAEEUaiIFKAIAIgMNACAAQRBqIQUgACgCECIDDQALIAZBADYCAAwICwJAQQAoApDQgIAAIgMgAkkNAEEAKAKc0ICAACEEAkACQCADIAJrIgVBEEkNACAEIAJqIgAgBUEBcjYCBEEAIAU2ApDQgIAAQQAgADYCnNCAgAAgBCADaiAFNgIAIAQgAkEDcjYCBAwBCyAEIANBA3I2AgQgBCADaiIDIAMoAgRBAXI2AgRBAEEANgKc0ICAAEEAQQA2ApDQgIAACyAEQQhqIQMMCgsCQEEAKAKU0ICAACIAIAJNDQBBACgCoNCAgAAiAyACaiIEIAAgAmsiBUEBcjYCBEEAIAU2ApTQgIAAQQAgBDYCoNCAgAAgAyACQQNyNgIEIANBCGohAwwKCwJAAkBBACgC4NOAgABFDQBBACgC6NOAgAAhBAwBC0EAQn83AuzTgIAAQQBCgICEgICAwAA3AuTTgIAAQQAgAUEMakFwcUHYqtWqBXM2AuDTgIAAQQBBADYC9NOAgABBAEEANgLE04CAAEGAgAQhBAtBACEDAkAgBCACQccAaiIHaiIGQQAgBGsiC3EiCCACSw0AQQBBMDYC+NOAgAAMCgsCQEEAKALA04CAACIDRQ0AAkBBACgCuNOAgAAiBCAIaiIFIARNDQAgBSADTQ0BC0EAIQNBAEEwNgL404CAAAwKC0EALQDE04CAAEEEcQ0EAkACQAJAQQAoAqDQgIAAIgRFDQBByNOAgAAhAwNAAkAgAygCACIFIARLDQAgBSADKAIEaiAESw0DCyADKAIIIgMNAAsLQQAQy4CAgAAiAEF/Rg0FIAghBgJAQQAoAuTTgIAAIgNBf2oiBCAAcUUNACAIIABrIAQgAGpBACADa3FqIQYLIAYgAk0NBSAGQf7///8HSw0FAkBBACgCwNOAgAAiA0UNAEEAKAK404CAACIEIAZqIgUgBE0NBiAFIANLDQYLIAYQy4CAgAAiAyAARw0BDAcLIAYgAGsgC3EiBkH+////B0sNBCAGEMuAgIAAIgAgAygCACADKAIEakYNAyAAIQMLAkAgA0F/Rg0AIAJByABqIAZNDQACQCAHIAZrQQAoAujTgIAAIgRqQQAgBGtxIgRB/v///wdNDQAgAyEADAcLAkAgBBDLgICAAEF/Rg0AIAQgBmohBiADIQAMBwtBACAGaxDLgICAABoMBAsgAyEAIANBf0cNBQwDC0EAIQgMBwtBACEADAULIABBf0cNAgtBAEEAKALE04CAAEEEcjYCxNOAgAALIAhB/v///wdLDQEgCBDLgICAACEAQQAQy4CAgAAhAyAAQX9GDQEgA0F/Rg0BIAAgA08NASADIABrIgYgAkE4ak0NAQtBAEEAKAK404CAACAGaiIDNgK404CAAAJAIANBACgCvNOAgABNDQBBACADNgK804CAAAsCQAJAAkACQEEAKAKg0ICAACIERQ0AQcjTgIAAIQMDQCAAIAMoAgAiBSADKAIEIghqRg0CIAMoAggiAw0ADAMLCwJAAkBBACgCmNCAgAAiA0UNACAAIANPDQELQQAgADYCmNCAgAALQQAhA0EAIAY2AszTgIAAQQAgADYCyNOAgABBAEF/NgKo0ICAAEEAQQAoAuDTgIAANgKs0ICAAEEAQQA2AtTTgIAAA0AgA0HE0ICAAGogA0G40ICAAGoiBDYCACAEIANBsNCAgABqIgU2AgAgA0G80ICAAGogBTYCACADQczQgIAAaiADQcDQgIAAaiIFNgIAIAUgBDYCACADQdTQgIAAaiADQcjQgIAAaiIENgIAIAQgBTYCACADQdDQgIAAaiAENgIAIANBIGoiA0GAAkcNAAsgAEF4IABrQQ9xQQAgAEEIakEPcRsiA2oiBCAGQUhqIgUgA2siA0EBcjYCBEEAQQAoAvDTgIAANgKk0ICAAEEAIAM2ApTQgIAAQQAgBDYCoNCAgAAgACAFakE4NgIEDAILIAMtAAxBCHENACAEIAVJDQAgBCAATw0AIARBeCAEa0EPcUEAIARBCGpBD3EbIgVqIgBBACgClNCAgAAgBmoiCyAFayIFQQFyNgIEIAMgCCAGajYCBEEAQQAoAvDTgIAANgKk0ICAAEEAIAU2ApTQgIAAQQAgADYCoNCAgAAgBCALakE4NgIEDAELAkAgAEEAKAKY0ICAACIITw0AQQAgADYCmNCAgAAgACEICyAAIAZqIQVByNOAgAAhAwJAAkACQAJAAkACQAJAA0AgAygCACAFRg0BIAMoAggiAw0ADAILCyADLQAMQQhxRQ0BC0HI04CAACEDA0ACQCADKAIAIgUgBEsNACAFIAMoAgRqIgUgBEsNAwsgAygCCCEDDAALCyADIAA2AgAgAyADKAIEIAZqNgIEIABBeCAAa0EPcUEAIABBCGpBD3EbaiILIAJBA3I2AgQgBUF4IAVrQQ9xQQAgBUEIakEPcRtqIgYgCyACaiICayEDAkAgBiAERw0AQQAgAjYCoNCAgABBAEEAKAKU0ICAACADaiIDNgKU0ICAACACIANBAXI2AgQMAwsCQCAGQQAoApzQgIAARw0AQQAgAjYCnNCAgABBAEEAKAKQ0ICAACADaiIDNgKQ0ICAACACIANBAXI2AgQgAiADaiADNgIADAMLAkAgBigCBCIEQQNxQQFHDQAgBEF4cSEHAkACQCAEQf8BSw0AIAYoAggiBSAEQQN2IghBA3RBsNCAgABqIgBGGgJAIAYoAgwiBCAFRw0AQQBBACgCiNCAgABBfiAId3E2AojQgIAADAILIAQgAEYaIAQgBTYCCCAFIAQ2AgwMAQsgBigCGCEJAkACQCAGKAIMIgAgBkYNACAGKAIIIgQgCEkaIAAgBDYCCCAEIAA2AgwMAQsCQCAGQRRqIgQoAgAiBQ0AIAZBEGoiBCgCACIFDQBBACEADAELA0AgBCEIIAUiAEEUaiIEKAIAIgUNACAAQRBqIQQgACgCECIFDQALIAhBADYCAAsgCUUNAAJAAkAgBiAGKAIcIgVBAnRBuNKAgABqIgQoAgBHDQAgBCAANgIAIAANAUEAQQAoAozQgIAAQX4gBXdxNgKM0ICAAAwCCyAJQRBBFCAJKAIQIAZGG2ogADYCACAARQ0BCyAAIAk2AhgCQCAGKAIQIgRFDQAgACAENgIQIAQgADYCGAsgBigCFCIERQ0AIABBFGogBDYCACAEIAA2AhgLIAcgA2ohAyAGIAdqIgYoAgQhBAsgBiAEQX5xNgIEIAIgA2ogAzYCACACIANBAXI2AgQCQCADQf8BSw0AIANBeHFBsNCAgABqIQQCQAJAQQAoAojQgIAAIgVBASADQQN2dCIDcQ0AQQAgBSADcjYCiNCAgAAgBCEDDAELIAQoAgghAwsgAyACNgIMIAQgAjYCCCACIAQ2AgwgAiADNgIIDAMLQR8hBAJAIANB////B0sNACADQQh2IgQgBEGA/j9qQRB2QQhxIgR0IgUgBUGA4B9qQRB2QQRxIgV0IgAgAEGAgA9qQRB2QQJxIgB0QQ92IAQgBXIgAHJrIgRBAXQgAyAEQRVqdkEBcXJBHGohBAsgAiAENgIcIAJCADcCECAEQQJ0QbjSgIAAaiEFAkBBACgCjNCAgAAiAEEBIAR0IghxDQAgBSACNgIAQQAgACAIcjYCjNCAgAAgAiAFNgIYIAIgAjYCCCACIAI2AgwMAwsgA0EAQRkgBEEBdmsgBEEfRht0IQQgBSgCACEAA0AgACIFKAIEQXhxIANGDQIgBEEddiEAIARBAXQhBCAFIABBBHFqQRBqIggoAgAiAA0ACyAIIAI2AgAgAiAFNgIYIAIgAjYCDCACIAI2AggMAgsgAEF4IABrQQ9xQQAgAEEIakEPcRsiA2oiCyAGQUhqIgggA2siA0EBcjYCBCAAIAhqQTg2AgQgBCAFQTcgBWtBD3FBACAFQUlqQQ9xG2pBQWoiCCAIIARBEGpJGyIIQSM2AgRBAEEAKALw04CAADYCpNCAgABBACADNgKU0ICAAEEAIAs2AqDQgIAAIAhBEGpBACkC0NOAgAA3AgAgCEEAKQLI04CAADcCCEEAIAhBCGo2AtDTgIAAQQAgBjYCzNOAgABBACAANgLI04CAAEEAQQA2AtTTgIAAIAhBJGohAwNAIANBBzYCACADQQRqIgMgBUkNAAsgCCAERg0DIAggCCgCBEF+cTYCBCAIIAggBGsiADYCACAEIABBAXI2AgQCQCAAQf8BSw0AIABBeHFBsNCAgABqIQMCQAJAQQAoAojQgIAAIgVBASAAQQN2dCIAcQ0AQQAgBSAAcjYCiNCAgAAgAyEFDAELIAMoAgghBQsgBSAENgIMIAMgBDYCCCAEIAM2AgwgBCAFNgIIDAQLQR8hAwJAIABB////B0sNACAAQQh2IgMgA0GA/j9qQRB2QQhxIgN0IgUgBUGA4B9qQRB2QQRxIgV0IgggCEGAgA9qQRB2QQJxIgh0QQ92IAMgBXIgCHJrIgNBAXQgACADQRVqdkEBcXJBHGohAwsgBCADNgIcIARCADcCECADQQJ0QbjSgIAAaiEFAkBBACgCjNCAgAAiCEEBIAN0IgZxDQAgBSAENgIAQQAgCCAGcjYCjNCAgAAgBCAFNgIYIAQgBDYCCCAEIAQ2AgwMBAsgAEEAQRkgA0EBdmsgA0EfRht0IQMgBSgCACEIA0AgCCIFKAIEQXhxIABGDQMgA0EddiEIIANBAXQhAyAFIAhBBHFqQRBqIgYoAgAiCA0ACyAGIAQ2AgAgBCAFNgIYIAQgBDYCDCAEIAQ2AggMAwsgBSgCCCIDIAI2AgwgBSACNgIIIAJBADYCGCACIAU2AgwgAiADNgIICyALQQhqIQMMBQsgBSgCCCIDIAQ2AgwgBSAENgIIIARBADYCGCAEIAU2AgwgBCADNgIIC0EAKAKU0ICAACIDIAJNDQBBACgCoNCAgAAiBCACaiIFIAMgAmsiA0EBcjYCBEEAIAM2ApTQgIAAQQAgBTYCoNCAgAAgBCACQQNyNgIEIARBCGohAwwDC0EAIQNBAEEwNgL404CAAAwCCwJAIAtFDQACQAJAIAggCCgCHCIFQQJ0QbjSgIAAaiIDKAIARw0AIAMgADYCACAADQFBACAHQX4gBXdxIgc2AozQgIAADAILIAtBEEEUIAsoAhAgCEYbaiAANgIAIABFDQELIAAgCzYCGAJAIAgoAhAiA0UNACAAIAM2AhAgAyAANgIYCyAIQRRqKAIAIgNFDQAgAEEUaiADNgIAIAMgADYCGAsCQAJAIARBD0sNACAIIAQgAmoiA0EDcjYCBCAIIANqIgMgAygCBEEBcjYCBAwBCyAIIAJqIgAgBEEBcjYCBCAIIAJBA3I2AgQgACAEaiAENgIAAkAgBEH/AUsNACAEQXhxQbDQgIAAaiEDAkACQEEAKAKI0ICAACIFQQEgBEEDdnQiBHENAEEAIAUgBHI2AojQgIAAIAMhBAwBCyADKAIIIQQLIAQgADYCDCADIAA2AgggACADNgIMIAAgBDYCCAwBC0EfIQMCQCAEQf///wdLDQAgBEEIdiIDIANBgP4/akEQdkEIcSIDdCIFIAVBgOAfakEQdkEEcSIFdCICIAJBgIAPakEQdkECcSICdEEPdiADIAVyIAJyayIDQQF0IAQgA0EVanZBAXFyQRxqIQMLIAAgAzYCHCAAQgA3AhAgA0ECdEG40oCAAGohBQJAIAdBASADdCICcQ0AIAUgADYCAEEAIAcgAnI2AozQgIAAIAAgBTYCGCAAIAA2AgggACAANgIMDAELIARBAEEZIANBAXZrIANBH0YbdCEDIAUoAgAhAgJAA0AgAiIFKAIEQXhxIARGDQEgA0EddiECIANBAXQhAyAFIAJBBHFqQRBqIgYoAgAiAg0ACyAGIAA2AgAgACAFNgIYIAAgADYCDCAAIAA2AggMAQsgBSgCCCIDIAA2AgwgBSAANgIIIABBADYCGCAAIAU2AgwgACADNgIICyAIQQhqIQMMAQsCQCAKRQ0AAkACQCAAIAAoAhwiBUECdEG40oCAAGoiAygCAEcNACADIAg2AgAgCA0BQQAgCUF+IAV3cTYCjNCAgAAMAgsgCkEQQRQgCigCECAARhtqIAg2AgAgCEUNAQsgCCAKNgIYAkAgACgCECIDRQ0AIAggAzYCECADIAg2AhgLIABBFGooAgAiA0UNACAIQRRqIAM2AgAgAyAINgIYCwJAAkAgBEEPSw0AIAAgBCACaiIDQQNyNgIEIAAgA2oiAyADKAIEQQFyNgIEDAELIAAgAmoiBSAEQQFyNgIEIAAgAkEDcjYCBCAFIARqIAQ2AgACQCAHRQ0AIAdBeHFBsNCAgABqIQJBACgCnNCAgAAhAwJAAkBBASAHQQN2dCIIIAZxDQBBACAIIAZyNgKI0ICAACACIQgMAQsgAigCCCEICyAIIAM2AgwgAiADNgIIIAMgAjYCDCADIAg2AggLQQAgBTYCnNCAgABBACAENgKQ0ICAAAsgAEEIaiEDCyABQRBqJICAgIAAIAMLCgAgABDJgICAAAviDQEHfwJAIABFDQAgAEF4aiIBIABBfGooAgAiAkF4cSIAaiEDAkAgAkEBcQ0AIAJBA3FFDQEgASABKAIAIgJrIgFBACgCmNCAgAAiBEkNASACIABqIQACQCABQQAoApzQgIAARg0AAkAgAkH/AUsNACABKAIIIgQgAkEDdiIFQQN0QbDQgIAAaiIGRhoCQCABKAIMIgIgBEcNAEEAQQAoAojQgIAAQX4gBXdxNgKI0ICAAAwDCyACIAZGGiACIAQ2AgggBCACNgIMDAILIAEoAhghBwJAAkAgASgCDCIGIAFGDQAgASgCCCICIARJGiAGIAI2AgggAiAGNgIMDAELAkAgAUEUaiICKAIAIgQNACABQRBqIgIoAgAiBA0AQQAhBgwBCwNAIAIhBSAEIgZBFGoiAigCACIEDQAgBkEQaiECIAYoAhAiBA0ACyAFQQA2AgALIAdFDQECQAJAIAEgASgCHCIEQQJ0QbjSgIAAaiICKAIARw0AIAIgBjYCACAGDQFBAEEAKAKM0ICAAEF+IAR3cTYCjNCAgAAMAwsgB0EQQRQgBygCECABRhtqIAY2AgAgBkUNAgsgBiAHNgIYAkAgASgCECICRQ0AIAYgAjYCECACIAY2AhgLIAEoAhQiAkUNASAGQRRqIAI2AgAgAiAGNgIYDAELIAMoAgQiAkEDcUEDRw0AIAMgAkF+cTYCBEEAIAA2ApDQgIAAIAEgAGogADYCACABIABBAXI2AgQPCyABIANPDQAgAygCBCICQQFxRQ0AAkACQCACQQJxDQACQCADQQAoAqDQgIAARw0AQQAgATYCoNCAgABBAEEAKAKU0ICAACAAaiIANgKU0ICAACABIABBAXI2AgQgAUEAKAKc0ICAAEcNA0EAQQA2ApDQgIAAQQBBADYCnNCAgAAPCwJAIANBACgCnNCAgABHDQBBACABNgKc0ICAAEEAQQAoApDQgIAAIABqIgA2ApDQgIAAIAEgAEEBcjYCBCABIABqIAA2AgAPCyACQXhxIABqIQACQAJAIAJB/wFLDQAgAygCCCIEIAJBA3YiBUEDdEGw0ICAAGoiBkYaAkAgAygCDCICIARHDQBBAEEAKAKI0ICAAEF+IAV3cTYCiNCAgAAMAgsgAiAGRhogAiAENgIIIAQgAjYCDAwBCyADKAIYIQcCQAJAIAMoAgwiBiADRg0AIAMoAggiAkEAKAKY0ICAAEkaIAYgAjYCCCACIAY2AgwMAQsCQCADQRRqIgIoAgAiBA0AIANBEGoiAigCACIEDQBBACEGDAELA0AgAiEFIAQiBkEUaiICKAIAIgQNACAGQRBqIQIgBigCECIEDQALIAVBADYCAAsgB0UNAAJAAkAgAyADKAIcIgRBAnRBuNKAgABqIgIoAgBHDQAgAiAGNgIAIAYNAUEAQQAoAozQgIAAQX4gBHdxNgKM0ICAAAwCCyAHQRBBFCAHKAIQIANGG2ogBjYCACAGRQ0BCyAGIAc2AhgCQCADKAIQIgJFDQAgBiACNgIQIAIgBjYCGAsgAygCFCICRQ0AIAZBFGogAjYCACACIAY2AhgLIAEgAGogADYCACABIABBAXI2AgQgAUEAKAKc0ICAAEcNAUEAIAA2ApDQgIAADwsgAyACQX5xNgIEIAEgAGogADYCACABIABBAXI2AgQLAkAgAEH/AUsNACAAQXhxQbDQgIAAaiECAkACQEEAKAKI0ICAACIEQQEgAEEDdnQiAHENAEEAIAQgAHI2AojQgIAAIAIhAAwBCyACKAIIIQALIAAgATYCDCACIAE2AgggASACNgIMIAEgADYCCA8LQR8hAgJAIABB////B0sNACAAQQh2IgIgAkGA/j9qQRB2QQhxIgJ0IgQgBEGA4B9qQRB2QQRxIgR0IgYgBkGAgA9qQRB2QQJxIgZ0QQ92IAIgBHIgBnJrIgJBAXQgACACQRVqdkEBcXJBHGohAgsgASACNgIcIAFCADcCECACQQJ0QbjSgIAAaiEEAkACQEEAKAKM0ICAACIGQQEgAnQiA3ENACAEIAE2AgBBACAGIANyNgKM0ICAACABIAQ2AhggASABNgIIIAEgATYCDAwBCyAAQQBBGSACQQF2ayACQR9GG3QhAiAEKAIAIQYCQANAIAYiBCgCBEF4cSAARg0BIAJBHXYhBiACQQF0IQIgBCAGQQRxakEQaiIDKAIAIgYNAAsgAyABNgIAIAEgBDYCGCABIAE2AgwgASABNgIIDAELIAQoAggiACABNgIMIAQgATYCCCABQQA2AhggASAENgIMIAEgADYCCAtBAEEAKAKo0ICAAEF/aiIBQX8gARs2AqjQgIAACwsEAAAAC04AAkAgAA0APwBBEHQPCwJAIABB//8DcQ0AIABBf0wNAAJAIABBEHZAACIAQX9HDQBBAEEwNgL404CAAEF/DwsgAEEQdA8LEMqAgIAAAAvyAgIDfwF+AkAgAkUNACAAIAE6AAAgAiAAaiIDQX9qIAE6AAAgAkEDSQ0AIAAgAToAAiAAIAE6AAEgA0F9aiABOgAAIANBfmogAToAACACQQdJDQAgACABOgADIANBfGogAToAACACQQlJDQAgAEEAIABrQQNxIgRqIgMgAUH/AXFBgYKECGwiATYCACADIAIgBGtBfHEiBGoiAkF8aiABNgIAIARBCUkNACADIAE2AgggAyABNgIEIAJBeGogATYCACACQXRqIAE2AgAgBEEZSQ0AIAMgATYCGCADIAE2AhQgAyABNgIQIAMgATYCDCACQXBqIAE2AgAgAkFsaiABNgIAIAJBaGogATYCACACQWRqIAE2AgAgBCADQQRxQRhyIgVrIgJBIEkNACABrUKBgICAEH4hBiADIAVqIQEDQCABIAY3AxggASAGNwMQIAEgBjcDCCABIAY3AwAgAUEgaiEBIAJBYGoiAkEfSw0ACwsgAAsLjkgBAEGACAuGSAEAAAACAAAAAwAAAAAAAAAAAAAABAAAAAUAAAAAAAAAAAAAAAYAAAAHAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASW52YWxpZCBjaGFyIGluIHVybCBxdWVyeQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2JvZHkAQ29udGVudC1MZW5ndGggb3ZlcmZsb3cAQ2h1bmsgc2l6ZSBvdmVyZmxvdwBSZXNwb25zZSBvdmVyZmxvdwBJbnZhbGlkIG1ldGhvZCBmb3IgSFRUUC94LnggcmVxdWVzdABJbnZhbGlkIG1ldGhvZCBmb3IgUlRTUC94LnggcmVxdWVzdABFeHBlY3RlZCBTT1VSQ0UgbWV0aG9kIGZvciBJQ0UveC54IHJlcXVlc3QASW52YWxpZCBjaGFyIGluIHVybCBmcmFnbWVudCBzdGFydABFeHBlY3RlZCBkb3QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9zdGF0dXMASW52YWxpZCByZXNwb25zZSBzdGF0dXMASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucwBVc2VyIGNhbGxiYWNrIGVycm9yAGBvbl9yZXNldGAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2hlYWRlcmAgY2FsbGJhY2sgZXJyb3IAYG9uX21lc3NhZ2VfYmVnaW5gIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fdmFsdWVgIGNhbGxiYWNrIGVycm9yAGBvbl9zdGF0dXNfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl92ZXJzaW9uX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdXJsX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAEVtcHR5IENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhcmFjdGVyIGluIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBNaXNzaW5nIGV4cGVjdGVkIExGIGFmdGVyIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AgaGVhZGVyIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGUgdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZWQgdmFsdWUAUGF1c2VkIGJ5IG9uX2hlYWRlcnNfY29tcGxldGUASW52YWxpZCBFT0Ygc3RhdGUAb25fcmVzZXQgcGF1c2UAb25fY2h1bmtfaGVhZGVyIHBhdXNlAG9uX21lc3NhZ2VfYmVnaW4gcGF1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlIHBhdXNlAG9uX3N0YXR1c19jb21wbGV0ZSBwYXVzZQBvbl92ZXJzaW9uX2NvbXBsZXRlIHBhdXNlAG9uX3VybF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGUgcGF1c2UAb25fbWVzc2FnZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXRob2RfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lIHBhdXNlAFVuZXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgc3RhcnQgbGluZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgbmFtZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AAU1dJVENIX1BST1hZAFVTRV9QUk9YWQBNS0FDVElWSVRZAFVOUFJPQ0VTU0FCTEVfRU5USVRZAENPUFkATU9WRURfUEVSTUFORU5UTFkAVE9PX0VBUkxZAE5PVElGWQBGQUlMRURfREVQRU5ERU5DWQBCQURfR0FURVdBWQBQTEFZAFBVVABDSEVDS09VVABHQVRFV0FZX1RJTUVPVVQAUkVRVUVTVF9USU1FT1VUAE5FVFdPUktfQ09OTkVDVF9USU1FT1VUAENPTk5FQ1RJT05fVElNRU9VVABMT0dJTl9USU1FT1VUAE5FVFdPUktfUkVBRF9USU1FT1VUAFBPU1QATUlTRElSRUNURURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9MT0FEX0JBTEFOQ0VEX1JFUVVFU1QAQkFEX1JFUVVFU1QASFRUUF9SRVFVRVNUX1NFTlRfVE9fSFRUUFNfUE9SVABSRVBPUlQASU1fQV9URUFQT1QAUkVTRVRfQ09OVEVOVABOT19DT05URU5UAFBBUlRJQUxfQ09OVEVOVABIUEVfSU5WQUxJRF9DT05TVEFOVABIUEVfQ0JfUkVTRVQAR0VUAEhQRV9TVFJJQ1QAQ09ORkxJQ1QAVEVNUE9SQVJZX1JFRElSRUNUAFBFUk1BTkVOVF9SRURJUkVDVABDT05ORUNUAE1VTFRJX1NUQVRVUwBIUEVfSU5WQUxJRF9TVEFUVVMAVE9PX01BTllfUkVRVUVTVFMARUFSTFlfSElOVFMAVU5BVkFJTEFCTEVfRk9SX0xFR0FMX1JFQVNPTlMAT1BUSU9OUwBTV0lUQ0hJTkdfUFJPVE9DT0xTAFZBUklBTlRfQUxTT19ORUdPVElBVEVTAE1VTFRJUExFX0NIT0lDRVMASU5URVJOQUxfU0VSVkVSX0VSUk9SAFdFQl9TRVJWRVJfVU5LTk9XTl9FUlJPUgBSQUlMR1VOX0VSUk9SAElERU5USVRZX1BST1ZJREVSX0FVVEhFTlRJQ0FUSU9OX0VSUk9SAFNTTF9DRVJUSUZJQ0FURV9FUlJPUgBJTlZBTElEX1hfRk9SV0FSREVEX0ZPUgBTRVRfUEFSQU1FVEVSAEdFVF9QQVJBTUVURVIASFBFX1VTRVIAU0VFX09USEVSAEhQRV9DQl9DSFVOS19IRUFERVIATUtDQUxFTkRBUgBTRVRVUABXRUJfU0VSVkVSX0lTX0RPV04AVEVBUkRPV04ASFBFX0NMT1NFRF9DT05ORUNUSU9OAEhFVVJJU1RJQ19FWFBJUkFUSU9OAERJU0NPTk5FQ1RFRF9PUEVSQVRJT04ATk9OX0FVVEhPUklUQVRJVkVfSU5GT1JNQVRJT04ASFBFX0lOVkFMSURfVkVSU0lPTgBIUEVfQ0JfTUVTU0FHRV9CRUdJTgBTSVRFX0lTX0ZST1pFTgBIUEVfSU5WQUxJRF9IRUFERVJfVE9LRU4ASU5WQUxJRF9UT0tFTgBGT1JCSURERU4ARU5IQU5DRV9ZT1VSX0NBTE0ASFBFX0lOVkFMSURfVVJMAEJMT0NLRURfQllfUEFSRU5UQUxfQ09OVFJPTABNS0NPTABBQ0wASFBFX0lOVEVSTkFMAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0VfVU5PRkZJQ0lBTABIUEVfT0sAVU5MSU5LAFVOTE9DSwBQUkkAUkVUUllfV0lUSABIUEVfSU5WQUxJRF9DT05URU5UX0xFTkdUSABIUEVfVU5FWFBFQ1RFRF9DT05URU5UX0xFTkdUSABGTFVTSABQUk9QUEFUQ0gATS1TRUFSQ0gAVVJJX1RPT19MT05HAFBST0NFU1NJTkcATUlTQ0VMTEFORU9VU19QRVJTSVNURU5UX1dBUk5JTkcATUlTQ0VMTEFORU9VU19XQVJOSU5HAEhQRV9JTlZBTElEX1RSQU5TRkVSX0VOQ09ESU5HAEV4cGVjdGVkIENSTEYASFBFX0lOVkFMSURfQ0hVTktfU0laRQBNT1ZFAENPTlRJTlVFAEhQRV9DQl9TVEFUVVNfQ09NUExFVEUASFBFX0NCX0hFQURFUlNfQ09NUExFVEUASFBFX0NCX1ZFUlNJT05fQ09NUExFVEUASFBFX0NCX1VSTF9DT01QTEVURQBIUEVfQ0JfQ0hVTktfQ09NUExFVEUASFBFX0NCX0hFQURFUl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fTkFNRV9DT01QTEVURQBIUEVfQ0JfTUVTU0FHRV9DT01QTEVURQBIUEVfQ0JfTUVUSE9EX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfRklFTERfQ09NUExFVEUAREVMRVRFAEhQRV9JTlZBTElEX0VPRl9TVEFURQBJTlZBTElEX1NTTF9DRVJUSUZJQ0FURQBQQVVTRQBOT19SRVNQT05TRQBVTlNVUFBPUlRFRF9NRURJQV9UWVBFAEdPTkUATk9UX0FDQ0VQVEFCTEUAU0VSVklDRV9VTkFWQUlMQUJMRQBSQU5HRV9OT1RfU0FUSVNGSUFCTEUAT1JJR0lOX0lTX1VOUkVBQ0hBQkxFAFJFU1BPTlNFX0lTX1NUQUxFAFBVUkdFAE1FUkdFAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0UAUkVRVUVTVF9IRUFERVJfVE9PX0xBUkdFAFBBWUxPQURfVE9PX0xBUkdFAElOU1VGRklDSUVOVF9TVE9SQUdFAEhQRV9QQVVTRURfVVBHUkFERQBIUEVfUEFVU0VEX0gyX1VQR1JBREUAU09VUkNFAEFOTk9VTkNFAFRSQUNFAEhQRV9VTkVYUEVDVEVEX1NQQUNFAERFU0NSSUJFAFVOU1VCU0NSSUJFAFJFQ09SRABIUEVfSU5WQUxJRF9NRVRIT0QATk9UX0ZPVU5EAFBST1BGSU5EAFVOQklORABSRUJJTkQAVU5BVVRIT1JJWkVEAE1FVEhPRF9OT1RfQUxMT1dFRABIVFRQX1ZFUlNJT05fTk9UX1NVUFBPUlRFRABBTFJFQURZX1JFUE9SVEVEAEFDQ0VQVEVEAE5PVF9JTVBMRU1FTlRFRABMT09QX0RFVEVDVEVEAEhQRV9DUl9FWFBFQ1RFRABIUEVfTEZfRVhQRUNURUQAQ1JFQVRFRABJTV9VU0VEAEhQRV9QQVVTRUQAVElNRU9VVF9PQ0NVUkVEAFBBWU1FTlRfUkVRVUlSRUQAUFJFQ09ORElUSU9OX1JFUVVJUkVEAFBST1hZX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAE5FVFdPUktfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATEVOR1RIX1JFUVVJUkVEAFNTTF9DRVJUSUZJQ0FURV9SRVFVSVJFRABVUEdSQURFX1JFUVVJUkVEAFBBR0VfRVhQSVJFRABQUkVDT05ESVRJT05fRkFJTEVEAEVYUEVDVEFUSU9OX0ZBSUxFRABSRVZBTElEQVRJT05fRkFJTEVEAFNTTF9IQU5EU0hBS0VfRkFJTEVEAExPQ0tFRABUUkFOU0ZPUk1BVElPTl9BUFBMSUVEAE5PVF9NT0RJRklFRABOT1RfRVhURU5ERUQAQkFORFdJRFRIX0xJTUlUX0VYQ0VFREVEAFNJVEVfSVNfT1ZFUkxPQURFRABIRUFEAEV4cGVjdGVkIEhUVFAvAABeEwAAJhMAADAQAADwFwAAnRMAABUSAAA5FwAA8BIAAAoQAAB1EgAArRIAAIITAABPFAAAfxAAAKAVAAAjFAAAiRIAAIsUAABNFQAA1BEAAM8UAAAQGAAAyRYAANwWAADBEQAA4BcAALsUAAB0FAAAfBUAAOUUAAAIFwAAHxAAAGUVAACjFAAAKBUAAAIVAACZFQAALBAAAIsZAABPDwAA1A4AAGoQAADOEAAAAhcAAIkOAABuEwAAHBMAAGYUAABWFwAAwRMAAM0TAABsEwAAaBcAAGYXAABfFwAAIhMAAM4PAABpDgAA2A4AAGMWAADLEwAAqg4AACgXAAAmFwAAxRMAAF0WAADoEQAAZxMAAGUTAADyFgAAcxMAAB0XAAD5FgAA8xEAAM8OAADOFQAADBIAALMRAAClEQAAYRAAADIXAAC7EwAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAgMCAgICAgAAAgIAAgIAAgICAgICAgICAgAEAAAAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAAIAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIAAgICAgIAAAICAAICAAICAgICAgICAgIAAwAEAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsb3NlZWVwLWFsaXZlAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQFjaHVua2VkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVjdGlvbmVudC1sZW5ndGhvbnJveHktY29ubmVjdGlvbgAAAAAAAAAAAAAAAAAAAHJhbnNmZXItZW5jb2RpbmdwZ3JhZGUNCg0KDQpTTQ0KDQpUVFAvQ0UvVFNQLwAAAAAAAAAAAAAAAAECAAEDAAAAAAAAAAAAAAAAAAAAAAAABAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQUBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAABAAACAAAAAAAAAAAAAAAAAAAAAAAAAwQAAAQEBAQEBAQEBAQEBQQEBAQEBAQEBAQEBAAEAAYHBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAgAAAAACAAAAAAAAAAAAAAAAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE5PVU5DRUVDS09VVE5FQ1RFVEVDUklCRUxVU0hFVEVBRFNFQVJDSFJHRUNUSVZJVFlMRU5EQVJWRU9USUZZUFRJT05TQ0hTRUFZU1RBVENIR0VPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFSFRUUC9BRFRQLw=="},7325:(A,e)=>{"use strict";Object.defineProperty(e,"__esModule",{value:true});e.enumToMap=void 0;function enumToMap(A){const e={};Object.keys(A).forEach((t=>{const r=A[t];if(typeof r==="number"){e[t]=r}}));return e}e.enumToMap=enumToMap},8697:(A,e,t)=>{"use strict";const{kClients:r}=t(5862);const n=t(8944);const{kAgent:i,kMockAgentSet:s,kMockAgentGet:o,kDispatches:a,kIsMockActive:c,kNetConnect:g,kGetNetConnect:E,kOptions:l,kFactory:Q}=t(5116);const B=t(9994);const h=t(8056);const{matchValue:C,buildMockOptions:u}=t(5403);const{InvalidArgumentError:I,UndiciError:d}=t(1070);const p=t(78);const y=t(6654);const D=t(8240);class FakeWeakRef{constructor(A){this.value=A}deref(){return this.value}}class MockAgent extends p{constructor(A){super(A);this[g]=true;this[c]=true;if(A&&A.agent&&typeof A.agent.dispatch!=="function"){throw new I("Argument opts.agent must implement Agent")}const e=A&&A.agent?A.agent:new n(A);this[i]=e;this[r]=e[r];this[l]=u(A)}get(A){let e=this[o](A);if(!e){e=this[Q](A);this[s](A,e)}return e}dispatch(A,e){this.get(A.origin);return this[i].dispatch(A,e)}async close(){await this[i].close();this[r].clear()}deactivate(){this[c]=false}activate(){this[c]=true}enableNetConnect(A){if(typeof A==="string"||typeof A==="function"||A instanceof RegExp){if(Array.isArray(this[g])){this[g].push(A)}else{this[g]=[A]}}else if(typeof A==="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]}[s](A,e){this[r].set(A,new FakeWeakRef(e))}[Q](A){const e=Object.assign({agent:this},this[l]);return this[l]&&this[l].connections===1?new B(A,e):new h(A,e)}[o](A){const e=this[r].get(A);if(e){return e.deref()}if(typeof A!=="string"){const e=this[Q]("http://localhost:9999");this[s](A,e);return e}for(const[e,t]of Array.from(this[r])){const r=t.deref();if(r&&typeof e!=="string"&&C(e,A)){const e=this[Q](A);this[s](A,e);e[a]=r[a];return e}}}[E](){return this[g]}pendingInterceptors(){const A=this[r];return Array.from(A.entries()).flatMap((([A,e])=>e.deref()[a].map((e=>({...e,origin:A}))))).filter((({pending:A})=>A))}assertNoPendingInterceptors({pendingInterceptorsFormatter:A=new D}={}){const e=this.pendingInterceptors();if(e.length===0){return}const t=new y("interceptor","interceptors").pluralize(e.length);throw new d(`\n${t.count} ${t.noun} ${t.is} pending:\n\n${A.format(e)}\n`.trim())}}A.exports=MockAgent},9994:(A,e,t)=>{"use strict";const{promisify:r}=t(3837);const n=t(3498);const{buildMockDispatch:i}=t(5403);const{kDispatches:s,kMockAgent:o,kClose:a,kOriginalClose:c,kOrigin:g,kOriginalDispatch:E,kConnected:l}=t(5116);const{MockInterceptor:Q}=t(3707);const B=t(5862);const{InvalidArgumentError:h}=t(1070);class MockClient extends n{constructor(A,e){super(A,e);if(!e||!e.agent||typeof e.agent.dispatch!=="function"){throw new h("Argument opts.agent must implement Agent")}this[o]=e.agent;this[g]=A;this[s]=[];this[l]=1;this[E]=this.dispatch;this[c]=this.close.bind(this);this.dispatch=i.call(this);this.close=this[a]}get[B.kConnected](){return this[l]}intercept(A){return new Q(A,this[s])}async[a](){await r(this[c])();this[l]=0;this[o][B.kClients].delete(this[g])}}A.exports=MockClient},1443:(A,e,t)=>{"use strict";const{UndiciError:r}=t(1070);class MockNotMatchedError extends r{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}},3707:(A,e,t)=>{"use strict";const{getResponseData:r,buildKey:n,addMockDispatch:i}=t(5403);const{kDispatches:s,kDispatchKey:o,kDefaultHeaders:a,kDefaultTrailers:c,kContentLength:g,kMockDispatch:E}=t(5116);const{InvalidArgumentError:l}=t(1070);const{buildURL:Q}=t(8657);class MockScope{constructor(A){this[E]=A}delay(A){if(typeof A!=="number"||!Number.isInteger(A)||A<=0){throw new l("waitInMs must be a valid integer > 0")}this[E].delay=A;return this}persist(){this[E].persist=true;return this}times(A){if(typeof A!=="number"||!Number.isInteger(A)||A<=0){throw new l("repeatTimes must be a valid integer > 0")}this[E].times=A;return this}}class MockInterceptor{constructor(A,e){if(typeof A!=="object"){throw new l("opts must be an object")}if(typeof A.path==="undefined"){throw new l("opts.path must be defined")}if(typeof A.method==="undefined"){A.method="GET"}if(typeof A.path==="string"){if(A.query){A.path=Q(A.path,A.query)}else{const e=new URL(A.path,"data://");A.path=e.pathname+e.search}}if(typeof A.method==="string"){A.method=A.method.toUpperCase()}this[o]=n(A);this[s]=e;this[a]={};this[c]={};this[g]=false}createMockScopeDispatchData(A,e,t={}){const n=r(e);const i=this[g]?{"content-length":n.length}:{};const s={...this[a],...i,...t.headers};const o={...this[c],...t.trailers};return{statusCode:A,data:e,headers:s,trailers:o}}validateReplyParameters(A,e,t){if(typeof A==="undefined"){throw new l("statusCode must be defined")}if(typeof e==="undefined"){throw new l("data must be defined")}if(typeof t!=="object"){throw new l("responseOptions must be an object")}}reply(A){if(typeof A==="function"){const wrappedDefaultsCallback=e=>{const t=A(e);if(typeof t!=="object"){throw new l("reply options callback must return an object")}const{statusCode:r,data:n="",responseOptions:i={}}=t;this.validateReplyParameters(r,n,i);return{...this.createMockScopeDispatchData(r,n,i)}};const e=i(this[s],this[o],wrappedDefaultsCallback);return new MockScope(e)}const[e,t="",r={}]=[...arguments];this.validateReplyParameters(e,t,r);const n=this.createMockScopeDispatchData(e,t,r);const a=i(this[s],this[o],n);return new MockScope(a)}replyWithError(A){if(typeof A==="undefined"){throw new l("error must be defined")}const e=i(this[s],this[o],{error:A});return new MockScope(e)}defaultReplyHeaders(A){if(typeof A==="undefined"){throw new l("headers must be defined")}this[a]=A;return this}defaultReplyTrailers(A){if(typeof A==="undefined"){throw new l("trailers must be defined")}this[c]=A;return this}replyContentLength(){this[g]=true;return this}}A.exports.MockInterceptor=MockInterceptor;A.exports.MockScope=MockScope},8056:(A,e,t)=>{"use strict";const{promisify:r}=t(3837);const n=t(9756);const{buildMockDispatch:i}=t(5403);const{kDispatches:s,kMockAgent:o,kClose:a,kOriginalClose:c,kOrigin:g,kOriginalDispatch:E,kConnected:l}=t(5116);const{MockInterceptor:Q}=t(3707);const B=t(5862);const{InvalidArgumentError:h}=t(1070);class MockPool extends n{constructor(A,e){super(A,e);if(!e||!e.agent||typeof e.agent.dispatch!=="function"){throw new h("Argument opts.agent must implement Agent")}this[o]=e.agent;this[g]=A;this[s]=[];this[l]=1;this[E]=this.dispatch;this[c]=this.close.bind(this);this.dispatch=i.call(this);this.close=this[a]}get[B.kConnected](){return this[l]}intercept(A){return new Q(A,this[s])}async[a](){await r(this[c])();this[l]=0;this[o][B.kClients].delete(this[g])}}A.exports=MockPool},5116:A=>{"use strict";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")}},5403:(A,e,t)=>{"use strict";const{MockNotMatchedError:r}=t(1443);const{kDispatches:n,kMockAgent:i,kOriginalDispatch:s,kOrigin:o,kGetNetConnect:a}=t(5116);const{buildURL:c,nop:g}=t(8657);const{STATUS_CODES:E}=t(3685);const{types:{isPromise:l}}=t(3837);function matchValue(A,e){if(typeof A==="string"){return A===e}if(A instanceof RegExp){return A.test(e)}if(typeof A==="function"){return A(e)===true}return false}function lowerCaseEntries(A){return Object.fromEntries(Object.entries(A).map((([A,e])=>[A.toLocaleLowerCase(),e])))}function getHeaderByName(A,e){if(Array.isArray(A)){for(let t=0;t!A)).filter((({path:A})=>matchValue(safeUrl(A),n)));if(i.length===0){throw new r(`Mock dispatch not matched for path '${n}'`)}i=i.filter((({method:A})=>matchValue(A,e.method)));if(i.length===0){throw new r(`Mock dispatch not matched for method '${e.method}'`)}i=i.filter((({body:A})=>typeof A!=="undefined"?matchValue(A,e.body):true));if(i.length===0){throw new r(`Mock dispatch not matched for body '${e.body}'`)}i=i.filter((A=>matchHeaders(A,e.headers)));if(i.length===0){throw new r(`Mock dispatch not matched for headers '${typeof e.headers==="object"?JSON.stringify(e.headers):e.headers}'`)}return i[0]}function addMockDispatch(A,e,t){const r={timesInvoked:0,times:1,persist:false,consumed:false};const n=typeof t==="function"?{callback:t}:{...t};const i={...r,...e,pending:true,data:{error:null,...n}};A.push(i);return i}function deleteMockDispatch(A,e){const t=A.findIndex((A=>{if(!A.consumed){return false}return matchKey(A,e)}));if(t!==-1){A.splice(t,1)}}function buildKey(A){const{path:e,method:t,body:r,headers:n,query:i}=A;return{path:e,method:t,body:r,headers:n,query:i}}function generateKeyValues(A){return Object.entries(A).reduce(((A,[e,t])=>[...A,Buffer.from(`${e}`),Array.isArray(t)?t.map((A=>Buffer.from(`${A}`))):Buffer.from(`${t}`)]),[])}function getStatusText(A){return E[A]||"unknown"}async function getResponse(A){const e=[];for await(const t of A){e.push(t)}return Buffer.concat(e).toString("utf8")}function mockDispatch(A,e){const t=buildKey(A);const r=getMockDispatch(this[n],t);r.timesInvoked++;if(r.data.callback){r.data={...r.data,...r.data.callback(A)}}const{data:{statusCode:i,data:s,headers:o,trailers:a,error:c},delay:E,persist:Q}=r;const{timesInvoked:B,times:h}=r;r.consumed=!Q&&B>=h;r.pending=B0){setTimeout((()=>{handleReply(this[n])}),E)}else{handleReply(this[n])}function handleReply(r,n=s){const c=Array.isArray(A.headers)?buildHeadersFromArray(A.headers):A.headers;const E=typeof n==="function"?n({...A,headers:c}):n;if(l(E)){E.then((A=>handleReply(r,A)));return}const Q=getResponseData(E);const B=generateKeyValues(o);const h=generateKeyValues(a);e.abort=g;e.onHeaders(i,B,resume,getStatusText(i));e.onData(Buffer.from(Q));e.onComplete(h);deleteMockDispatch(r,t)}function resume(){}return true}function buildMockDispatch(){const A=this[i];const e=this[o];const t=this[s];return function dispatch(n,i){if(A.isMockActive){try{mockDispatch.call(this,n,i)}catch(s){if(s instanceof r){const o=A[a]();if(o===false){throw new r(`${s.message}: subsequent request to origin ${e} was not allowed (net.connect disabled)`)}if(checkNetConnect(o,e)){t.call(this,n,i)}else{throw new r(`${s.message}: subsequent request to origin ${e} was not allowed (net.connect is not enabled for this origin)`)}}else{throw s}}}else{t.call(this,n,i)}}}function checkNetConnect(A,e){const t=new URL(e);if(A===true){return true}else if(Array.isArray(A)&&A.some((A=>matchValue(A,t.host)))){return true}return false}function buildMockOptions(A){if(A){const{agent:e,...t}=A;return t}}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}},8240:(A,e,t)=>{"use strict";const{Transform:r}=t(2781);const{Console:n}=t(6206);A.exports=class PendingInterceptorsFormatter{constructor({disableColors:A}={}){this.transform=new r({transform(A,e,t){t(null,A)}});this.logger=new n({stdout:this.transform,inspectOptions:{colors:!A&&!process.env.CI}})}format(A){const e=A.map((({method:A,path:e,data:{statusCode:t},persist:r,times:n,timesInvoked:i,origin:s})=>({Method:A,Origin:s,Path:e,"Status code":t,Persistent:r?"✅":"❌",Invocations:i,Remaining:r?Infinity:n-i})));this.logger.table(e);return this.transform.read().toString()}}},6654:A=>{"use strict";const e={pronoun:"it",is:"is",was:"was",this:"this"};const t={pronoun:"they",is:"are",was:"were",this:"these"};A.exports=class Pluralizer{constructor(A,e){this.singular=A;this.plural=e}pluralize(A){const r=A===1;const n=r?e:t;const i=r?this.singular:this.plural;return{...n,count:A,noun:i}}}},9304:A=>{"use strict";const e=2048;const t=e-1;class FixedCircularBuffer{constructor(){this.bottom=0;this.top=0;this.list=new Array(e);this.next=null}isEmpty(){return this.top===this.bottom}isFull(){return(this.top+1&t)===this.bottom}push(A){this.list[this.top]=A;this.top=this.top+1&t}shift(){const A=this.list[this.bottom];if(A===undefined)return null;this.list[this.bottom]=undefined;this.bottom=this.bottom+1&t;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 e=A.shift();if(A.isEmpty()&&A.next!==null){this.tail=A.next}return e}}},4823:(A,e,t)=>{"use strict";const r=t(568);const n=t(9304);const{kConnected:i,kSize:s,kRunning:o,kPending:a,kQueued:c,kBusy:g,kFree:E,kUrl:l,kClose:Q,kDestroy:B,kDispatch:h}=t(5862);const C=t(5040);const u=Symbol("clients");const I=Symbol("needDrain");const d=Symbol("queue");const p=Symbol("closed resolve");const y=Symbol("onDrain");const D=Symbol("onConnect");const m=Symbol("onDisconnect");const w=Symbol("onConnectionError");const R=Symbol("get dispatcher");const b=Symbol("add client");const k=Symbol("remove client");const F=Symbol("stats");class PoolBase extends r{constructor(){super();this[d]=new n;this[u]=[];this[c]=0;const A=this;this[y]=function onDrain(e,t){const r=A[d];let n=false;while(!n){const e=r.shift();if(!e){break}A[c]--;n=!this.dispatch(e.opts,e.handler)}this[I]=n;if(!this[I]&&A[I]){A[I]=false;A.emit("drain",e,[A,...t])}if(A[p]&&r.isEmpty()){Promise.all(A[u].map((A=>A.close()))).then(A[p])}};this[D]=(e,t)=>{A.emit("connect",e,[A,...t])};this[m]=(e,t,r)=>{A.emit("disconnect",e,[A,...t],r)};this[w]=(e,t,r)=>{A.emit("connectionError",e,[A,...t],r)};this[F]=new C(this)}get[g](){return this[I]}get[i](){return this[u].filter((A=>A[i])).length}get[E](){return this[u].filter((A=>A[i]&&!A[I])).length}get[a](){let A=this[c];for(const{[a]:e}of this[u]){A+=e}return A}get[o](){let A=0;for(const{[o]:e}of this[u]){A+=e}return A}get[s](){let A=this[c];for(const{[s]:e}of this[u]){A+=e}return A}get stats(){return this[F]}async[Q](){if(this[d].isEmpty()){return Promise.all(this[u].map((A=>A.close())))}else{return new Promise((A=>{this[p]=A}))}}async[B](A){while(true){const e=this[d].shift();if(!e){break}e.handler.onError(A)}return Promise.all(this[u].map((e=>e.destroy(A))))}[h](A,e){const t=this[R]();if(!t){this[I]=true;this[d].push({opts:A,handler:e});this[c]++}else if(!t.dispatch(A,e)){t[I]=true;this[I]=!this[R]()}return!this[I]}[b](A){A.on("drain",this[y]).on("connect",this[D]).on("disconnect",this[m]).on("connectionError",this[w]);this[u].push(A);if(this[I]){process.nextTick((()=>{if(this[I]){this[y](A[l],[this,A])}}))}return this}[k](A){A.close((()=>{const e=this[u].indexOf(A);if(e!==-1){this[u].splice(e,1)}}));this[I]=this[u].some((A=>!A[I]&&A.closed!==true&&A.destroyed!==true))}}A.exports={PoolBase:PoolBase,kClients:u,kNeedDrain:I,kAddClient:b,kRemoveClient:k,kGetDispatcher:R}},5040:(A,e,t)=>{const{kFree:r,kConnected:n,kPending:i,kQueued:s,kRunning:o,kSize:a}=t(5862);const c=Symbol("pool");class PoolStats{constructor(A){this[c]=A}get connected(){return this[c][n]}get free(){return this[c][r]}get pending(){return this[c][i]}get queued(){return this[c][s]}get running(){return this[c][o]}get size(){return this[c][a]}}A.exports=PoolStats},9756:(A,e,t)=>{"use strict";const{PoolBase:r,kClients:n,kNeedDrain:i,kAddClient:s,kGetDispatcher:o}=t(4823);const a=t(3498);const{InvalidArgumentError:c}=t(1070);const g=t(8657);const{kUrl:E,kInterceptors:l}=t(5862);const Q=t(6150);const B=Symbol("options");const h=Symbol("connections");const C=Symbol("factory");function defaultFactory(A,e){return new a(A,e)}class Pool extends r{constructor(A,{connections:e,factory:t=defaultFactory,connect:r,connectTimeout:n,tls:i,maxCachedSessions:s,socketPath:o,autoSelectFamily:a,autoSelectFamilyAttemptTimeout:u,allowH2:I,...d}={}){super();if(e!=null&&(!Number.isFinite(e)||e<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=Q({...i,maxCachedSessions:s,allowH2:I,socketPath:o,timeout:n==null?1e4:n,...g.nodeHasAutoSelectFamily&&a?{autoSelectFamily:a,autoSelectFamilyAttemptTimeout:u}:undefined,...r})}this[l]=d.interceptors&&d.interceptors.Pool&&Array.isArray(d.interceptors.Pool)?d.interceptors.Pool:[];this[h]=e||null;this[E]=g.parseOrigin(A);this[B]={...g.deepClone(d),connect:r,allowH2:I};this[B].interceptors=d.interceptors?{...d.interceptors}:undefined;this[C]=t}[o](){let A=this[n].find((A=>!A[i]));if(A){return A}if(!this[h]||this[n].length{"use strict";const{kProxy:r,kClose:n,kDestroy:i,kInterceptors:s}=t(5862);const{URL:o}=t(7310);const a=t(8944);const c=t(9756);const g=t(568);const{InvalidArgumentError:E,RequestAbortedError:l}=t(1070);const Q=t(6150);const B=Symbol("proxy agent");const h=Symbol("proxy client");const C=Symbol("proxy headers");const u=Symbol("request tls settings");const I=Symbol("proxy tls settings");const d=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 E("Proxy opts.uri is mandatory")}return{uri:A.uri,protocol:A.protocol||"https"}}function defaultFactory(A,e){return new c(A,e)}class ProxyAgent extends g{constructor(A){super(A);this[r]=buildProxyOptions(A);this[B]=new a(A);this[s]=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 E("Proxy opts.uri is mandatory")}const{clientFactory:e=defaultFactory}=A;if(typeof e!=="function"){throw new E("Proxy opts.clientFactory must be a function.")}this[u]=A.requestTls;this[I]=A.proxyTls;this[C]=A.headers||{};if(A.auth&&A.token){throw new E("opts.auth cannot be used in combination with opts.token")}else if(A.auth){this[C]["proxy-authorization"]=`Basic ${A.auth}`}else if(A.token){this[C]["proxy-authorization"]=A.token}const t=new o(A.uri);const{origin:n,port:i,host:c}=t;const g=Q({...A.proxyTls});this[d]=Q({...A.requestTls});this[h]=e(t,{connect:g});this[B]=new a({...A,connect:async(A,e)=>{let t=A.host;if(!A.port){t+=`:${defaultProtocolPort(A.protocol)}`}try{const{socket:r,statusCode:s}=await this[h].connect({origin:n,port:i,path:t,signal:A.signal,headers:{...this[C],host:c}});if(s!==200){r.on("error",(()=>{})).destroy();e(new l("Proxy response !== 200 when HTTP Tunneling"))}if(A.protocol!=="https:"){e(null,r);return}let o;if(this[u]){o=this[u].servername}else{o=A.servername}this[d]({...A,servername:o,httpSocket:r},e)}catch(A){e(A)}}})}dispatch(A,e){const{host:t}=new o(A.origin);const r=buildHeaders(A.headers);throwIfProxyAuthIsSent(r);return this[B].dispatch({...A,headers:{...r,host:t}},e)}async[n](){await this[B].close();await this[h].close()}async[i](){await this[B].destroy();await this[h].destroy()}}function buildHeaders(A){if(Array.isArray(A)){const e={};for(let t=0;tA.toLowerCase()==="proxy-authorization"));if(e){throw new E("Proxy-Authorization should be sent in ProxyAgent constructor")}}A.exports=ProxyAgent},6020:A=>{"use strict";let e=Date.now();let t;const r=[];function onTimeout(){e=Date.now();let A=r.length;let t=0;while(t0&&e>=n.state){n.state=-1;n.callback(n.opaque)}if(n.state===-1){n.state=-2;if(t!==A-1){r[t]=r.pop()}else{r.pop()}A-=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(A,e,t){this.callback=A;this.delay=e;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}}A.exports={setTimeout(A,e,t){return e<1e3?setTimeout(A,e,t):new Timeout(A,e,t)},clearTimeout(A){if(A instanceof Timeout){A.clear()}else{clearTimeout(A)}}}},5782:(A,e,t)=>{"use strict";const r=t(7643);const{uid:n,states:i}=t(3475);const{kReadyState:s,kSentClose:o,kByteParser:a,kReceivedClose:c}=t(7069);const{fireEvent:g,failWebsocketConnection:E}=t(9490);const{CloseEvent:l}=t(5261);const{makeRequest:Q}=t(6369);const{fetching:B}=t(3177);const{Headers:h}=t(4721);const{getGlobalDispatcher:C}=t(5230);const{kHeadersList:u}=t(5862);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(6113)}catch{}function establishWebSocketConnection(A,e,t,r,i){const s=A;s.protocol=A.protocol==="ws:"?"http:":"https:";const o=Q({urlList:[s],serviceWorkers:"none",referrer:"no-referrer",mode:"websocket",credentials:"include",cache:"no-store",redirect:"error"});if(i.headers){const A=new h(i.headers)[u];o.headersList=A}const a=d.randomBytes(16).toString("base64");o.headersList.append("sec-websocket-key",a);o.headersList.append("sec-websocket-version","13");for(const A of e){o.headersList.append("sec-websocket-protocol",A)}const c="";const g=B({request:o,useParallelQueue:true,dispatcher:i.dispatcher??C(),processResponse(A){if(A.type==="error"||A.status!==101){E(t,"Received network error or non-101 status code.");return}if(e.length!==0&&!A.headersList.get("Sec-WebSocket-Protocol")){E(t,"Server did not respond with sent protocols.");return}if(A.headersList.get("Upgrade")?.toLowerCase()!=="websocket"){E(t,'Server did not set Upgrade header to "websocket".');return}if(A.headersList.get("Connection")?.toLowerCase()!=="upgrade"){E(t,'Server did not set Connection header to "upgrade".');return}const i=A.headersList.get("Sec-WebSocket-Accept");const s=d.createHash("sha1").update(a+n).digest("base64");if(i!==s){E(t,"Incorrect hash received in Sec-WebSocket-Accept header.");return}const g=A.headersList.get("Sec-WebSocket-Extensions");if(g!==null&&g!==c){E(t,"Received different permessage-deflate than the one set.");return}const l=A.headersList.get("Sec-WebSocket-Protocol");if(l!==null&&l!==o.headersList.get("Sec-WebSocket-Protocol")){E(t,"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(I.open.hasSubscribers){I.open.publish({address:A.socket.address(),protocol:l,extensions:g})}r(A)}});return g}function onSocketData(A){if(!this.ws[a].write(A)){this.pause()}}function onSocketClose(){const{ws:A}=this;const e=A[o]&&A[c];let t=1005;let r="";const n=A[a].closingInfo;if(n){t=n.code??1005;r=n.reason}else if(!A[o]){t=1006}A[s]=i.CLOSED;g("close",A,l,{wasClean:e,code:t,reason:r});if(I.close.hasSubscribers){I.close.publish({websocket:A,code:t,reason:r})}}function onSocketError(A){const{ws:e}=this;e[s]=i.CLOSING;if(I.socketError.hasSubscribers){I.socketError.publish(A)}this.destroy()}A.exports={establishWebSocketConnection:establishWebSocketConnection}},3475:A=>{"use strict";const e="258EAFA5-E914-47DA-95CA-C5AB0DC85B11";const t={enumerable:true,writable:false,configurable:false};const r={CONNECTING:0,OPEN:1,CLOSING:2,CLOSED:3};const n={CONTINUATION:0,TEXT:1,BINARY:2,CLOSE:8,PING:9,PONG:10};const i=2**16-1;const s={INFO:0,PAYLOADLENGTH_16:2,PAYLOADLENGTH_64:3,READ_DATA:4};const o=Buffer.allocUnsafe(0);A.exports={uid:e,staticPropertyDescriptors:t,states:r,opcodes:n,maxUnsigned16Bit:i,parserStates:s,emptyBuffer:o}},5261:(A,e,t)=>{"use strict";const{webidl:r}=t(4161);const{kEnumerableProperty:n}=t(8657);const{MessagePort:i}=t(1267);class MessageEvent extends Event{#i;constructor(A,e={}){r.argumentLengthCheck(arguments,1,{header:"MessageEvent constructor"});A=r.converters.DOMString(A);e=r.converters.MessageEventInit(e);super(A,e);this.#i=e}get data(){r.brandCheck(this,MessageEvent);return this.#i.data}get origin(){r.brandCheck(this,MessageEvent);return this.#i.origin}get lastEventId(){r.brandCheck(this,MessageEvent);return this.#i.lastEventId}get source(){r.brandCheck(this,MessageEvent);return this.#i.source}get ports(){r.brandCheck(this,MessageEvent);if(!Object.isFrozen(this.#i.ports)){Object.freeze(this.#i.ports)}return this.#i.ports}initMessageEvent(A,e=false,t=false,n=null,i="",s="",o=null,a=[]){r.brandCheck(this,MessageEvent);r.argumentLengthCheck(arguments,1,{header:"MessageEvent.initMessageEvent"});return new MessageEvent(A,{bubbles:e,cancelable:t,data:n,origin:i,lastEventId:s,source:o,ports:a})}}class CloseEvent extends Event{#i;constructor(A,e={}){r.argumentLengthCheck(arguments,1,{header:"CloseEvent constructor"});A=r.converters.DOMString(A);e=r.converters.CloseEventInit(e);super(A,e);this.#i=e}get wasClean(){r.brandCheck(this,CloseEvent);return this.#i.wasClean}get code(){r.brandCheck(this,CloseEvent);return this.#i.code}get reason(){r.brandCheck(this,CloseEvent);return this.#i.reason}}class ErrorEvent extends Event{#i;constructor(A,e){r.argumentLengthCheck(arguments,1,{header:"ErrorEvent constructor"});super(A,e);A=r.converters.DOMString(A);e=r.converters.ErrorEventInit(e??{});this.#i=e}get message(){r.brandCheck(this,ErrorEvent);return this.#i.message}get filename(){r.brandCheck(this,ErrorEvent);return this.#i.filename}get lineno(){r.brandCheck(this,ErrorEvent);return this.#i.lineno}get colno(){r.brandCheck(this,ErrorEvent);return this.#i.colno}get error(){r.brandCheck(this,ErrorEvent);return this.#i.error}}Object.defineProperties(MessageEvent.prototype,{[Symbol.toStringTag]:{value:"MessageEvent",configurable:true},data:n,origin:n,lastEventId:n,source:n,ports:n,initMessageEvent:n});Object.defineProperties(CloseEvent.prototype,{[Symbol.toStringTag]:{value:"CloseEvent",configurable:true},reason:n,code:n,wasClean:n});Object.defineProperties(ErrorEvent.prototype,{[Symbol.toStringTag]:{value:"ErrorEvent",configurable:true},message:n,filename:n,lineno:n,colno:n,error:n});r.converters.MessagePort=r.interfaceConverter(i);r.converters["sequence"]=r.sequenceConverter(r.converters.MessagePort);const s=[{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([...s,{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"],get defaultValue(){return[]}}]);r.converters.CloseEventInit=r.dictionaryConverter([...s,{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([...s,{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}]);A.exports={MessageEvent:MessageEvent,CloseEvent:CloseEvent,ErrorEvent:ErrorEvent}},8485:(A,e,t)=>{"use strict";const{maxUnsigned16Bit:r}=t(3475);let n;try{n=t(6113)}catch{}class WebsocketFrameSend{constructor(A){this.frameData=A;this.maskKey=n.randomBytes(4)}createFrame(A){const e=this.frameData?.byteLength??0;let t=e;let n=6;if(e>r){n+=8;t=127}else if(e>125){n+=2;t=126}const i=Buffer.allocUnsafe(e+n);i[0]=i[1]=0;i[0]|=128;i[0]=(i[0]&240)+A; -/*! ws. MIT License. Einar Otto Stangvik */i[n-4]=this.maskKey[0];i[n-3]=this.maskKey[1];i[n-2]=this.maskKey[2];i[n-1]=this.maskKey[3];i[1]=t;if(t===126){i.writeUInt16BE(e,2)}else if(t===127){i[2]=i[3]=0;i.writeUIntBE(e,4,6)}i[1]|=128;for(let A=0;A{"use strict";const{Writable:r}=t(2781);const n=t(7643);const{parserStates:i,opcodes:s,states:o,emptyBuffer:a}=t(3475);const{kReadyState:c,kSentClose:g,kResponse:E,kReceivedClose:l}=t(7069);const{isValidStatusCode:Q,failWebsocketConnection:B,websocketMessageReceived:h}=t(9490);const{WebsocketFrameSend:C}=t(8485);const u={};u.ping=n.channel("undici:websocket:ping");u.pong=n.channel("undici:websocket:pong");class ByteParser extends r{#s=[];#o=0;#a=i.INFO;#c={};#g=[];constructor(A){super();this.ws=A}_write(A,e,t){this.#s.push(A);this.#o+=A.length;this.run(t)}run(A){while(true){if(this.#a===i.INFO){if(this.#o<2){return A()}const e=this.consume(2);this.#c.fin=(e[0]&128)!==0;this.#c.opcode=e[0]&15;this.#c.originalOpcode??=this.#c.opcode;this.#c.fragmented=!this.#c.fin&&this.#c.opcode!==s.CONTINUATION;if(this.#c.fragmented&&this.#c.opcode!==s.BINARY&&this.#c.opcode!==s.TEXT){B(this.ws,"Invalid frame type was fragmented.");return}const t=e[1]&127;if(t<=125){this.#c.payloadLength=t;this.#a=i.READ_DATA}else if(t===126){this.#a=i.PAYLOADLENGTH_16}else if(t===127){this.#a=i.PAYLOADLENGTH_64}if(this.#c.fragmented&&t>125){B(this.ws,"Fragmented frame exceeded 125 bytes.");return}else if((this.#c.opcode===s.PING||this.#c.opcode===s.PONG||this.#c.opcode===s.CLOSE)&&t>125){B(this.ws,"Payload length for control frame exceeded 125 bytes.");return}else if(this.#c.opcode===s.CLOSE){if(t===1){B(this.ws,"Received close frame with a 1-byte body.");return}const A=this.consume(t);this.#c.closeInfo=this.parseCloseBody(false,A);if(!this.ws[g]){const A=Buffer.allocUnsafe(2);A.writeUInt16BE(this.#c.closeInfo.code,0);const e=new C(A);this.ws[E].socket.write(e.createFrame(s.CLOSE),(A=>{if(!A){this.ws[g]=true}}))}this.ws[c]=o.CLOSING;this.ws[l]=true;this.end();return}else if(this.#c.opcode===s.PING){const e=this.consume(t);if(!this.ws[l]){const A=new C(e);this.ws[E].socket.write(A.createFrame(s.PONG));if(u.ping.hasSubscribers){u.ping.publish({payload:e})}}this.#a=i.INFO;if(this.#o>0){continue}else{A();return}}else if(this.#c.opcode===s.PONG){const e=this.consume(t);if(u.pong.hasSubscribers){u.pong.publish({payload:e})}if(this.#o>0){continue}else{A();return}}}else if(this.#a===i.PAYLOADLENGTH_16){if(this.#o<2){return A()}const e=this.consume(2);this.#c.payloadLength=e.readUInt16BE(0);this.#a=i.READ_DATA}else if(this.#a===i.PAYLOADLENGTH_64){if(this.#o<8){return A()}const e=this.consume(8);const t=e.readUInt32BE(0);if(t>2**31-1){B(this.ws,"Received payload length > 2^31 bytes.");return}const r=e.readUInt32BE(4);this.#c.payloadLength=(t<<8)+r;this.#a=i.READ_DATA}else if(this.#a===i.READ_DATA){if(this.#o=this.#c.payloadLength){const A=this.consume(this.#c.payloadLength);this.#g.push(A);if(!this.#c.fragmented||this.#c.fin&&this.#c.opcode===s.CONTINUATION){const A=Buffer.concat(this.#g);h(this.ws,this.#c.originalOpcode,A);this.#c={};this.#g.length=0}this.#a=i.INFO}}if(this.#o>0){continue}else{A();break}}}consume(A){if(A>this.#o){return null}else if(A===0){return a}if(this.#s[0].length===A){this.#o-=this.#s[0].length;return this.#s.shift()}const e=Buffer.allocUnsafe(A);let t=0;while(t!==A){const r=this.#s[0];const{length:n}=r;if(n+t===A){e.set(this.#s.shift(),t);break}else if(n+t>A){e.set(r.subarray(0,A-t),t);this.#s[0]=r.subarray(A-t);break}else{e.set(this.#s.shift(),t);t+=r.length}}this.#o-=A;return e}parseCloseBody(A,e){let t;if(e.length>=2){t=e.readUInt16BE(0)}if(A){if(!Q(t)){return null}return{code:t}}let r=e.subarray(2);if(r[0]===239&&r[1]===187&&r[2]===191){r=r.subarray(3)}if(t!==undefined&&!Q(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}}A.exports={ByteParser:ByteParser}},7069:A=>{"use strict";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")}},9490:(A,e,t)=>{"use strict";const{kReadyState:r,kController:n,kResponse:i,kBinaryType:s,kWebSocketURL:o}=t(7069);const{states:a,opcodes:c}=t(3475);const{MessageEvent:g,ErrorEvent:E}=t(5261);function isEstablished(A){return A[r]===a.OPEN}function isClosing(A){return A[r]===a.CLOSING}function isClosed(A){return A[r]===a.CLOSED}function fireEvent(A,e,t=Event,r){const n=new t(A,r);e.dispatchEvent(n)}function websocketMessageReceived(A,e,t){if(A[r]!==a.OPEN){return}let n;if(e===c.TEXT){try{n=new TextDecoder("utf-8",{fatal:true}).decode(t)}catch{failWebsocketConnection(A,"Received invalid UTF-8 in text frame.");return}}else if(e===c.BINARY){if(A[s]==="blob"){n=new Blob([t])}else{n=new Uint8Array(t).buffer}}fireEvent("message",A,g,{origin:A[o].origin,data:n})}function isValidSubprotocol(A){if(A.length===0){return false}for(const e of A){const A=e.charCodeAt(0);if(A<33||A>126||e==="("||e===")"||e==="<"||e===">"||e==="@"||e===","||e===";"||e===":"||e==="\\"||e==='"'||e==="/"||e==="["||e==="]"||e==="?"||e==="="||e==="{"||e==="}"||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,e){const{[n]:t,[i]:r}=A;t.abort();if(r?.socket&&!r.socket.destroyed){r.socket.destroy()}if(e){fireEvent("error",A,E,{error:new Error(e)})}}A.exports={isEstablished:isEstablished,isClosing:isClosing,isClosed:isClosed,fireEvent:fireEvent,isValidSubprotocol:isValidSubprotocol,isValidStatusCode:isValidStatusCode,failWebsocketConnection:failWebsocketConnection,websocketMessageReceived:websocketMessageReceived}},7523:(A,e,t)=>{"use strict";const{webidl:r}=t(4161);const{DOMException:n}=t(6598);const{URLSerializer:i}=t(1353);const{getGlobalOrigin:s}=t(5730);const{staticPropertyDescriptors:o,states:a,opcodes:c,emptyBuffer:g}=t(3475);const{kWebSocketURL:E,kReadyState:l,kController:Q,kBinaryType:B,kResponse:h,kSentClose:C,kByteParser:u}=t(7069);const{isEstablished:I,isClosing:d,isValidSubprotocol:p,failWebsocketConnection:y,fireEvent:D}=t(9490);const{establishWebSocketConnection:m}=t(5782);const{WebsocketFrameSend:w}=t(8485);const{ByteParser:R}=t(6771);const{kEnumerableProperty:b,isBlobLike:k}=t(8657);const{getGlobalDispatcher:F}=t(5230);const{types:S}=t(3837);let N=false;class WebSocket extends EventTarget{#E={open:null,error:null,close:null,message:null};#l=0;#Q="";#B="";constructor(A,e=[]){super();r.argumentLengthCheck(arguments,1,{header:"WebSocket constructor"});if(!N){N=true;process.emitWarning("WebSockets are experimental, expect them to change at any time.",{code:"UNDICI-WS"})}const t=r.converters["DOMString or sequence or WebSocketInit"](e);A=r.converters.USVString(A);e=t.protocols;const i=s();let o;try{o=new URL(A,i)}catch(A){throw new n(A,"SyntaxError")}if(o.protocol==="http:"){o.protocol="ws:"}else if(o.protocol==="https:"){o.protocol="wss:"}if(o.protocol!=="ws:"&&o.protocol!=="wss:"){throw new n(`Expected a ws: or wss: protocol, got ${o.protocol}`,"SyntaxError")}if(o.hash||o.href.endsWith("#")){throw new n("Got fragment","SyntaxError")}if(typeof e==="string"){e=[e]}if(e.length!==new Set(e.map((A=>A.toLowerCase()))).size){throw new n("Invalid Sec-WebSocket-Protocol value","SyntaxError")}if(e.length>0&&!e.every((A=>p(A)))){throw new n("Invalid Sec-WebSocket-Protocol value","SyntaxError")}this[E]=new URL(o.href);this[Q]=m(o,e,this,(A=>this.#h(A)),t);this[l]=WebSocket.CONNECTING;this[B]="blob"}close(A=undefined,e=undefined){r.brandCheck(this,WebSocket);if(A!==undefined){A=r.converters["unsigned short"](A,{clamp:true})}if(e!==undefined){e=r.converters.USVString(e)}if(A!==undefined){if(A!==1e3&&(A<3e3||A>4999)){throw new n("invalid code","InvalidAccessError")}}let t=0;if(e!==undefined){t=Buffer.byteLength(e);if(t>123){throw new n(`Reason must be less than 123 bytes; received ${t}`,"SyntaxError")}}if(this[l]===WebSocket.CLOSING||this[l]===WebSocket.CLOSED){}else if(!I(this)){y(this,"Connection was closed before it was established.");this[l]=WebSocket.CLOSING}else if(!d(this)){const r=new w;if(A!==undefined&&e===undefined){r.frameData=Buffer.allocUnsafe(2);r.frameData.writeUInt16BE(A,0)}else if(A!==undefined&&e!==undefined){r.frameData=Buffer.allocUnsafe(2+t);r.frameData.writeUInt16BE(A,0);r.frameData.write(e,2,"utf-8")}else{r.frameData=g}const n=this[h].socket;n.write(r.createFrame(c.CLOSE),(A=>{if(!A){this[C]=true}}));this[l]=a.CLOSING}else{this[l]=WebSocket.CLOSING}}send(A){r.brandCheck(this,WebSocket);r.argumentLengthCheck(arguments,1,{header:"WebSocket.send"});A=r.converters.WebSocketSendData(A);if(this[l]===WebSocket.CONNECTING){throw new n("Sent before connected.","InvalidStateError")}if(!I(this)||d(this)){return}const e=this[h].socket;if(typeof A==="string"){const t=Buffer.from(A);const r=new w(t);const n=r.createFrame(c.TEXT);this.#l+=t.byteLength;e.write(n,(()=>{this.#l-=t.byteLength}))}else if(S.isArrayBuffer(A)){const t=Buffer.from(A);const r=new w(t);const n=r.createFrame(c.BINARY);this.#l+=t.byteLength;e.write(n,(()=>{this.#l-=t.byteLength}))}else if(ArrayBuffer.isView(A)){const t=Buffer.from(A,A.byteOffset,A.byteLength);const r=new w(t);const n=r.createFrame(c.BINARY);this.#l+=t.byteLength;e.write(n,(()=>{this.#l-=t.byteLength}))}else if(k(A)){const t=new w;A.arrayBuffer().then((A=>{const r=Buffer.from(A);t.frameData=r;const n=t.createFrame(c.BINARY);this.#l+=r.byteLength;e.write(n,(()=>{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 i(this[E])}get extensions(){r.brandCheck(this,WebSocket);return this.#B}get protocol(){r.brandCheck(this,WebSocket);return this.#Q}get onopen(){r.brandCheck(this,WebSocket);return this.#E.open}set onopen(A){r.brandCheck(this,WebSocket);if(this.#E.open){this.removeEventListener("open",this.#E.open)}if(typeof A==="function"){this.#E.open=A;this.addEventListener("open",A)}else{this.#E.open=null}}get onerror(){r.brandCheck(this,WebSocket);return this.#E.error}set onerror(A){r.brandCheck(this,WebSocket);if(this.#E.error){this.removeEventListener("error",this.#E.error)}if(typeof A==="function"){this.#E.error=A;this.addEventListener("error",A)}else{this.#E.error=null}}get onclose(){r.brandCheck(this,WebSocket);return this.#E.close}set onclose(A){r.brandCheck(this,WebSocket);if(this.#E.close){this.removeEventListener("close",this.#E.close)}if(typeof A==="function"){this.#E.close=A;this.addEventListener("close",A)}else{this.#E.close=null}}get onmessage(){r.brandCheck(this,WebSocket);return this.#E.message}set onmessage(A){r.brandCheck(this,WebSocket);if(this.#E.message){this.removeEventListener("message",this.#E.message)}if(typeof A==="function"){this.#E.message=A;this.addEventListener("message",A)}else{this.#E.message=null}}get binaryType(){r.brandCheck(this,WebSocket);return this[B]}set binaryType(A){r.brandCheck(this,WebSocket);if(A!=="blob"&&A!=="arraybuffer"){this[B]="blob"}else{this[B]=A}}#h(A){this[h]=A;const e=new R(this);e.on("drain",(function onParserDrain(){this.ws[h].socket.resume()}));A.socket.ws=this;this[u]=e;this[l]=a.OPEN;const t=A.headersList.get("sec-websocket-extensions");if(t!==null){this.#B=t}const r=A.headersList.get("sec-websocket-protocol");if(r!==null){this.#Q=r}D("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:o,OPEN:o,CLOSING:o,CLOSED:o,url:b,readyState:b,bufferedAmount:b,onopen:b,onerror:b,onclose:b,close:b,onmessage:b,binaryType:b,send:b,extensions:b,protocol:b,[Symbol.toStringTag]:{value:"WebSocket",writable:false,enumerable:false,configurable:true}});Object.defineProperties(WebSocket,{CONNECTING:o,OPEN:o,CLOSING:o,CLOSED:o});r.converters["sequence"]=r.sequenceConverter(r.converters.DOMString);r.converters["DOMString or sequence"]=function(A){if(r.util.Type(A)==="Object"&&Symbol.iterator in A){return r.converters["sequence"](A)}return r.converters.DOMString(A)};r.converters.WebSocketInit=r.dictionaryConverter([{key:"protocols",converter:r.converters["DOMString or sequence"],get defaultValue(){return[]}},{key:"dispatcher",converter:A=>A,get defaultValue(){return F()}},{key:"headers",converter:r.nullableConverter(r.converters.HeadersInit)}]);r.converters["DOMString or sequence or WebSocketInit"]=function(A){if(r.util.Type(A)==="Object"&&!(Symbol.iterator in A)){return r.converters.WebSocketInit(A)}return{protocols:r.converters["DOMString or sequence"](A)}};r.converters.WebSocketSendData=function(A){if(r.util.Type(A)==="Object"){if(k(A)){return r.converters.Blob(A,{strict:false})}if(ArrayBuffer.isView(A)||S.isAnyArrayBuffer(A)){return r.converters.BufferSource(A)}}return r.converters.USVString(A)};A.exports={WebSocket:WebSocket}},35:(A,e,t)=>{"use strict";Object.defineProperty(e,"__esModule",{value:true});Object.defineProperty(e,"v1",{enumerable:true,get:function(){return r.default}});Object.defineProperty(e,"v3",{enumerable:true,get:function(){return n.default}});Object.defineProperty(e,"v4",{enumerable:true,get:function(){return i.default}});Object.defineProperty(e,"v5",{enumerable:true,get:function(){return s.default}});Object.defineProperty(e,"NIL",{enumerable:true,get:function(){return o.default}});Object.defineProperty(e,"version",{enumerable:true,get:function(){return a.default}});Object.defineProperty(e,"validate",{enumerable:true,get:function(){return c.default}});Object.defineProperty(e,"stringify",{enumerable:true,get:function(){return g.default}});Object.defineProperty(e,"parse",{enumerable:true,get:function(){return E.default}});var r=_interopRequireDefault(t(520));var n=_interopRequireDefault(t(7085));var i=_interopRequireDefault(t(7123));var s=_interopRequireDefault(t(7037));var o=_interopRequireDefault(t(806));var a=_interopRequireDefault(t(6071));var c=_interopRequireDefault(t(5583));var g=_interopRequireDefault(t(1103));var E=_interopRequireDefault(t(208));function _interopRequireDefault(A){return A&&A.__esModule?A:{default:A}}},2992:(A,e,t)=>{"use strict";Object.defineProperty(e,"__esModule",{value:true});e["default"]=void 0;var r=_interopRequireDefault(t(6113));function _interopRequireDefault(A){return A&&A.__esModule?A:{default:A}}function md5(A){if(Array.isArray(A)){A=Buffer.from(A)}else if(typeof A==="string"){A=Buffer.from(A,"utf8")}return r.default.createHash("md5").update(A).digest()}var n=md5;e["default"]=n},806:(A,e)=>{"use strict";Object.defineProperty(e,"__esModule",{value:true});e["default"]=void 0;var t="00000000-0000-0000-0000-000000000000";e["default"]=t},208:(A,e,t)=>{"use strict";Object.defineProperty(e,"__esModule",{value:true});e["default"]=void 0;var r=_interopRequireDefault(t(5583));function _interopRequireDefault(A){return A&&A.__esModule?A:{default:A}}function parse(A){if(!(0,r.default)(A)){throw TypeError("Invalid UUID")}let e;const t=new Uint8Array(16);t[0]=(e=parseInt(A.slice(0,8),16))>>>24;t[1]=e>>>16&255;t[2]=e>>>8&255;t[3]=e&255;t[4]=(e=parseInt(A.slice(9,13),16))>>>8;t[5]=e&255;t[6]=(e=parseInt(A.slice(14,18),16))>>>8;t[7]=e&255;t[8]=(e=parseInt(A.slice(19,23),16))>>>8;t[9]=e&255;t[10]=(e=parseInt(A.slice(24,36),16))/1099511627776&255;t[11]=e/4294967296&255;t[12]=e>>>24&255;t[13]=e>>>16&255;t[14]=e>>>8&255;t[15]=e&255;return t}var n=parse;e["default"]=n},9072:(A,e)=>{"use strict";Object.defineProperty(e,"__esModule",{value:true});e["default"]=void 0;var t=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;e["default"]=t},7630:(A,e,t)=>{"use strict";Object.defineProperty(e,"__esModule",{value:true});e["default"]=rng;var r=_interopRequireDefault(t(6113));function _interopRequireDefault(A){return A&&A.__esModule?A:{default:A}}const n=new Uint8Array(256);let i=n.length;function rng(){if(i>n.length-16){r.default.randomFillSync(n);i=0}return n.slice(i,i+=16)}},5081:(A,e,t)=>{"use strict";Object.defineProperty(e,"__esModule",{value:true});e["default"]=void 0;var r=_interopRequireDefault(t(6113));function _interopRequireDefault(A){return A&&A.__esModule?A:{default:A}}function sha1(A){if(Array.isArray(A)){A=Buffer.from(A)}else if(typeof A==="string"){A=Buffer.from(A,"utf8")}return r.default.createHash("sha1").update(A).digest()}var n=sha1;e["default"]=n},1103:(A,e,t)=>{"use strict";Object.defineProperty(e,"__esModule",{value:true});e["default"]=void 0;var r=_interopRequireDefault(t(5583));function _interopRequireDefault(A){return A&&A.__esModule?A:{default:A}}const n=[];for(let A=0;A<256;++A){n.push((A+256).toString(16).substr(1))}function stringify(A,e=0){const t=(n[A[e+0]]+n[A[e+1]]+n[A[e+2]]+n[A[e+3]]+"-"+n[A[e+4]]+n[A[e+5]]+"-"+n[A[e+6]]+n[A[e+7]]+"-"+n[A[e+8]]+n[A[e+9]]+"-"+n[A[e+10]]+n[A[e+11]]+n[A[e+12]]+n[A[e+13]]+n[A[e+14]]+n[A[e+15]]).toLowerCase();if(!(0,r.default)(t)){throw TypeError("Stringified UUID is invalid")}return t}var i=stringify;e["default"]=i},520:(A,e,t)=>{"use strict";Object.defineProperty(e,"__esModule",{value:true});e["default"]=void 0;var r=_interopRequireDefault(t(7630));var n=_interopRequireDefault(t(1103));function _interopRequireDefault(A){return A&&A.__esModule?A:{default:A}}let i;let s;let o=0;let a=0;function v1(A,e,t){let c=e&&t||0;const g=e||new Array(16);A=A||{};let E=A.node||i;let l=A.clockseq!==undefined?A.clockseq:s;if(E==null||l==null){const e=A.random||(A.rng||r.default)();if(E==null){E=i=[e[0]|1,e[1],e[2],e[3],e[4],e[5]]}if(l==null){l=s=(e[6]<<8|e[7])&16383}}let Q=A.msecs!==undefined?A.msecs:Date.now();let B=A.nsecs!==undefined?A.nsecs:a+1;const h=Q-o+(B-a)/1e4;if(h<0&&A.clockseq===undefined){l=l+1&16383}if((h<0||Q>o)&&A.nsecs===undefined){B=0}if(B>=1e4){throw new Error("uuid.v1(): Can't create more than 10M uuids/sec")}o=Q;a=B;s=l;Q+=122192928e5;const C=((Q&268435455)*1e4+B)%4294967296;g[c++]=C>>>24&255;g[c++]=C>>>16&255;g[c++]=C>>>8&255;g[c++]=C&255;const u=Q/4294967296*1e4&268435455;g[c++]=u>>>8&255;g[c++]=u&255;g[c++]=u>>>24&15|16;g[c++]=u>>>16&255;g[c++]=l>>>8|128;g[c++]=l&255;for(let A=0;A<6;++A){g[c+A]=E[A]}return e||(0,n.default)(g)}var c=v1;e["default"]=c},7085:(A,e,t)=>{"use strict";Object.defineProperty(e,"__esModule",{value:true});e["default"]=void 0;var r=_interopRequireDefault(t(7802));var n=_interopRequireDefault(t(2992));function _interopRequireDefault(A){return A&&A.__esModule?A:{default:A}}const i=(0,r.default)("v3",48,n.default);var s=i;e["default"]=s},7802:(A,e,t)=>{"use strict";Object.defineProperty(e,"__esModule",{value:true});e["default"]=_default;e.URL=e.DNS=void 0;var r=_interopRequireDefault(t(1103));var n=_interopRequireDefault(t(208));function _interopRequireDefault(A){return A&&A.__esModule?A:{default:A}}function stringToBytes(A){A=unescape(encodeURIComponent(A));const e=[];for(let t=0;t{"use strict";Object.defineProperty(e,"__esModule",{value:true});e["default"]=void 0;var r=_interopRequireDefault(t(7630));var n=_interopRequireDefault(t(1103));function _interopRequireDefault(A){return A&&A.__esModule?A:{default:A}}function v4(A,e,t){A=A||{};const i=A.random||(A.rng||r.default)();i[6]=i[6]&15|64;i[8]=i[8]&63|128;if(e){t=t||0;for(let A=0;A<16;++A){e[t+A]=i[A]}return e}return(0,n.default)(i)}var i=v4;e["default"]=i},7037:(A,e,t)=>{"use strict";Object.defineProperty(e,"__esModule",{value:true});e["default"]=void 0;var r=_interopRequireDefault(t(7802));var n=_interopRequireDefault(t(5081));function _interopRequireDefault(A){return A&&A.__esModule?A:{default:A}}const i=(0,r.default)("v5",80,n.default);var s=i;e["default"]=s},5583:(A,e,t)=>{"use strict";Object.defineProperty(e,"__esModule",{value:true});e["default"]=void 0;var r=_interopRequireDefault(t(9072));function _interopRequireDefault(A){return A&&A.__esModule?A:{default:A}}function validate(A){return typeof A==="string"&&r.default.test(A)}var n=validate;e["default"]=n},6071:(A,e,t)=>{"use strict";Object.defineProperty(e,"__esModule",{value:true});e["default"]=void 0;var r=_interopRequireDefault(t(5583));function _interopRequireDefault(A){return A&&A.__esModule?A:{default:A}}function version(A){if(!(0,r.default)(A)){throw TypeError("Invalid UUID")}return parseInt(A.substr(14,1),16)}var n=version;e["default"]=n},645:A=>{A.exports=wrappy;function wrappy(A,e){if(A&&e)return wrappy(A)(e);if(typeof A!=="function")throw new TypeError("need wrapper function");Object.keys(A).forEach((function(e){wrapper[e]=A[e]}));return wrapper;function wrapper(){var e=new Array(arguments.length);for(var t=0;t{"use strict";A.exports=require("assert")},852:A=>{"use strict";A.exports=require("async_hooks")},4300:A=>{"use strict";A.exports=require("buffer")},6206:A=>{"use strict";A.exports=require("console")},6113:A=>{"use strict";A.exports=require("crypto")},7643:A=>{"use strict";A.exports=require("diagnostics_channel")},2361:A=>{"use strict";A.exports=require("events")},7147:A=>{"use strict";A.exports=require("fs")},3685:A=>{"use strict";A.exports=require("http")},5158:A=>{"use strict";A.exports=require("http2")},5687:A=>{"use strict";A.exports=require("https")},1808:A=>{"use strict";A.exports=require("net")},5673:A=>{"use strict";A.exports=require("node:events")},4492:A=>{"use strict";A.exports=require("node:stream")},7261:A=>{"use strict";A.exports=require("node:util")},2037:A=>{"use strict";A.exports=require("os")},1017:A=>{"use strict";A.exports=require("path")},4074:A=>{"use strict";A.exports=require("perf_hooks")},3477:A=>{"use strict";A.exports=require("querystring")},2781:A=>{"use strict";A.exports=require("stream")},5356:A=>{"use strict";A.exports=require("stream/web")},1576:A=>{"use strict";A.exports=require("string_decoder")},4404:A=>{"use strict";A.exports=require("tls")},7310:A=>{"use strict";A.exports=require("url")},3837:A=>{"use strict";A.exports=require("util")},9830:A=>{"use strict";A.exports=require("util/types")},1267:A=>{"use strict";A.exports=require("worker_threads")},9796:A=>{"use strict";A.exports=require("zlib")}};var e={};function __nccwpck_require__(t){var r=e[t];if(r!==undefined){return r.exports}var n=e[t]={exports:{}};var i=true;try{A[t].call(n.exports,n,n.exports,__nccwpck_require__);i=false}finally{if(i)delete e[t]}return n.exports}(()=>{__nccwpck_require__.n=A=>{var e=A&&A.__esModule?()=>A["default"]:()=>A;__nccwpck_require__.d(e,{a:e});return e}})();(()=>{__nccwpck_require__.d=(A,e)=>{for(var t in e){if(__nccwpck_require__.o(e,t)&&!__nccwpck_require__.o(A,t)){Object.defineProperty(A,t,{enumerable:true,get:e[t]})}}}})();(()=>{__nccwpck_require__.o=(A,e)=>Object.prototype.hasOwnProperty.call(A,e)})();(()=>{__nccwpck_require__.r=A=>{if(typeof Symbol!=="undefined"&&Symbol.toStringTag){Object.defineProperty(A,Symbol.toStringTag,{value:"Module"})}Object.defineProperty(A,"__esModule",{value:true})}})();if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var t={};(()=>{"use strict";__nccwpck_require__.r(t);var A=__nccwpck_require__(5049);var e=__nccwpck_require__(9050);var r=__nccwpck_require__.n(e);var n=__nccwpck_require__(8487);var i=__nccwpck_require__.n(n);var s=__nccwpck_require__(4237);var o=__nccwpck_require__.n(s);var a=undefined&&undefined.__awaiter||function(A,e,t,r){function adopt(A){return A instanceof t?A:new t((function(e){e(A)}))}return new(t||(t=Promise))((function(t,n){function fulfilled(A){try{step(r.next(A))}catch(A){n(A)}}function rejected(A){try{step(r["throw"](A))}catch(A){n(A)}}function step(A){A.done?t(A.value):adopt(A.value).then(fulfilled,rejected)}step((r=r.apply(A,e||[])).next())}))};const c={darwin:{updater:{bundle:"macos",ext:"app.tar.gz"},standalone:[{ext:"dmg",bundle:"dmg"}]},windows:{updater:{bundle:"msi",ext:"msi.zip"},standalone:[{ext:"msi",bundle:"msi"}]},linux:{updater:{bundle:"appimage",ext:"AppImage.tar.gz"},standalone:[{ext:"deb",bundle:"deb"},{ext:"AppImage",bundle:"appimage"}]}};const g=e.getInput("os");const E=e.getInput("arch");const l=e.getInput("target");const Q=e.getInput("profile");const B=`target/${l}/${Q}/bundle`;const h=".artifacts";const C=`Nexus-${g}-${E}`;const u=`Nexus-Updater-${g}-${E}`;const I=A.U();const globFiles=A=>a(void 0,void 0,void 0,(function*(){const e=yield n.create(A);return yield e.glob()}));const uploadUpdater=({bundle:A,ext:e})=>a(void 0,void 0,void 0,(function*(){const t=yield globFiles(`${B}/${A}/*.${e}*`);const r=t.find((A=>A.endsWith(e)));if(!r)return console.error(`updater path not found. ${t}`);const n=`${h}/${u}.${e}`;yield s.cp(r,n);yield s.cp(`${r}.sig`,`${n}.sig`);yield I.uploadArtifact(u,[n,`${n}.sig`],h)}));const uploadStandalone=({bundle:A,ext:e})=>a(void 0,void 0,void 0,(function*(){const t=yield globFiles(`${B}/${A}/*.${e}*`);const r=t.find((A=>A.endsWith(e)));if(!r)return console.error(`standalone path not found. ${t}`);const n=`${C}.${e}`;const i=`${h}/${n}`;yield s.cp(r,i,{recursive:true});yield I.uploadArtifact(n,[i],h)}));const run=()=>a(void 0,void 0,void 0,(function*(){yield s.mkdirP(h);const{updater:A,standalone:e}=c[g];yield uploadUpdater(A);for(const A of e)yield uploadStandalone(A)}));run()})();module.exports=t})(); \ No newline at end of file diff --git a/.github/actions/publish-artifacts/index.ts b/.github/actions/publish-artifacts/index.ts deleted file mode 100644 index 8509194..0000000 --- a/.github/actions/publish-artifacts/index.ts +++ /dev/null @@ -1,101 +0,0 @@ -import * as artifact from '@actions/artifact'; -import * as core from '@actions/core'; -import * as glob from '@actions/glob'; -import * as io from '@actions/io'; - -// script to build tauri bundles without pain - -type OS = 'darwin' | 'windows' | 'linux'; -type Arch = 'x64' | 'arm64'; // 'aarch64'; -// i could type this with tauri's config but idrc -type TargetConfig = { bundle: string; ext: string }; -type BuildTarget = { - updater: TargetConfig; - standalone: Array; -}; - -const OS_TARGETS = { - darwin: { - updater: { - bundle: 'macos', - ext: 'app.tar.gz' - }, - standalone: [{ ext: 'dmg', bundle: 'dmg' }] - }, - windows: { - updater: { - bundle: 'msi', - ext: 'msi.zip' - }, - standalone: [{ ext: 'msi', bundle: 'msi' }] - }, - linux: { - updater: { - bundle: 'appimage', - ext: 'AppImage.tar.gz' - }, - standalone: [ - { ext: 'deb', bundle: 'deb' }, - { ext: 'AppImage', bundle: 'appimage' } - ] - } -} satisfies Record; - -const OS: OS = core.getInput('os') as any; -const ARCH: Arch = core.getInput('arch') as any; -const TARGET = core.getInput('target'); -const PROFILE = core.getInput('profile'); - -const BUNDLE_DIR = `target/${TARGET}/${PROFILE}/bundle`; -const ARTIFACTS_DIR = '.artifacts'; -const ARTIFACT_BASE = `Nexus-${OS}-${ARCH}`; -const UPDATER_ARTIFACT_NAME = `Nexus-Updater-${OS}-${ARCH}`; - -const client = artifact.create(); - -// globby glob globber :3 -const globFiles = async (pattern: string) => { - const globber = await glob.create(pattern); - return await globber.glob(); -}; - -const uploadUpdater = async ({ bundle, ext }: TargetConfig) => { - const files = await globFiles(`${BUNDLE_DIR}/${bundle}/*.${ext}*`); - const updaterPath = files.find((f) => f.endsWith(ext)); - - if (!updaterPath) return console.error(`updater path not found. ${files}`); - - const artifactPath = `${ARTIFACTS_DIR}/${UPDATER_ARTIFACT_NAME}.${ext}`; - - await io.cp(updaterPath, artifactPath); - await io.cp(`${updaterPath}.sig`, `${artifactPath}.sig`); - - await client.uploadArtifact( - UPDATER_ARTIFACT_NAME, - [artifactPath, `${artifactPath}.sig`], - ARTIFACTS_DIR - ); -}; - -const uploadStandalone = async ({ bundle, ext }: TargetConfig) => { - const files = await globFiles(`${BUNDLE_DIR}/${bundle}/*.${ext}*`); - const standalonePath = files.find((f) => f.endsWith(ext)); - - if (!standalonePath) return console.error(`standalone path not found. ${files}`); - - const artifactName = `${ARTIFACT_BASE}.${ext}`; - const artifactPath = `${ARTIFACTS_DIR}/${artifactName}`; - - await io.cp(standalonePath, artifactPath, { recursive: true }); - await client.uploadArtifact(artifactName, [artifactPath], ARTIFACTS_DIR); -}; - -const run = async () => { - await io.mkdirP(ARTIFACTS_DIR); - const { updater, standalone } = OS_TARGETS[OS]; - - await uploadUpdater(updater); - for (const f of standalone) await uploadStandalone(f); -}; - -run(); diff --git a/.github/actions/publish-artifacts/package.json b/.github/actions/publish-artifacts/package.json deleted file mode 100644 index 3a258ac..0000000 --- a/.github/actions/publish-artifacts/package.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "@polyfrost/publish-artifacts-action", - "private": true, - "scripts": { - "_build_comment": "there has to be a better way to do this lol", - "build": "ncc build index.ts --minify" - }, - "dependencies": { - "@actions/artifact": "^1.1.2", - "@actions/core": "^1.10.1", - "@actions/github": "^6.0.0", - "@actions/glob": "^0.4.0", - "@actions/io": "^1.1.3" - }, - "devDependencies": { - "@vercel/ncc": "^0.38.1" - } -} diff --git a/.github/actions/publish-artifacts/tsconfig.json b/.github/actions/publish-artifacts/tsconfig.json deleted file mode 100644 index 8b4fecf..0000000 --- a/.github/actions/publish-artifacts/tsconfig.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "compilerOptions": { - "target": "ES2015", - "module": "ESNext", - "moduleResolution": "Node", - "esModuleInterop": true, - "forceConsistentCasingInFileNames": true, - "strict": true, - "skipLibCheck": true - } -} diff --git a/.github/actions/setup-pnpm/action.yml b/.github/actions/setup-pnpm/action.yml index 97f462e..9a2ced5 100644 --- a/.github/actions/setup-pnpm/action.yml +++ b/.github/actions/setup-pnpm/action.yml @@ -1,28 +1,28 @@ name: Setup Node.js, pnpm and dependencies description: Setup Node.js, pnpm and dependencies inputs: - token: - description: Github token - required: false - default: '' + token: + description: Github token + required: false + default: '' runs: - using: 'composite' - steps: - - name: Install pnpm - uses: pnpm/action-setup@v2 - with: - version: 8.x.x + using: composite + steps: + - name: Install pnpm + uses: pnpm/action-setup@v2 + with: + version: latest - - name: Install Node.js - uses: actions/setup-node@v3 - with: - token: ${{ inputs.token }} - check-latest: true - node-version-file: '.nvmrc' + - name: Install Node.js + uses: actions/setup-node@v3 + with: + token: ${{ inputs.token }} + check-latest: true + node-version-file: .nvmrc - - name: Install pnpm deps - shell: ${{ runner.os == 'Windows' && 'powershell' || 'bash' }} - env: - NODE_ENV: debug - GITHUB_TOKEN: ${{ inputs.token }} - run: pnpm i --frozen-lockfile + - name: Install pnpm deps + shell: ${{ runner.os == 'Windows' && 'powershell' || 'bash' }} + env: + NODE_ENV: debug + GITHUB_TOKEN: ${{ inputs.token }} + run: pnpm i --frozen-lockfile diff --git a/.github/actions/setup-rust/action.yaml b/.github/actions/setup-rust/action.yaml index 8cf9997..67c0c8d 100644 --- a/.github/actions/setup-rust/action.yaml +++ b/.github/actions/setup-rust/action.yaml @@ -1,52 +1,52 @@ name: Setup Rust description: Setup Rust inputs: - target: - description: toolchain target triple - required: false - save-cache: - description: Whether to save the Rust cache - required: false - default: 'false' + target: + description: toolchain target triple + required: false + save-cache: + description: Whether to save the Rust cache + required: false + default: 'false' runs: - using: 'composite' - steps: - - name: Install Rust - id: toolchain - uses: dtolnay/rust-toolchain@stable - with: - target: ${{ inputs.target }} - toolchain: stable - components: clippy, rustfmt + using: composite + steps: + - name: Install Rust + id: toolchain + uses: dtolnay/rust-toolchain@stable + with: + target: ${{ inputs.target }} + toolchain: stable + components: clippy, rustfmt - - name: Cache Rust Dependencies - uses: Swatinem/rust-cache@v2 - with: - save-if: ${{ inputs.save-cache }} - prefix-key: 'v0-rust-deps' - shared-key: ${{ inputs.target }} + - name: Cache Rust Dependencies + uses: Swatinem/rust-cache@v2 + with: + save-if: ${{ inputs.save-cache }} + prefix-key: v0-rust-deps + shared-key: ${{ inputs.target }} - - name: Cargo config.toml - shell: bash - run: echo '{}' | npx -y mustache - .cargo/config.toml.mustache .cargo/config.toml + - name: Cargo config.toml + shell: bash + run: echo '{}' | npx -y mustache - .cargo/config.toml.mustache .cargo/config.toml - - name: Restore cached Prisma codegen - id: cache-prisma-restore - uses: actions/cache/restore@v3 - with: - key: prisma-1-${{ runner.os }}-${{ hashFiles('./core/prisma/*', './Cargo.toml') }} - path: crates/prisma/src/**/*.rs + - name: Restore cached Prisma codegen + id: cache-prisma-restore + uses: actions/cache/restore@v3 + with: + key: prisma-1-${{ runner.os }}-${{ hashFiles('./core/prisma/*', './Cargo.toml') }} + path: crates/prisma/src/**/*.rs - - name: Generate Prisma client - working-directory: core - if: ${{ steps.cache-prisma-restore.outputs.cache-hit != 'true' }} - shell: bash - run: cargo prisma generate + - name: Generate Prisma client + working-directory: core + if: ${{ steps.cache-prisma-restore.outputs.cache-hit != 'true' }} + shell: bash + run: cargo prisma generate - - name: Save Prisma codegen - id: cache-prisma-save - if: ${{ inputs.save-cache == 'true' }} - uses: actions/cache/save@v3 - with: - key: ${{ steps.cache-prisma-restore.outputs.cache-primary-key }} - path: crates/prisma/src/**/*.rs + - name: Save Prisma codegen + id: cache-prisma-save + if: ${{ inputs.save-cache == 'true' }} + uses: actions/cache/save@v3 + with: + key: ${{ steps.cache-prisma-restore.outputs.cache-primary-key }} + path: crates/prisma/src/**/*.rs diff --git a/.github/actions/setup-system/action.yml b/.github/actions/setup-system/action.yml index 3b33c82..e078158 100644 --- a/.github/actions/setup-system/action.yml +++ b/.github/actions/setup-system/action.yml @@ -1,36 +1,36 @@ name: Setup System and Rust description: Setup System and Rust inputs: - token: - description: Github token - required: false - default: '' - target: - description: toolchain target triple - required: false - setup-arg: - description: Argument for the system setup script - required: false - default: '' - save-cache: - description: Whether to save the System cache - required: false - default: 'false' + token: + description: Github token + required: false + default: '' + target: + description: toolchain target triple + required: false + setup-arg: + description: Argument for the system setup script + required: false + default: '' + save-cache: + description: Whether to save the System cache + required: false + default: 'false' runs: - using: 'composite' - steps: - - name: Setup Rust and Dependencies - uses: ./.github/actions/setup-rust - with: - target: ${{ inputs.target }} - save-cache: ${{ inputs.save-cache }} + using: composite + steps: + - name: Setup Rust and Dependencies + uses: ./.github/actions/setup-rust + with: + target: ${{ inputs.target }} + save-cache: ${{ inputs.save-cache }} - - name: Run setup.sh script - shell: bash - if: ${{ runner.os == 'Linux' || runner.os == 'macOS' }} - run: ./.github/scripts/setup.sh ${{ inputs.setup-arg }} + - name: Run setup.sh script + shell: bash + if: ${{ runner.os == 'Linux' || runner.os == 'macOS' }} + run: ./.github/scripts/setup.sh ${{ inputs.setup-arg }} - - name: Run setup.ps1 script - shell: powershell - if: ${{ runner.os == 'Windows' }} - run: ./.github/scripts/setup.ps1 + - name: Run setup.ps1 script + shell: powershell + if: ${{ runner.os == 'Windows' }} + run: ./.github/scripts/setup.ps1 diff --git a/.github/workflows/cache-factory.yaml b/.github/workflows/cache-factory.yaml index d2535ab..04fa3d1 100644 --- a/.github/workflows/cache-factory.yaml +++ b/.github/workflows/cache-factory.yaml @@ -4,74 +4,74 @@ name: Cache Factory on: - push: - paths: - - 'Cargo.lock' - - './scripts/setup.sh' - - './scripts/setup.ps1' - - '.github/workflows/cache-factory.yaml' - - '.github/actions/**/*.yml' - - '.github/actions/**/*.yaml' - - '**/build.rs' - - 'core/prisma/**' - branches: - - main + push: + paths: + - Cargo.lock + - ./scripts/setup.sh + - ./scripts/setup.ps1 + - .github/workflows/cache-factory.yaml + - '.github/actions/**/*.yml' + - '.github/actions/**/*.yaml' + - '**/build.rs' + - 'core/prisma/**' + branches: + - main # Cancel previous runs of the same workflow on the same branch. concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true jobs: - make_cache: - strategy: - fail-fast: true - matrix: - settings: - - host: macos-latest - target: x86_64-apple-darwin - - host: macos-latest - target: aarch64-apple-darwin - - host: windows-latest - target: x86_64-pc-windows-msvc - - host: ubuntu-20.04 - target: x86_64-unknown-linux-gnu - name: 'Make Cache' - runs-on: ${{ matrix.settings.host }} - steps: - - name: Maximize build space - if: ${{ runner.os == 'Linux' }} - uses: easimon/maximize-build-space@master - with: - swap-size-mb: 3072 - root-reserve-mb: 6144 - remove-dotnet: 'true' - remove-codeql: 'true' - remove-haskell: 'true' - remove-docker-images: 'true' + make_cache: + strategy: + fail-fast: true + matrix: + settings: + - host: macos-latest + target: x86_64-apple-darwin + - host: macos-latest + target: aarch64-apple-darwin + - host: windows-latest + target: x86_64-pc-windows-msvc + - host: ubuntu-20.04 + target: x86_64-unknown-linux-gnu + name: Make Cache + runs-on: ${{ matrix.settings.host }} + steps: + - name: Maximize build space + if: ${{ runner.os == 'Linux' }} + uses: easimon/maximize-build-space@master + with: + swap-size-mb: 3072 + root-reserve-mb: 6144 + remove-dotnet: 'true' + remove-codeql: 'true' + remove-haskell: 'true' + remove-docker-images: 'true' - - name: Checkout repository - uses: actions/checkout@v3 + - name: Checkout repository + uses: actions/checkout@v3 - - name: Symlink target to C:\ - if: ${{ runner.os == 'Windows' }} - shell: powershell - run: | - New-Item -ItemType Directory -Force -Path C:\nexus_target - New-Item -Path target -ItemType Junction -Value C:\nexus_target + - name: Symlink target to C:\ + if: ${{ runner.os == 'Windows' }} + shell: powershell + run: | + New-Item -ItemType Directory -Force -Path C:\nexus_target + New-Item -Path target -ItemType Junction -Value C:\nexus_target - - name: Setup System and Rust - uses: ./.github/actions/setup-system - with: - token: ${{ secrets.GITHUB_TOKEN }} - target: ${{ matrix.settings.target }} - save-cache: 'true' + - name: Setup System and Rust + uses: ./.github/actions/setup-system + with: + token: ${{ secrets.GITHUB_TOKEN }} + target: ${{ matrix.settings.target }} + save-cache: 'true' - - name: Clippy - run: cargo clippy --workspace --all-features --target ${{ matrix.settings.target }} + - name: Clippy + run: cargo clippy --workspace --all-features --target ${{ matrix.settings.target }} - - name: Compile (debug) - run: cargo test --workspace --all-features --no-run --target ${{ matrix.settings.target }} + - name: Compile (debug) + run: cargo test --workspace --all-features --no-run --target ${{ matrix.settings.target }} - - name: Compile (release) - run: cargo test --workspace --all-features --no-run --release --target ${{ matrix.settings.target }} + - name: Compile (release) + run: cargo test --workspace --all-features --no-run --release --target ${{ matrix.settings.target }} diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 4fbdbcd..5eac3bc 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -1,102 +1,102 @@ name: Release on: - workflow_dispatch: + workflow_dispatch: # a lot of this isnt necessary but i'm designing ahead for tauri integration jobs: - desktop-main: - strategy: - matrix: - settings: - - host: macos-latest - target: x86_64-apple-darwin - bundles: app,dmg - os: darwin - arch: x86_64 - - host: macos-latest - target: aarch64-apple-darwin - bundles: app,dmg - os: darwin - arch: aarch64 - - host: windows-latest - target: x86_64-pc-windows-msvc - bundles: msi - os: windows - arch: x86_64 - - host: ubuntu-20.04 - target: x86_64-unknown-linux-gnu - bundles: deb,appimage - os: linux - arch: x86_64 - name: Desktop - Main ${{ matrix.settings.target }} - runs-on: ${{ matrix.settings.host }} - steps: - - name: Maximize build space - if: ${{ runner.os == 'Linux' }} - uses: easimon/maximize-build-space@master - with: - swap-size-mb: 3072 - root-reserve-mb: 6144 - remove-dotnet: 'true' - remove-codeql: 'true' - remove-haskell: 'true' - remove-docker-images: 'true' + desktop-main: + strategy: + matrix: + settings: + - host: macos-latest + target: x86_64-apple-darwin + bundles: app,dmg + os: darwin + arch: x86_64 + - host: macos-latest + target: aarch64-apple-darwin + bundles: app,dmg + os: darwin + arch: aarch64 + - host: windows-latest + target: x86_64-pc-windows-msvc + bundles: msi + os: windows + arch: x86_64 + - host: ubuntu-20.04 + target: x86_64-unknown-linux-gnu + bundles: deb,appimage + os: linux + arch: x86_64 + name: Desktop - Main ${{ matrix.settings.target }} + runs-on: ${{ matrix.settings.host }} + steps: + - name: Maximize build space + if: ${{ runner.os == 'Linux' }} + uses: easimon/maximize-build-space@master + with: + swap-size-mb: 3072 + root-reserve-mb: 6144 + remove-dotnet: 'true' + remove-codeql: 'true' + remove-haskell: 'true' + remove-docker-images: 'true' - - name: Checkout repository - uses: actions/checkout@v3 + - name: Checkout repository + uses: actions/checkout@v3 - - name: Symlink target to C:\ - if: ${{ runner.os == 'Windows' }} - shell: powershell - run: | - New-Item -ItemType Directory -Force -Path C:\nexus_target - New-Item -Path target -ItemType Junction -Value C:\nexus_target + - name: Symlink target to C:\ + if: ${{ runner.os == 'Windows' }} + shell: powershell + run: | + New-Item -ItemType Directory -Force -Path C:\nexus_target + New-Item -Path target -ItemType Junction -Value C:\nexus_target - - name: Remove 32-bit libs - if: ${{ runner.os == 'Linux' }} - run: | - dpkg -l | grep i386 - sudo apt-get purge --allow-remove-essential libc6-i386 ".*:i386" - sudo dpkg --remove-architecture i386 + - name: Remove 32-bit libs + if: ${{ runner.os == 'Linux' }} + run: | + dpkg -l | grep i386 + sudo apt-get purge --allow-remove-essential libc6-i386 ".*:i386" + sudo dpkg --remove-architecture i386 - - name: Setup System and Rust - uses: ./.github/actions/setup-system - with: - token: ${{ secrets.GITHUB_TOKEN }} - target: ${{ matrix.settings.target }} + - name: Setup System and Rust + uses: ./.github/actions/setup-system + with: + token: ${{ secrets.GITHUB_TOKEN }} + target: ${{ matrix.settings.target }} - - name: Setup Node.js, pnpm and dependencies - uses: ./.github/actions/setup-pnpm - with: - token: ${{ secrets.GITHUB_TOKEN }} + - name: Setup Node.js, pnpm and dependencies + uses: ./.github/actions/setup-pnpm + with: + token: ${{ secrets.GITHUB_TOKEN }} - - name: Build - run: | - pnpm tauri build --ci -v --target ${{ matrix.settings.target }} --bundles ${{ matrix.settings.bundles }},updater + - name: Build + run: | + pnpm tauri build --ci -v --target ${{ matrix.settings.target }} --bundles ${{ matrix.settings.bundles }},updater - # this doesnt work rn so just uhh dont use it lol - - name: Publish Artifacts - uses: ./.github/actions/publish-artifacts - with: - os: ${{ matrix.settings.os }} - arch: ${{ matrix.settings.arch }} - target: ${{ matrix.settings.target }} - profile: release + # this doesnt work rn so just uhh dont use it lol + - name: Publish Artifacts + uses: ./.github/actions/publish-artifacts + with: + os: ${{ matrix.settings.os }} + arch: ${{ matrix.settings.arch }} + target: ${{ matrix.settings.target }} + profile: release - release: - if: startsWith(github.ref, 'refs/tags/') - runs-on: ubuntu-latest - name: Create Release - needs: desktop-main - permissions: - contents: write - steps: - - name: Download artifacts - uses: actions/download-artifact@v3 + release: + if: startsWith(github.ref, 'refs/tags/') + runs-on: ubuntu-latest + name: Create Release + needs: desktop-main + permissions: + contents: write + steps: + - name: Download artifacts + uses: actions/download-artifact@v3 - - name: Create Release - uses: softprops/action-gh-release@v1 - with: - draft: true - files: '*/**' + - name: Create Release + uses: softprops/action-gh-release@v1 + with: + draft: true + files: '*/**' diff --git a/.github/workflows/testing.yaml b/.github/workflows/testing.yaml index b92345c..6de44ee 100644 --- a/.github/workflows/testing.yaml +++ b/.github/workflows/testing.yaml @@ -1,142 +1,142 @@ name: CI on: - pull_request: - merge_group: + # pull_request: + merge_group: # Cancel previous runs of the same workflow on the same branch. concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true jobs: - typescript: - name: TypeScript - runs-on: ubuntu-20.04 - steps: - - name: Checkout repository - uses: actions/checkout@v3 - - - name: Setup Node.js, pnpm and dependencies - uses: ./.github/actions/setup-pnpm - with: - token: ${{ secrets.GITHUB_TOKEN }} - - - name: Perform typechecks - run: pnpm typecheck - - eslint: - name: ESLint - runs-on: ubuntu-20.04 - steps: - - name: Checkout repository - uses: actions/checkout@v3 - - - name: Setup Node.js, pnpm and dependencies - uses: ./.github/actions/setup-pnpm - with: - token: ${{ secrets.GITHUB_TOKEN }} - - - name: Perform linting - run: pnpm lint - - rustfmt: - name: Rust Formatting - runs-on: ubuntu-20.04 - steps: - - name: Maximize build space - if: ${{ runner.os == 'Linux' }} - uses: easimon/maximize-build-space@master - with: - swap-size-mb: 3072 - root-reserve-mb: 6144 - remove-dotnet: 'true' - remove-codeql: 'true' - remove-haskell: 'true' - remove-docker-images: 'true' - - - name: Checkout repository - uses: actions/checkout@v3 - - - name: Symlink target to C:\ - if: ${{ runner.os == 'Windows' }} - shell: powershell - run: | - New-Item -ItemType Directory -Force -Path C:\nexus_target - New-Item -Path target -ItemType Junction -Value C:\nexus_target - - - uses: dorny/paths-filter@v2 - id: filter - with: - filters: | - changes: - - 'apps/cli/*/**' - - 'apps/desktop/crates/*/**' - - 'apps/desktop/src-tauri/*/**' - - 'core/**' - - 'crates/*/**' - - 'Cargo.toml' - - 'Cargo.lock' - - - name: Setup Rust - if: steps.filter.outputs.changes == 'true' - uses: ./.github/actions/setup-rust - - - name: Run rustfmt - if: steps.filter.outputs.changes == 'true' - run: cargo fmt --all -- --check - - clippy: - name: Clippy (${{ matrix.platform }}) - runs-on: ${{ matrix.platform }} - strategy: - matrix: - platform: [ubuntu-20.04, macos-latest, windows-latest] - steps: - - name: Maximize build space - if: ${{ runner.os == 'Linux' }} - uses: easimon/maximize-build-space@master - with: - swap-size-mb: 3072 - root-reserve-mb: 6144 - remove-dotnet: 'true' - remove-codeql: 'true' - remove-haskell: 'true' - remove-docker-images: 'true' - - - name: Checkout repository - uses: actions/checkout@v3 - - - name: Symlink target to C:\ - if: ${{ runner.os == 'Windows' }} - shell: powershell - run: | - New-Item -ItemType Directory -Force -Path C:\nexus_target - New-Item -Path target -ItemType Junction -Value C:\nexus_target - - - uses: dorny/paths-filter@v2 - id: filter - with: - # this is also designing ahead for tauri - filters: | - changes: - - 'apps/cli/*/**' - - 'apps/desktop/crates/*/**' - - 'apps/desktop/src-tauri/*/**' - - 'core/**' - - 'crates/*/**' - - 'Cargo.toml' - - 'Cargo.lock' - - - name: Setup System and Rust - if: steps.filter.outputs.changes == 'true' - uses: ./.github/actions/setup-system - with: - token: ${{ secrets.GITHUB_TOKEN }} - - - name: Run Clippy - if: steps.filter.outputs.changes == 'true' - uses: actions-rs/clippy-check@v1 - with: - args: --workspace --all-features - token: ${{ secrets.GITHUB_TOKEN }} + typescript: + name: TypeScript + runs-on: ubuntu-20.04 + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + - name: Setup Node.js, pnpm and dependencies + uses: ./.github/actions/setup-pnpm + with: + token: ${{ secrets.GITHUB_TOKEN }} + + - name: Perform builds + run: pnpm build + + eslint: + name: ESLint + runs-on: ubuntu-20.04 + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + - name: Setup Node.js, pnpm and dependencies + uses: ./.github/actions/setup-pnpm + with: + token: ${{ secrets.GITHUB_TOKEN }} + + - name: Perform linting + run: pnpm lint + + rustfmt: + name: Rust Formatting + runs-on: ubuntu-20.04 + steps: + - name: Maximize build space + if: ${{ runner.os == 'Linux' }} + uses: easimon/maximize-build-space@master + with: + swap-size-mb: 3072 + root-reserve-mb: 6144 + remove-dotnet: 'true' + remove-codeql: 'true' + remove-haskell: 'true' + remove-docker-images: 'true' + + - name: Checkout repository + uses: actions/checkout@v3 + + - name: Symlink target to C:\ + if: ${{ runner.os == 'Windows' }} + shell: powershell + run: | + New-Item -ItemType Directory -Force -Path C:\nexus_target + New-Item -Path target -ItemType Junction -Value C:\nexus_target + + - uses: dorny/paths-filter@v2 + id: filter + with: + filters: | + changes: + - 'apps/cli/*/**' + - 'apps/desktop/crates/*/**' + - 'apps/desktop/src-tauri/*/**' + - 'core/**' + - 'crates/*/**' + - 'Cargo.toml' + - 'Cargo.lock' + + - name: Setup Rust + if: steps.filter.outputs.changes == 'true' + uses: ./.github/actions/setup-rust + + - name: Run rustfmt + if: steps.filter.outputs.changes == 'true' + run: cargo fmt --all -- --check + + clippy: + name: Clippy (${{ matrix.platform }}) + runs-on: ${{ matrix.platform }} + strategy: + matrix: + platform: [ubuntu-20.04, macos-latest, windows-latest] + steps: + - name: Maximize build space + if: ${{ runner.os == 'Linux' }} + uses: easimon/maximize-build-space@master + with: + swap-size-mb: 3072 + root-reserve-mb: 6144 + remove-dotnet: 'true' + remove-codeql: 'true' + remove-haskell: 'true' + remove-docker-images: 'true' + + - name: Checkout repository + uses: actions/checkout@v3 + + - name: Symlink target to C:\ + if: ${{ runner.os == 'Windows' }} + shell: powershell + run: | + New-Item -ItemType Directory -Force -Path C:\nexus_target + New-Item -Path target -ItemType Junction -Value C:\nexus_target + + - uses: dorny/paths-filter@v2 + id: filter + with: + # this is also designing ahead for tauri + filters: | + changes: + - 'apps/cli/*/**' + - 'apps/desktop/crates/*/**' + - 'apps/desktop/src-tauri/*/**' + - 'core/**' + - 'crates/*/**' + - 'Cargo.toml' + - 'Cargo.lock' + + - name: Setup System and Rust + if: steps.filter.outputs.changes == 'true' + uses: ./.github/actions/setup-system + with: + token: ${{ secrets.GITHUB_TOKEN }} + + - name: Run Clippy + if: steps.filter.outputs.changes == 'true' + uses: actions-rs/clippy-check@v1 + with: + args: --workspace --all-features + token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.gitignore b/.gitignore index 6efa02b..d403a0c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,5 @@ -# Created by https://www.toptal.com/developers/gitignore/api/git,java,node,rust,yarn,astro,linux,macos,maven,swift,turbo,gradle,kotlin,nextjs,windows,intellij,forgegradle,intellij+all,intellij+iml,rust-analyzer,visualstudiocode,astro -# Edit at https://www.toptal.com/developers/gitignore?templates=git,java,node,rust,yarn,astro,linux,macos,maven,swift,turbo,gradle,kotlin,nextjs,windows,intellij,forgegradle,intellij+all,intellij+iml,rust-analyzer,visualstudiocode,astro +# Created by https://www.toptal.com/developers/gitignore/api/git,java,node,rust,yarn,astro,linux,macos,maven,swift,turbo,gradle,kotlin,nextjs,windows,intellij,forgegradle,intellij+all,intellij+iml,rust-analyzer,visualstudiocode +# Edit at https://www.toptal.com/developers/gitignore?templates=git,java,node,rust,yarn,astro,linux,macos,maven,swift,turbo,gradle,kotlin,nextjs,windows,intellij,forgegradle,intellij+all,intellij+iml,rust-analyzer,visualstudiocode ### Astro ### # Gitignore template for Astro projects @@ -724,8 +724,7 @@ gradle-app.setting # Java heap dump *.hprof -# End of https://www.toptal.com/developers/gitignore/api/git,java,node,rust,yarn,astro,linux,macos,maven,swift,turbo,gradle,kotlin,nextjs,windows,intellij,forgegradle,intellij+all,intellij+iml,rust-analyzer,visualstudiocode,astro -apps/.deps +# End of https://www.toptal.com/developers/gitignore/api/git,java,node,rust,yarn,astro,linux,macos,maven,swift,turbo,gradle,kotlin,nextjs,windows,intellij,forgegradle,intellij+all,intellij+iml,rust-analyzer,visualstudiocodeapps/.deps .cargo/config.toml .cargo/config .github/scripts/deps diff --git a/.nvmrc b/.nvmrc index 0828ab7..edf176c 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -v18 \ No newline at end of file +v18.17 diff --git a/.prettierignore b/.prettierignore deleted file mode 100644 index 4ad03a9..0000000 --- a/.prettierignore +++ /dev/null @@ -1,16 +0,0 @@ -# built product/cache -target/ -dist/ - -# just in case it tries to parse for some reason -*.rs - -# we plainly don't need a lockfile to look nice -pnpm-lock.yaml - -# Import order is important -apps/desktop/src/index.tsx - -# codegen from rspc -- not supposed to look nice -/packages/client/src/core.ts -apps/desktop/src/commands.ts diff --git a/.prettierrc.js b/.prettierrc.js deleted file mode 100644 index 5eaa8c7..0000000 --- a/.prettierrc.js +++ /dev/null @@ -1,19 +0,0 @@ -/** @type {import('prettier').Config} */ -module.exports = { - useTabs: true, - printWidth: 100, - singleQuote: true, - trailingComma: 'none', - bracketSameLine: false, - semi: true, - quoteProps: 'consistent', - importOrder: [ - '', - '^@polyfrost/(interface|client|ui)(/.*)?$', - '^~/', - '^\\.' - ], - importOrderParserPlugins: ['importAssertions', 'typescript', 'jsx'], - plugins: ['@ianvs/prettier-plugin-sort-imports', 'prettier-plugin-tailwindcss'], - tailwindConfig: './packages/ui/tailwind.config.js' -}; diff --git a/.rustfmt.toml b/.rustfmt.toml index 9c4c730..09008c0 100644 --- a/.rustfmt.toml +++ b/.rustfmt.toml @@ -9,4 +9,4 @@ edition = "2021" merge_derives = true use_try_shorthand = false use_field_init_shorthand = false -force_explicit_abi = true \ No newline at end of file +force_explicit_abi = true diff --git a/.vscode/extensions.json b/.vscode/extensions.json index 7ecfae2..ae7e3ec 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -5,6 +5,8 @@ "oscarbeaumont.rspc-vscode", "EditorConfig.EditorConfig", "prisma.prisma", - "bradlc.vscode-tailwindcss" + "bradlc.vscode-tailwindcss", + "dbaeumer.vscode-eslint", + "astro-build.astro-vscode" ] } diff --git a/.vscode/settings.json b/.vscode/settings.json index 4b3f49b..868a90e 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -18,7 +18,30 @@ "/packages/ctjs/types/*": true, "**/dist": true }, - "css.customData": [".vscode/tailwind.json"], + "eslint.experimental.useFlatConfig": true, + "prettier.enable": false, + "editor.formatOnSave": false, + "editor.codeActionsOnSave": { + "source.fixAll.eslint": "explicit", + "source.organizeImports": "never" + }, + "eslint.validate": [ + "javascript", + "javascriptreact", + "typescript", + "typescriptreact", + "vue", + "html", + "markdown", + "json", + "jsonc", + "yaml", + "astro", + "toml" + ], + "css.customData": [ + ".vscode/tailwind.json" + ], "eslint.lintTask.enable": true, "eslint.workingDirectories": [], "explorer.fileNesting.enabled": true, diff --git a/Cargo.toml b/Cargo.toml index 72e3e29..170480d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,11 +1,6 @@ [workspace] resolver = "2" -members = [ - "core", - "crates/*", - "apps/cli", - "apps/desktop/src-tauri" -] +members = ["core", "crates/*", "apps/cli", "apps/desktop/src-tauri"] [workspace.package] license = "AGPL-3.0-only" @@ -44,7 +39,9 @@ serde = { version = "1.0" } serde_json = { version = "1.0" } tracing = { git = "https://github.com/tokio-rs/tracing", rev = "29146260fb4615d271d2e899ad95a753bb42915e" } -tracing-subscriber = { git = "https://github.com/tokio-rs/tracing", rev = "29146260fb4615d271d2e899ad95a753bb42915e", features = ["env-filter"] } +tracing-subscriber = { git = "https://github.com/tokio-rs/tracing", rev = "29146260fb4615d271d2e899ad95a753bb42915e", features = [ + "env-filter", +] } tracing-appender = { git = "https://github.com/tokio-rs/tracing", rev = "29146260fb4615d271d2e899ad95a753bb42915e" } [patch.crates-io] diff --git a/apps/docs/package.json b/apps/docs/package.json new file mode 100644 index 0000000..da151b4 --- /dev/null +++ b/apps/docs/package.json @@ -0,0 +1,3 @@ +{ + "name": "@polyfrost/docs" +} diff --git a/apps/storybook/.storybook/main.ts b/apps/storybook/.storybook/main.ts index 9a50fb5..3087975 100644 --- a/apps/storybook/.storybook/main.ts +++ b/apps/storybook/.storybook/main.ts @@ -5,30 +5,30 @@ const config: StorybookConfig = { { directory: '../../../packages/ui/src/**', titlePrefix: 'UI', - files: '*.stories.*' + files: '*.stories.*', }, { directory: '../../../interface/app/**', titlePrefix: 'Interface', - files: '*.stories.*' - } + files: '*.stories.*', + }, ], addons: [ '@storybook/addon-links', '@storybook/addon-essentials', '@storybook/addon-interactions', - '@storybook/addon-styling' + '@storybook/addon-styling', ], framework: { name: '@storybook/react-vite', - options: {} + options: {}, }, docs: { - autodocs: 'tag' + autodocs: 'tag', }, core: { - disableTelemetry: true - } + disableTelemetry: true, + }, }; export default config; diff --git a/apps/storybook/.storybook/preview.ts b/apps/storybook/.storybook/preview.ts index 4663aa6..794f8fa 100644 --- a/apps/storybook/.storybook/preview.ts +++ b/apps/storybook/.storybook/preview.ts @@ -7,10 +7,10 @@ const preview: Preview = { controls: { matchers: { color: /(background|color)$/i, - date: /Date$/ - } - } - } + date: /Date$/, + }, + }, + }, }; export default preview; diff --git a/apps/storybook/package.json b/apps/storybook/package.json index 5fb43f0..40399d9 100644 --- a/apps/storybook/package.json +++ b/apps/storybook/package.json @@ -6,31 +6,31 @@ "build-storybook": "storybook build --no-open" }, "dependencies": { - "@storybook/addon-essentials": "^7.5.1", - "@storybook/addon-interactions": "^7.5.1", - "@storybook/addon-links": "^7.5.1", + "@storybook/addon-essentials": "^7.6.7", + "@storybook/addon-interactions": "^7.6.7", + "@storybook/addon-links": "^7.6.7", "@storybook/addon-styling": "^1.3.7", - "@storybook/blocks": "^7.5.1", - "@storybook/react": "^7.5.1", - "@storybook/react-vite": "^7.5.1", + "@storybook/blocks": "^7.6.7", + "@storybook/react": "^7.6.7", + "@storybook/react-vite": "^7.6.7", "@storybook/testing-library": "^0.2.2", "postcss-pseudo-companion-classes": "^0.1.1", "react": "^18.2.0", "react-dom": "^18.2.0", - "sass": "^1.69.4" + "sass": "^1.69.7" }, "devDependencies": { "@polyfrost/config": "workspace:*", "@polyfrost/ui": "workspace:*", - "@types/react": "^18.2.31", - "@types/react-dom": "^18.2.14", - "@vitejs/plugin-react": "^4.1.0", + "@types/react": "^18.2.47", + "@types/react-dom": "^18.2.18", + "@vitejs/plugin-react": "^4.2.1", "autoprefixer": "^10.4.16", - "postcss": "^8.4.31", + "postcss": "^8.4.33", "prop-types": "^15.8.1", - "storybook": "^7.5.1", - "tailwindcss": "^3.3.3", - "typescript": "^5.2.2", - "vite": "^4.5.0" + "storybook": "^7.6.7", + "tailwindcss": "^3.4.1", + "typescript": "^5.3.3", + "vite": "^5.0.11" } } diff --git a/apps/storybook/postcss.config.js b/apps/storybook/postcss.config.js deleted file mode 100644 index de27714..0000000 --- a/apps/storybook/postcss.config.js +++ /dev/null @@ -1,10 +0,0 @@ -module.exports = { - plugins: { - 'tailwindcss': {}, - 'autoprefixer': {}, - 'postcss-pseudo-companion-classes': { - prefix: 'sb-pseudo--', - restrictTo: [':hover', ':focus'] - } - } -}; diff --git a/apps/storybook/postcss.config.ts b/apps/storybook/postcss.config.ts new file mode 100644 index 0000000..a94bdf1 --- /dev/null +++ b/apps/storybook/postcss.config.ts @@ -0,0 +1,18 @@ +import autoprefixer from 'autoprefixer'; +import tailwindcss from 'tailwindcss'; + +// @ts-expect-error no typings for this +import pseudo from 'postcss-pseudo-companion-classes'; + +const config = { + plugins: [ + autoprefixer(), + tailwindcss(), + pseudo({ + prefix: 'sb-pseudo--', + restrictTo: [':hover', ':focus'], + }), + ], +}; + +export default config; diff --git a/apps/storybook/tailwind.config.js b/apps/storybook/tailwind.config.js deleted file mode 100644 index 595a567..0000000 --- a/apps/storybook/tailwind.config.js +++ /dev/null @@ -1,2 +0,0 @@ -/** @type {import('tailwindcss').Config} */ -module.exports = require('@polyfrost/ui/tailwind')('web'); diff --git a/apps/storybook/tailwind.config.ts b/apps/storybook/tailwind.config.ts new file mode 100644 index 0000000..7ecde6c --- /dev/null +++ b/apps/storybook/tailwind.config.ts @@ -0,0 +1,3 @@ +import tailwind from '@polyfrost/ui/style/tailwind'; + +export default await tailwind('web'); diff --git a/apps/storybook/tsconfig.json b/apps/storybook/tsconfig.json index da3cfcc..01795c6 100644 --- a/apps/storybook/tsconfig.json +++ b/apps/storybook/tsconfig.json @@ -1,19 +1,19 @@ { "compilerOptions": { "target": "ESNext", - "module": "ESNext", - "moduleResolution": "Node", + "jsx": "react-jsx", "lib": ["DOM", "DOM.Iterable", "ESNext"], "useDefineForClassFields": true, + "module": "ESNext", + "moduleResolution": "Node", + "resolveJsonModule": true, "allowJs": true, - "skipLibCheck": true, - "esModuleInterop": false, - "allowSyntheticDefaultImports": true, "strict": true, + "noEmit": true, + "allowSyntheticDefaultImports": true, + "esModuleInterop": false, "forceConsistentCasingInFileNames": true, - "resolveJsonModule": true, "isolatedModules": true, - "noEmit": true, - "jsx": "react-jsx" + "skipLibCheck": true } } diff --git a/apps/storybook/vite.config.ts b/apps/storybook/vite.config.ts new file mode 100644 index 0000000..855fd25 --- /dev/null +++ b/apps/storybook/vite.config.ts @@ -0,0 +1,4 @@ +import baseConfig from '@polyfrost/config/vite'; + +// https://vitejs.dev/config/ +export default baseConfig; diff --git a/apps/website/.eslintrc.js b/apps/website/.eslintrc.js deleted file mode 100644 index f80eaa9..0000000 --- a/apps/website/.eslintrc.js +++ /dev/null @@ -1,8 +0,0 @@ -/** @type {import('eslint').ESLint.ConfigData} */ -module.exports = { - extends: [require.resolve('@polyfrost/config/eslint/web.js')], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -}; diff --git a/apps/website/astro.config.ts b/apps/website/astro.config.ts index c7c7928..60831d1 100644 --- a/apps/website/astro.config.ts +++ b/apps/website/astro.config.ts @@ -1,16 +1,23 @@ import tailwind from '@astrojs/tailwind'; +import mdx from '@astrojs/mdx'; +import sitemap from '@astrojs/sitemap'; + import { defineConfig } from 'astro/config'; -// @ts-ignore - Tailwind doesn't have types for this yet import postcssNesting from 'tailwindcss/nesting'; // https://astro.build/config export default defineConfig({ - integrations: [tailwind()], + site: 'https://polyfrost.org', + integrations: [ + tailwind(), + mdx(), + sitemap(), + ], vite: { css: { postcss: { - plugins: [postcssNesting] - } - } - } + plugins: [postcssNesting()], + }, + }, + }, }); diff --git a/apps/website/config.ts b/apps/website/config.ts index 19c92a4..81f939e 100644 --- a/apps/website/config.ts +++ b/apps/website/config.ts @@ -1,81 +1,117 @@ -import type { Config, NavbarDropdown, NavbarElement, Project } from '@webtypes/Config'; +import type { Config, NavbarDropdown, Project } from '@webtypes/Config'; export const configConst = { projects: getProjects(), logos: ['oneconfig.minimal', 'polyfrost.full', 'polyfrost.minimal', 'polyfrost.minimal_bg'], + socials: { + youtube: 'https://youtube.com/@Polyfrost', + discord: '/discord', + github: 'https://github.com/Polyfrost', + modrinth: { + id: 'polyfrost', + type: 'organization', + }, + skyclient: 'https://skyclient.co', + }, navbar: { left: [ { logo: ['polyfrost.full', -1], - path: '/' - } + path: '/', + }, ], right: [ { text: 'Home', - path: '/' + path: '/', + }, + { + text: 'Mods', + path: '/mods', }, { text: 'Projects', dropdown: getProjects().map((project) => { - (project as any).path = `/projects/${project.name.toLowerCase()}`; - return project; - }) as unknown as NavbarDropdown[] - } - ] - } -} as const satisfies Config; + if (project.hasPage) + (project as any).path = `/projects/${project.name.toLowerCase()}`; -function getProjects(): Project[] { - return [ - { - name: 'OneConfig', - description: 'The next-generation config library for Forge and Fabric', - logo: 'oneconfig.minimal', - tag: 'BETA' - }, + return project; + }) as unknown as NavbarDropdown[], + }, + { + text: 'About Us', + path: '/about', + }, + ], + }, + footer: [ { - name: 'OneLauncher', - description: 'The next-generation launcher for Forge and Fabric', - logo: 'polyfrost.minimal', - tag: 'SOON' + header: 'Products', + links: getProjects().filter(project => project.hasPage === true).map(project => ({ + text: project.name, + url: `/projects/${project.name.toLowerCase()}`, + })).concat([ + { + text: 'Mods', + url: '/mods', + }, + ]), }, { - name: 'OneConfig', - description: 'The next-generation config library for Forge and Fabric', - logo: 'oneconfig.minimal', - tag: 'BETA' + header: 'Organization', + links: [ + { + text: 'About us', + url: '/about', + }, + { + text: 'Branding', + url: '/branding', + }, + { + text: 'Contact us', + url: '/contact', + }, + { + text: 'Documentation', + url: 'https://docs.polyfrost.org', + }, + { + text: 'Open source', + url: '/oss', + }, + ], }, { - name: 'OneLauncher', - description: 'The next-generation launcher for Forge and Fabric', - logo: 'polyfrost.minimal', - tag: 'SOON' + header: 'Legal', + links: [ + { + text: 'Terms of service', + url: '/legal/tos', + }, + { + text: 'Privacy policy', + url: '/legal/privacy', + }, + ], }, + ], +} satisfies Config; + +function getProjects(): Project[] { + return [ { name: 'OneConfig', description: 'The next-generation config library for Forge and Fabric', logo: 'oneconfig.minimal', - tag: 'BETA' + hasPage: true, }, { name: 'OneLauncher', description: 'The next-generation launcher for Forge and Fabric', logo: 'polyfrost.minimal', - tag: 'SOON' + tag: 'SOON', }, - { - name: 'OneConfig', - description: 'The next-generation config library for Forge and Fabric', - logo: 'oneconfig.minimal', - tag: 'BETA' - }, - { - name: 'OneLauncher', - description: 'The next-generation launcher for Forge and Fabric', - logo: 'polyfrost.minimal', - tag: 'SOON' - } ]; } diff --git a/apps/website/package.json b/apps/website/package.json index 7d10673..ef89b74 100644 --- a/apps/website/package.json +++ b/apps/website/package.json @@ -6,17 +6,28 @@ "dev": "astro dev", "start": "astro start", "build": "astro build", - "preview": "astro preview" + "preview": "astro preview", + "astro": "astro", + "test": "vitest" }, "dependencies": { - "@astrojs/tailwind": "^5.0.2", - "astro": "^3.3.3", - "tailwindcss": "^3.3.3" + "@astrojs/check": "^0.4.1", + "@astrojs/mdx": "^2.0.3", + "@astrojs/rss": "^4.0.1", + "@astrojs/sitemap": "^3.0.4", + "@astrojs/tailwind": "^5.1.0", + "astro": "^4.1.1", + "sass": "^1.69.7", + "smartypants": "^0.2.2", + "tailwindcss": "^3.4.1", + "vitest": "^1.1.3", + "zod": "^3.22.4", + "zod-form-data": "^2.0.2" }, "devDependencies": { "@polyfrost/config": "workspace:*", - "@types/node": "~18.17.19", - "node-html-parser": "^6.1.10", - "typescript": "^5.2.2" + "@types/node": "~20.10.8", + "node-html-parser": "^6.1.12", + "typescript": "^5.3.3" } } diff --git a/apps/website/public/.well-known/webfinger b/apps/website/public/.well-known/webfinger new file mode 100644 index 0000000..598fa4b --- /dev/null +++ b/apps/website/public/.well-known/webfinger @@ -0,0 +1,23 @@ +{ + "subject": 'acct:astro@webtoo.ls', + "aliases": [ + "https://floss.social/@polyfrost", + "https://floss.social/users/polyfrost" + ], + "links": [ + { + "rel": "http://webfinger.net/rel/profile-page", + "type": "text/html", + "href": "https://floss.social/@polyfrost" + }, + { + "rel": "self", + "type": "application/activity+json", + "href": "https://floss.social/users/polyfrost" + }, + { + "rel": "http://ostatus.org/schema/1.0/subscribe", + "template": "https://floss.social/authorize_interaction?uri={uri}" + } + ] +} diff --git a/apps/website/public/favicon.svg b/apps/website/public/favicon.svg new file mode 100644 index 0000000..f949e8d --- /dev/null +++ b/apps/website/public/favicon.svg @@ -0,0 +1,4 @@ + + + + diff --git a/apps/website/public/media/about/page_media_1.svg b/apps/website/public/media/about/page_media_1.svg new file mode 100644 index 0000000..2ce56fc --- /dev/null +++ b/apps/website/public/media/about/page_media_1.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/website/public/media/about/page_media_2.svg b/apps/website/public/media/about/page_media_2.svg new file mode 100644 index 0000000..1e0d610 --- /dev/null +++ b/apps/website/public/media/about/page_media_2.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/apps/website/public/media/about/page_media_3.svg b/apps/website/public/media/about/page_media_3.svg new file mode 100644 index 0000000..74949c0 --- /dev/null +++ b/apps/website/public/media/about/page_media_3.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/apps/website/public/media/about/page_media_4.svg b/apps/website/public/media/about/page_media_4.svg new file mode 100644 index 0000000..270f9b5 --- /dev/null +++ b/apps/website/public/media/about/page_media_4.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/apps/website/public/media/branding/badges/badge_1.png b/apps/website/public/media/branding/badges/badge_1.png new file mode 100644 index 0000000..340b0d6 Binary files /dev/null and b/apps/website/public/media/branding/badges/badge_1.png differ diff --git a/apps/website/public/media/branding/badges/badge_1.svg b/apps/website/public/media/branding/badges/badge_1.svg new file mode 100644 index 0000000..ea42091 --- /dev/null +++ b/apps/website/public/media/branding/badges/badge_1.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/apps/website/public/media/branding/badges/badge_2.png b/apps/website/public/media/branding/badges/badge_2.png new file mode 100644 index 0000000..a94ee76 Binary files /dev/null and b/apps/website/public/media/branding/badges/badge_2.png differ diff --git a/apps/website/public/media/branding/badges/badge_2.svg b/apps/website/public/media/branding/badges/badge_2.svg new file mode 100644 index 0000000..6d29308 --- /dev/null +++ b/apps/website/public/media/branding/badges/badge_2.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/apps/website/public/media/branding/badges/badge_3.png b/apps/website/public/media/branding/badges/badge_3.png new file mode 100644 index 0000000..fa99af4 Binary files /dev/null and b/apps/website/public/media/branding/badges/badge_3.png differ diff --git a/apps/website/public/media/branding/badges/badge_3.svg b/apps/website/public/media/branding/badges/badge_3.svg new file mode 100644 index 0000000..114d17c --- /dev/null +++ b/apps/website/public/media/branding/badges/badge_3.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/apps/website/public/media/branding/badges/badge_4.png b/apps/website/public/media/branding/badges/badge_4.png new file mode 100644 index 0000000..436e972 Binary files /dev/null and b/apps/website/public/media/branding/badges/badge_4.png differ diff --git a/apps/website/public/media/branding/badges/badge_4.svg b/apps/website/public/media/branding/badges/badge_4.svg new file mode 100644 index 0000000..47e8cc4 --- /dev/null +++ b/apps/website/public/media/branding/badges/badge_4.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/apps/website/public/media/branding/logos/logo_1.png b/apps/website/public/media/branding/logos/logo_1.png new file mode 100644 index 0000000..c0e9afc Binary files /dev/null and b/apps/website/public/media/branding/logos/logo_1.png differ diff --git a/apps/website/public/media/branding/logos/logo_1.svg b/apps/website/public/media/branding/logos/logo_1.svg new file mode 100644 index 0000000..cce07fa --- /dev/null +++ b/apps/website/public/media/branding/logos/logo_1.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/apps/website/public/media/branding/logos/logo_2.png b/apps/website/public/media/branding/logos/logo_2.png new file mode 100644 index 0000000..f1cb525 Binary files /dev/null and b/apps/website/public/media/branding/logos/logo_2.png differ diff --git a/apps/website/public/media/branding/logos/logo_2.svg b/apps/website/public/media/branding/logos/logo_2.svg new file mode 100644 index 0000000..2d9b6dd --- /dev/null +++ b/apps/website/public/media/branding/logos/logo_2.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/apps/website/public/media/branding/logos/logo_3.png b/apps/website/public/media/branding/logos/logo_3.png new file mode 100644 index 0000000..11e8ab2 Binary files /dev/null and b/apps/website/public/media/branding/logos/logo_3.png differ diff --git a/apps/website/public/media/branding/logos/logo_3.svg b/apps/website/public/media/branding/logos/logo_3.svg new file mode 100644 index 0000000..8d0e89e --- /dev/null +++ b/apps/website/public/media/branding/logos/logo_3.svg @@ -0,0 +1,3 @@ + + + diff --git a/apps/website/public/media/branding/logos/logo_4.png b/apps/website/public/media/branding/logos/logo_4.png new file mode 100644 index 0000000..74d66ed Binary files /dev/null and b/apps/website/public/media/branding/logos/logo_4.png differ diff --git a/apps/website/public/media/branding/logos/logo_4.svg b/apps/website/public/media/branding/logos/logo_4.svg new file mode 100644 index 0000000..809a584 --- /dev/null +++ b/apps/website/public/media/branding/logos/logo_4.svg @@ -0,0 +1,3 @@ + + + diff --git a/apps/website/public/media/branding/logos/logo_5.png b/apps/website/public/media/branding/logos/logo_5.png new file mode 100644 index 0000000..eef867e Binary files /dev/null and b/apps/website/public/media/branding/logos/logo_5.png differ diff --git a/apps/website/public/media/branding/logos/logo_5.svg b/apps/website/public/media/branding/logos/logo_5.svg new file mode 100644 index 0000000..9d3c7da --- /dev/null +++ b/apps/website/public/media/branding/logos/logo_5.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/apps/website/public/media/branding/logos/logo_6.png b/apps/website/public/media/branding/logos/logo_6.png new file mode 100644 index 0000000..699005e Binary files /dev/null and b/apps/website/public/media/branding/logos/logo_6.png differ diff --git a/apps/website/public/media/branding/logos/logo_6.svg b/apps/website/public/media/branding/logos/logo_6.svg new file mode 100644 index 0000000..cf2bb3c --- /dev/null +++ b/apps/website/public/media/branding/logos/logo_6.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/apps/website/public/media/branding/logos/logo_7.png b/apps/website/public/media/branding/logos/logo_7.png new file mode 100644 index 0000000..f3747d2 Binary files /dev/null and b/apps/website/public/media/branding/logos/logo_7.png differ diff --git a/apps/website/public/media/branding/logos/logo_7.svg b/apps/website/public/media/branding/logos/logo_7.svg new file mode 100644 index 0000000..261e9ce --- /dev/null +++ b/apps/website/public/media/branding/logos/logo_7.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/apps/website/public/media/branding/logos/logo_8.png b/apps/website/public/media/branding/logos/logo_8.png new file mode 100644 index 0000000..e07a56c Binary files /dev/null and b/apps/website/public/media/branding/logos/logo_8.png differ diff --git a/apps/website/public/media/branding/logos/logo_8.svg b/apps/website/public/media/branding/logos/logo_8.svg new file mode 100644 index 0000000..3a2294f --- /dev/null +++ b/apps/website/public/media/branding/logos/logo_8.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/apps/website/public/media/branding/mods/behind_you.png b/apps/website/public/media/branding/mods/behind_you.png new file mode 100644 index 0000000..3efaba1 Binary files /dev/null and b/apps/website/public/media/branding/mods/behind_you.png differ diff --git a/apps/website/public/media/branding/mods/behind_you.svg b/apps/website/public/media/branding/mods/behind_you.svg new file mode 100644 index 0000000..ae052e9 --- /dev/null +++ b/apps/website/public/media/branding/mods/behind_you.svg @@ -0,0 +1,4 @@ + + + + diff --git a/apps/website/public/media/branding/mods/chatting.png b/apps/website/public/media/branding/mods/chatting.png new file mode 100644 index 0000000..ec97f47 Binary files /dev/null and b/apps/website/public/media/branding/mods/chatting.png differ diff --git a/apps/website/public/media/branding/mods/chatting.svg b/apps/website/public/media/branding/mods/chatting.svg new file mode 100644 index 0000000..8923baa --- /dev/null +++ b/apps/website/public/media/branding/mods/chatting.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/apps/website/public/media/branding/mods/crash_patch.png b/apps/website/public/media/branding/mods/crash_patch.png new file mode 100644 index 0000000..e886ab5 Binary files /dev/null and b/apps/website/public/media/branding/mods/crash_patch.png differ diff --git a/apps/website/public/media/branding/mods/crash_patch.svg b/apps/website/public/media/branding/mods/crash_patch.svg new file mode 100644 index 0000000..8b16dbe --- /dev/null +++ b/apps/website/public/media/branding/mods/crash_patch.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/apps/website/public/media/branding/mods/damage_tint.png b/apps/website/public/media/branding/mods/damage_tint.png new file mode 100644 index 0000000..1623b27 Binary files /dev/null and b/apps/website/public/media/branding/mods/damage_tint.png differ diff --git a/apps/website/public/media/branding/mods/damage_tint.svg b/apps/website/public/media/branding/mods/damage_tint.svg new file mode 100644 index 0000000..f3d6e6a --- /dev/null +++ b/apps/website/public/media/branding/mods/damage_tint.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/apps/website/public/media/branding/mods/evergreen_h_u_d.png b/apps/website/public/media/branding/mods/evergreen_h_u_d.png new file mode 100644 index 0000000..3a65534 Binary files /dev/null and b/apps/website/public/media/branding/mods/evergreen_h_u_d.png differ diff --git a/apps/website/public/media/branding/mods/evergreen_h_u_d.svg b/apps/website/public/media/branding/mods/evergreen_h_u_d.svg new file mode 100644 index 0000000..1fa9bf8 --- /dev/null +++ b/apps/website/public/media/branding/mods/evergreen_h_u_d.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/apps/website/public/media/branding/mods/glint_colorizer.png b/apps/website/public/media/branding/mods/glint_colorizer.png new file mode 100644 index 0000000..35f7c1e Binary files /dev/null and b/apps/website/public/media/branding/mods/glint_colorizer.png differ diff --git a/apps/website/public/media/branding/mods/glint_colorizer.svg b/apps/website/public/media/branding/mods/glint_colorizer.svg new file mode 100644 index 0000000..cb2e936 --- /dev/null +++ b/apps/website/public/media/branding/mods/glint_colorizer.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/apps/website/public/media/branding/mods/keystrokes.png b/apps/website/public/media/branding/mods/keystrokes.png new file mode 100644 index 0000000..02e86ab Binary files /dev/null and b/apps/website/public/media/branding/mods/keystrokes.png differ diff --git a/apps/website/public/media/branding/mods/keystrokes.svg b/apps/website/public/media/branding/mods/keystrokes.svg new file mode 100644 index 0000000..05e8cb3 --- /dev/null +++ b/apps/website/public/media/branding/mods/keystrokes.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/apps/website/public/media/branding/mods/overflow_animations.png b/apps/website/public/media/branding/mods/overflow_animations.png new file mode 100644 index 0000000..4a30a98 Binary files /dev/null and b/apps/website/public/media/branding/mods/overflow_animations.png differ diff --git a/apps/website/public/media/branding/mods/overflow_animations.svg b/apps/website/public/media/branding/mods/overflow_animations.svg new file mode 100644 index 0000000..7b0ee7c --- /dev/null +++ b/apps/website/public/media/branding/mods/overflow_animations.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/apps/website/public/media/branding/mods/poly_blur.png b/apps/website/public/media/branding/mods/poly_blur.png new file mode 100644 index 0000000..2601d36 Binary files /dev/null and b/apps/website/public/media/branding/mods/poly_blur.png differ diff --git a/apps/website/public/media/branding/mods/poly_blur.svg b/apps/website/public/media/branding/mods/poly_blur.svg new file mode 100644 index 0000000..5bdf35a --- /dev/null +++ b/apps/website/public/media/branding/mods/poly_blur.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/apps/website/public/media/branding/mods/poly_nametag.png b/apps/website/public/media/branding/mods/poly_nametag.png new file mode 100644 index 0000000..78cc53a Binary files /dev/null and b/apps/website/public/media/branding/mods/poly_nametag.png differ diff --git a/apps/website/public/media/branding/mods/poly_nametag.svg b/apps/website/public/media/branding/mods/poly_nametag.svg new file mode 100644 index 0000000..cc71c3d --- /dev/null +++ b/apps/website/public/media/branding/mods/poly_nametag.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/apps/website/public/media/branding/mods/poly_sprint.png b/apps/website/public/media/branding/mods/poly_sprint.png new file mode 100644 index 0000000..71636ff Binary files /dev/null and b/apps/website/public/media/branding/mods/poly_sprint.png differ diff --git a/apps/website/public/media/branding/mods/poly_sprint.svg b/apps/website/public/media/branding/mods/poly_sprint.svg new file mode 100644 index 0000000..f2df018 --- /dev/null +++ b/apps/website/public/media/branding/mods/poly_sprint.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/apps/website/public/media/branding/mods/poly_time.png b/apps/website/public/media/branding/mods/poly_time.png new file mode 100644 index 0000000..0876d4e Binary files /dev/null and b/apps/website/public/media/branding/mods/poly_time.png differ diff --git a/apps/website/public/media/branding/mods/poly_time.svg b/apps/website/public/media/branding/mods/poly_time.svg new file mode 100644 index 0000000..e27f996 --- /dev/null +++ b/apps/website/public/media/branding/mods/poly_time.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/apps/website/public/media/branding/mods/poly_weather.png b/apps/website/public/media/branding/mods/poly_weather.png new file mode 100644 index 0000000..2439f6e Binary files /dev/null and b/apps/website/public/media/branding/mods/poly_weather.png differ diff --git a/apps/website/public/media/branding/mods/poly_weather.svg b/apps/website/public/media/branding/mods/poly_weather.svg new file mode 100644 index 0000000..58b52cc --- /dev/null +++ b/apps/website/public/media/branding/mods/poly_weather.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/apps/website/public/media/branding/mods/vanilla_h_u_d.png b/apps/website/public/media/branding/mods/vanilla_h_u_d.png new file mode 100644 index 0000000..08a249c Binary files /dev/null and b/apps/website/public/media/branding/mods/vanilla_h_u_d.png differ diff --git a/apps/website/public/media/branding/mods/vanilla_h_u_d.svg b/apps/website/public/media/branding/mods/vanilla_h_u_d.svg new file mode 100644 index 0000000..a9ad1fa --- /dev/null +++ b/apps/website/public/media/branding/mods/vanilla_h_u_d.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/apps/website/public/media/index/page_media_1.svg b/apps/website/public/media/index/page_media_1.svg new file mode 100644 index 0000000..023ebbb --- /dev/null +++ b/apps/website/public/media/index/page_media_1.svg @@ -0,0 +1,180 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/website/public/media/mods/page_media_1.svg b/apps/website/public/media/mods/page_media_1.svg new file mode 100644 index 0000000..6abdad9 --- /dev/null +++ b/apps/website/public/media/mods/page_media_1.svg @@ -0,0 +1,222 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/website/public/media/mods/page_media_2.svg b/apps/website/public/media/mods/page_media_2.svg new file mode 100644 index 0000000..7566dd4 --- /dev/null +++ b/apps/website/public/media/mods/page_media_2.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/apps/website/public/media/oneconfig/logo_text.svg b/apps/website/public/media/oneconfig/logo_text.svg new file mode 100644 index 0000000..3c10fe4 --- /dev/null +++ b/apps/website/public/media/oneconfig/logo_text.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/apps/website/public/media/oneconfig/page_media_1.svg b/apps/website/public/media/oneconfig/page_media_1.svg new file mode 100644 index 0000000..46c9513 --- /dev/null +++ b/apps/website/public/media/oneconfig/page_media_1.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/apps/website/public/media/oneconfig/page_media_2.svg b/apps/website/public/media/oneconfig/page_media_2.svg new file mode 100644 index 0000000..4abfa8b --- /dev/null +++ b/apps/website/public/media/oneconfig/page_media_2.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/apps/website/public/media/oneconfig/page_media_3.svg b/apps/website/public/media/oneconfig/page_media_3.svg new file mode 100644 index 0000000..5ab5744 --- /dev/null +++ b/apps/website/public/media/oneconfig/page_media_3.svg @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/website/public/media/oneconfig/page_media_4.png b/apps/website/public/media/oneconfig/page_media_4.png new file mode 100644 index 0000000..ca30cad Binary files /dev/null and b/apps/website/public/media/oneconfig/page_media_4.png differ diff --git a/apps/website/public/media/oneconfig/page_media_5.png b/apps/website/public/media/oneconfig/page_media_5.png new file mode 100644 index 0000000..0d7c5b9 Binary files /dev/null and b/apps/website/public/media/oneconfig/page_media_5.png differ diff --git a/apps/website/public/media/oneconfig/skyclient.png b/apps/website/public/media/oneconfig/skyclient.png new file mode 100644 index 0000000..57f3b40 Binary files /dev/null and b/apps/website/public/media/oneconfig/skyclient.png differ diff --git a/apps/website/public/media/oss/page_media_1.svg b/apps/website/public/media/oss/page_media_1.svg new file mode 100644 index 0000000..15b0886 --- /dev/null +++ b/apps/website/public/media/oss/page_media_1.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/apps/website/public/media/oss/page_media_2.svg b/apps/website/public/media/oss/page_media_2.svg new file mode 100644 index 0000000..fc4d213 --- /dev/null +++ b/apps/website/public/media/oss/page_media_2.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/apps/website/public/media/oss/page_media_3.svg b/apps/website/public/media/oss/page_media_3.svg new file mode 100644 index 0000000..652a905 --- /dev/null +++ b/apps/website/public/media/oss/page_media_3.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/apps/website/public/media/polyfrost/full.svg b/apps/website/public/media/polyfrost/full.svg index 8c51156..a9c05fe 100644 --- a/apps/website/public/media/polyfrost/full.svg +++ b/apps/website/public/media/polyfrost/full.svg @@ -1,12 +1,12 @@ - - - - - - - - - - - + + + + + + + + + + + diff --git a/apps/website/public/robots.txt b/apps/website/public/robots.txt index f58dbcb..dcf9571 100644 --- a/apps/website/public/robots.txt +++ b/apps/website/public/robots.txt @@ -1,4 +1,6 @@ -# Example: Allow all bots to scan and index your site. -# Full syntax: https://developers.google.com/search/docs/advanced/robots/create-robots-txt +# I, for one, welcome our new robotic overlords + User-agent: * Allow: / + +Sitemap: https://polyfrost.org/sitemap-index.xml diff --git a/apps/website/src/components/base/Button.astro b/apps/website/src/components/base/Button.astro index adbc656..e529dc5 100644 --- a/apps/website/src/components/base/Button.astro +++ b/apps/website/src/components/base/Button.astro @@ -1,26 +1,28 @@ --- -import type { Icons } from "@components/icons/Icon.astro"; -import Icon from "@components/icons/Icon.astro"; -import type { HTMLAttributes } from "astro/types"; +import type { Icons } from '@components/icons/Icon.astro'; +import Icon from '@components/icons/Icon.astro'; +import type { HTMLAttributes } from 'astro/types'; const styles = { - primary: "bg-blue-500 text-white hover:bg-blue-400 active:bg-blue-600 disabled:bg-blue-800 disabled:text-white-1/4", - secondary: "bg-blue-100 text-blue-500 hover:bg-blue-200 active:bg-blue-300 disabled:bg-blue-50 disabled:text-blue-200", -} + // TODO: adjust active / disabled colors + primary: 'bg-blue-500 text-white hover:bg-blue-400 active:bg-blue-600 disabled:bg-blue-800 disabled:text-white-1/4', + secondary: 'bg-blue-20 text-blue-60 border-[1px] border-blue-30 hover:bg-blue-200 active:bg-blue-300 disabled:bg-blue-50 disabled:text-blue-200', + ghost: 'bg-transparent text-blue-500 hover:bg-blue-20 active:bg-blue-30 disabled:bg-transparent disabled:text-blue-200', +}; const sizes = { - sm: "px-4 py-2 text-sm", - md: "px-5 py-3 text-md", - lg: "px-6 py-3 text-lg rounded-2xl" -} + sm: 'px-4 py-2 text-sm', + md: 'px-5 py-3 text-md', + lg: 'px-6 py-3 text-lg rounded-2xl', +}; const iconSize = { - sm: 15, - md: 18, - lg: 24 -} + sm: 17, + md: 20, + lg: 24, +}; -interface Props extends HTMLAttributes<"button"> { +interface Props extends HTMLAttributes<'button'> { style?: keyof typeof styles size?: keyof typeof sizes text?: string @@ -30,28 +32,28 @@ interface Props extends HTMLAttributes<"button"> { } const { - style = "primary", - size = "md", - text = "", - iconLeft = "", - iconRight = "", + style = 'primary', + size = 'md', + text = '', + iconLeft = '', + iconRight = '', ...rest } = Astro.props; const className = [ - "flex flex-row justify-center items-center text-center focus-visible:ring-offset-4 focus-visible:outline-offset-4", - "rounded-xl font-medium", + 'flex flex-row justify-center items-center text-center focus-visible:ring-offset-4 focus-visible:outline-offset-4', + 'rounded-xl font-medium', styles[style], sizes[size], - "transition-colors", - rest.class -].join(" "); + 'transition-colors', + rest.class, +].join(' '); -const Element = rest.href ? "a" : "button" as any; +const Element = rest.href ? 'a' : 'button' as any; --- - - {iconLeft && } - {text ? text : } - {iconRight && } - + + {iconLeft && } + {text || } + {iconRight && } + diff --git a/apps/website/src/components/base/Card.astro b/apps/website/src/components/base/Card.astro new file mode 100644 index 0000000..6438273 --- /dev/null +++ b/apps/website/src/components/base/Card.astro @@ -0,0 +1,22 @@ +--- +import type { Icons } from '@components/icons/Icon.astro'; +import Icon from '@components/icons/Icon.astro'; +import type { HTMLAttributes } from 'astro/types'; + +interface Props extends HTMLAttributes<'div'> { + icon: Icons + text?: string +} + +const { + icon, + text = 'Hiiii', + ...rest +} = Astro.props; +--- + + +
+ +

{text}

+
diff --git a/apps/website/src/components/base/CodeBlock.astro b/apps/website/src/components/base/CodeBlock.astro deleted file mode 100644 index 5991428..0000000 --- a/apps/website/src/components/base/CodeBlock.astro +++ /dev/null @@ -1,21 +0,0 @@ ---- - ---- - -
-	{`public class MyConfig {
-
-	@Switch(name = "Sub Switch", type = OptionType.SWITCH)
-	public static boolean subSwitch = false;
-
-	public MyConfig() {
-		super(new Mod("My Mod", ModType.UTIL_QOL), "config.json");
-
-		addDependency("subSwitch", () -> {
-			// TODO: Make codeblocks better lmao
-		});
-	}
-
-}`}
-
- diff --git a/apps/website/src/components/base/Footer.astro b/apps/website/src/components/base/Footer.astro index b24db5f..7a9071a 100644 --- a/apps/website/src/components/base/Footer.astro +++ b/apps/website/src/components/base/Footer.astro @@ -1,7 +1,47 @@ --- +import Icon from '@components/icons/Icon.astro'; +import Logo from '@components/logos/Logo.astro'; +import configConst from '@config'; +import type { HTMLAttributes } from 'astro/types'; +import Link from './Link.astro'; +interface Props extends HTMLAttributes<'footer'> {} + +const props = Astro.props; --- -