diff --git a/.changeset/README.md b/.changeset/README.md new file mode 100644 index 0000000..e5b6d8d --- /dev/null +++ b/.changeset/README.md @@ -0,0 +1,8 @@ +# Changesets + +Hello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that works +with multi-package repos, or single-package repos to help you version and publish your code. You can +find the full documentation for it [in our repository](https://github.com/changesets/changesets) + +We have a quick list of common questions to get you started engaging with this project in +[our documentation](https://github.com/changesets/changesets/blob/main/docs/common-questions.md) diff --git a/.changeset/config.json b/.changeset/config.json new file mode 100644 index 0000000..a08f3ae --- /dev/null +++ b/.changeset/config.json @@ -0,0 +1,11 @@ +{ + "$schema": "https://unpkg.com/@changesets/config@2.3.0/schema.json", + "changelog": ["@changesets/changelog-github", {"repo": "CasperDash/casperdash-utils"}], + "commit": false, + "fixed": [], + "linked": [], + "access": "public", + "baseBranch": "main", + "updateInternalDependencies": "patch", + "ignore": ["client-js"] +} diff --git a/examples/client-js/.gitignore b/examples/client-js/.gitignore new file mode 100644 index 0000000..b790eea --- /dev/null +++ b/examples/client-js/.gitignore @@ -0,0 +1,26 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? + +keys \ No newline at end of file diff --git a/examples/client-js/package.json b/examples/client-js/package.json new file mode 100644 index 0000000..4065ef8 --- /dev/null +++ b/examples/client-js/package.json @@ -0,0 +1,18 @@ +{ + "name": "client-js", + "private": true, + "version": "0.0.0", + "scripts": { + "dev": "vite", + "build": "tsc" + }, + "dependencies": { + "@casperdash/cep78-client": "workspace:*", + "casper-js-sdk": "2.15.0", + "axios": "1.5.0" + }, + "devDependencies": { + "ts-node": "10.9.1", + "typescript": "^5.2.2" + } +} diff --git a/examples/client-js/public/vite.svg b/examples/client-js/public/vite.svg new file mode 100644 index 0000000..e7b8dfb --- /dev/null +++ b/examples/client-js/public/vite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/examples/client-js/src/cep78/cep78.ts b/examples/client-js/src/cep78/cep78.ts new file mode 100644 index 0000000..4413c4b --- /dev/null +++ b/examples/client-js/src/cep78/cep78.ts @@ -0,0 +1,64 @@ +import { CEP78Contract } from '@casperdash/cep78-client'; +import { CLPublicKey, Keys } from 'casper-js-sdk'; +import axios from 'axios'; +import path from 'path'; +import { DeployUtil } from 'casper-js-sdk'; +import { runDeployFlow } from '../utils/deploy'; +import TransferWasm from '../wasm/transfer_call.wasm'; + +const MINTER = Keys.Ed25519.parseKeyFiles( + path.join(__dirname, `../keys/master_public.pem`), + path.join(__dirname, `../keys/master_private.pem`) +); + + +const transfer = async () => { + console.log('MINTER.publicKey: ', MINTER.publicKey.toHex()); + + const cep78Contract = new CEP78Contract( + 'casper-test', + 'hash-ce5ab65523312ed33b9f830dee1ec78de73e561caf1a58b5642e9e6a9210c417', + ); + + const clToPublicKey = CLPublicKey.fromHex('01ce62c06f9e6739d06c346cd1003ef80949a61d345c3e8293ea23e0f1d7f04035'); + + const registerDeployTwo = cep78Contract.register( + { + tokenOwner: clToPublicKey, + }, + "1000000000", + MINTER.publicKey, + [MINTER], + ); + + console.log('TransferWasm: ', TransferWasm); + + const transferDeploy = cep78Contract.transfer( + { + tokenId: "4", + source: MINTER.publicKey, + target: clToPublicKey, + }, + { useSessionCode: true }, + "20000000000", + MINTER.publicKey, + [], + TransferWasm + ); + + + + console.log('DeployUtil.deployToJson(transferDeploy as any): ', DeployUtil.deployToJson(transferDeploy as any)); + + // const response = await axios.post('http://localhost:3001/deploy', DeployUtil.deployToJson(transferDeploy as any)); + + // console.log('response: ', response); + + // if (deploy.err) { + // throw Error('Deploy failed'); + // } + + await runDeployFlow(DeployUtil.signDeploy(transferDeploy, MINTER)); +} + +transfer(); \ No newline at end of file diff --git a/examples/client-js/src/utils/deploy.ts b/examples/client-js/src/utils/deploy.ts new file mode 100644 index 0000000..994f720 --- /dev/null +++ b/examples/client-js/src/utils/deploy.ts @@ -0,0 +1,50 @@ +import { CasperClient, DeployUtil} from 'casper-js-sdk'; + +export const NODE_URL = 'http://76.91.193.251:7777/rpc'; +export const NETWORK_NAME = 'casper-test'; + +export const sleep = (ms: number) => { + return new Promise((resolve) => setTimeout(resolve, ms)); +}; + +export const getDeploy = async (nodeURL: string, deployHash: string) => { + const client = new CasperClient(nodeURL); + let i = 300; + while (i !== 0) { + const [deploy, raw] = await client.getDeploy(deployHash); + if (raw.execution_results.length !== 0) { + // @ts-ignore + if (raw.execution_results[0].result.Success) { + return deploy; + } else { + // @ts-ignore + throw Error( + "Contract execution: " + + // @ts-ignore + raw.execution_results[0].result.Failure.error_message + ); + } + } else { + i--; + await sleep(1000); + continue; + } + } + throw Error("Timeout after " + i + "s. Something's wrong"); +}; + + +export const runDeployFlow = async (deploy: DeployUtil.Deploy, isWaitting = true) => { + console.log('deploy: ', deploy); + + const deployHash = await deploy.send(NODE_URL!); + + console.log("...... Deploy hash: ", deployHash); + console.log("...... Waiting for the deploy..."); + if (isWaitting) { + await getDeploy(NODE_URL!, deployHash); + } + + + console.log(`...... Deploy ${deployHash} succedeed`); +}; diff --git a/examples/client-js/src/wasm/transfer_call.wasm.ts b/examples/client-js/src/wasm/transfer_call.wasm.ts new file mode 100644 index 0000000..62ea8ca --- /dev/null +++ b/examples/client-js/src/wasm/transfer_call.wasm.ts @@ -0,0 +1,9 @@ + + /* Autogenerated file. Do not edit manually. */ + /* eslint-disable eslint-comments/disable-enable-pair */ + /* eslint-disable eslint-comments/no-unlimited-disable */ + /* eslint-disable */ + /* prettier-ignore */ + const base64 = "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ACACQcgAakEBQSAQjYCAgAAgAigCTCEFIAIoAlAhAwsgBSADaiIFIAEpAAA3AAAgBUEYaiAGKQAANwAAIAVBEGogBykAADcAACAFQQhqIAgpAAA3AABBACgC9IPAgAAhBEEAIAFBeGoiBTYC9IPAgAAgASAENgIAIAUgBSgCAEF+cTYCACACIANBIGo2AlAMCgsgAyABKQAINwAAIANBGGoiByABQSBqKQAANwAAIANBEGoiCCABQRhqKQAANwAAIANBCGoiCSABQRBqKQAANwAAQQEhBgJAIARBf2pBH0sNACACQcgAakEBQSAQjYCAgAAgAigCTCEFIAIoAlAhBgsgBSAGaiIBIAMpAAA3AAAgAUEYaiAHKQAANwAAIAFBEGogCCkAADcAACABQQhqIAkpAAA3AABBACgC9IPAgAAhBUEAIANBeGoiATYC9IPAgAAgAyAFNgIAIAEgASgCAEF+cTYCACACIAZBIGo2AlAMCQsgAyABKQAINwAAIANBGGoiByABQSBqKQAANwAAIANBEGoiCCABQRhqKQAANwAAIANBCGoiCSABQRBqKQAANwAAQQEhBgJAIARBf2pBH0sNACACQcgAakEBQSAQjYCAgAAgAigCTCEFIAIoAlAhBgsgBSAGaiIBIAMpAAA3AAAgAUEYaiAHKQAANwAAIAFBEGogCCkAADcAACABQQhqIAkpAAA3AABBACgC9IPAgAAhBUEAIANBeGoiATYC9IPAgAAgAyAFNgIAIAEgASgCAEF+cTYCACACIAZBIGo2AlAMCAsgAyABKQAINwAAIANBGGoiByABQSBqKQAANwAAIANBEGoiCCABQRhqKQAANwAAIANBCGoiCSABQRBqKQAANwAAQQEhBgJAIARBf2pBH0sNACACQcgAakEBQSAQjYCAgAAgAigCTCEFIAIoAlAhBgsgBSAGaiIBIAMpAAA3AAAgAUEYaiAHKQAANwAAIAFBEGogCCkAADcAACABQQhqIAkpAAA3AABBACgC9IPAgAAhBUEAIANBeGoiATYC9IPAgAAgAyAFNgIAIAEgASgCAEF+cTYCACACIAZBIGo2AlAMBwsgAyABKQAINwAAIANBGGoiByABQSBqKQAANwAAIANBEGoiCCABQRhqKQAANwAAIANBCGoiCSABQRBqKQAANwAAQQEhBgJAIARBf2pBH0sN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AQsgAyADKAKwASIGKAIANgI4AkACQAJAQYAQQQQgA0E4akHQgsCAAEHogsCAABCIgICAACIBRQ0AIAYgAygCODYCAAwBCwJAAkBBAUAAIgFBf0cNACAGIAMoAjg2AgAMAQsgAUEQdCIBQQA2AgQgASADKAI4NgIIIAEgAUGCgARqNgIAIAMgATYCOEGAEEEEIANBOGpB0ILAgABB6ILAgAAQiICAgAAhASAGIAMoAjg2AgAgAQ0BC0EAIAMoAgg2AuCDwIAADAELIAFBADYCBCABIAMoAgg2AgggASABQYDAAGpBAnI2AgAgAyABNgIIQQNBASADQQhqIANBsAFqQdCCwIAAEIiAgIAAIQFBACADKAIINgLgg8CAACABDQELQQMQi4CAgAAQjICAgAAAC0EAIQYgA0EAOgBrIANBADsAaSADQQw6AGggA0EANgJwIAMgATYCbAJAIAMoAmhBA0sNACADQegAakEAQQQQjYCAgAAgAygCbCEBIAMoAnAhBgsgASAGakEINgAAQQQhASADIAZBBGoiBzYCcAJAIAMoAmgiCCAHa0EHSw0AIANB6ABqIAdBCBCNgICAACADKAJoIQggAygCcCEHCyADKAJsIgkgB2pC9OSF87bO2bLyADcAACACQQRqKAIAIQoCQAJAAkACQAJAIAJBCGooAgAiC0UNACALQShsIQUgCkEkaiEBQQAhBgNAIAYgAUFkaigCAGogAUFoahCOgICAAGogASgCAGpBCGohBiABQShqIQEgBUFYaiIFDQALAkAgBkEEaiIBDQBBASEGQQAhAQwDCyABQQBIDQELIAFBARCPgICAACIGDQELQQMhCwwBCyADIAE6AKABIAMgAUEYdjoAowEgAyABQQh2OwChAUEAIQEgA0EANgKoASADIAY2AqQBAkAgAygCoAFBA0sNACADQaABakEAQQQQjYCAgAAgAygCpAEhBiADKAKoASEBCyAGIAFqIAs2AAAgAyABQQRqIgw2AqgBAkACQAJAAkAgCw0AIAMoAqQBIQ0MAQsgC0EobCEOIApBIGohBiADQQhqQQFyIQ8gA0E4akEBciEQA0BBASEFAkAgBkFoaigCACILIAZBbGoiERCOgICAAGogBkEEaiISKAIAakEIaiIBRQ0AIAFBf0wNAyABQQEQj4CAgAAiBUUNBwsgA0EANgK4ASADIAU2ArQBIAMgAToAsAEgAyABQRh2OgCzASADIAFBCHY7ALEBIANB6ABqIAZBZGooAgAgCxCQgICAACADLQBoIQsCQAJAIAMoAmwiDUUNACADLwBpIAMtAGtBEHRyQQh0IAtyIRNBACEBAkAgAygCsAEgAygCcCILTw0AIANBsAFqQQAgCxCNgICAACADKAK0ASEFIAMoArgBIQELIAUgAWogDSALEK6AgIAAGiADIAEgC2oiCjYCuAECQCATRQ0AIA0gE0EBEJGAgIAACyADQThqIBEQkoCAgAAgBigCACELAkACQCASKAIAIgENAEEBIQ0MAQsgAUF/TA0FIAFBARCPgICAACINRQ0JCyANIAsgARCugICAACELIANB6ABqQQhqIANBOGpBCGopAwA3AwAgAyABNgKAASADIAs2AnwgAyABNgJ4IAMgAykDODcDaCADQThqIAsgARCQgICAAAJAIAFFDQAgCyABQQEQkYCAgAALIAMtADghCwJAIAMoAjwiAQ0AIANB6ABqEJOAgIAADAELIA8gEC8AADsAACAPQQJqIBBBAmotAAA6AAAgAyADKAJANgIQIAMgATYCDCADIAs6AAggA0HoAGogA0EIahCUgICAACADLQALIRMgAy8ACSERIAMoAhAhASADKAIMIQ0gAy0ACCELIANB6ABqEJOAgIAAIA0NAQsgAygCsAEiAUUNBCAFIAFBARCRgICAAAwECyARIBNBEHRyQQh0IAtyIQsCQCADKAKwASAKayABTw0AIANBsAFqIAogARCNgICAACADKAK0ASEFIAMoArgBIQoLIAUgCmogDSABEK6AgIAAGgJAIAtFDQAgDSALQQEQkYCAgAALIAMtALABIQsgAygCtAEiBUUNAyADLwCxASADLQCzAUEQdHJBCHQgC3IhCwJAIAMoAqABIAxrIAogAWoiAU8NACADQaABaiAMIAEQjYCAgAAgAygCqAEhDAsgAygCpAEiDSAMaiAFIAEQroCAgAAaIAMgDCABaiIMNgKoAQJAIAtFDQAgBSALQQEQkYCAgAALIAZBKGohBiAOQVhqIg4NAAsLIAMoAqABIgtBgH5xIQ8MAwsQlYCAgAAACyADKAKgASIBRQ0AIAMoAqQBIAFBARCRgICAAAtBACEPQQAhDQsgAkEEaigCACETAkAgAkEIaigCACIBRQ0AIBMgAUEobGohCiATIQEDQAJAIAEoAgAiBkUNACABQQRqKAIAIAZBARCRgICAAAsgAUEMaiIGEJaAgIAAAkAgAUEcaigCACIFRQ0AIAFBIGooAgAgBUEBEJGAgIAACyAGQRxqIgEgCkcNAAsLAkAgAigCACIBRQ0AIBMgAUEobEEEEJGAgIAACwJAAkACQAJAAkAgDUUNACAEQSAgCSAHQQhqIA0gDCADQegAahCAgICAABCXgICAACIBQf8BcUEsRw0BAkACQAJAAkAgAygCaCIBRQ0AIAFBf0wNBiABQQEQj4CAgAAiBkUNByAGIAEgA0E4ahCBgICAABCXgICAACIFQf8BcUEsRw0IIANB6ABqIAYgARCYgICAACADLQBoIQUCQCADKAJsIgpFDQAgAzUCcCEUIAMvAGkhDCADLQBrIRMgA0HoAGogAygCdCADKAJ4EJmAgIAAIAwgE0EQdHIhDCADKAJoIhNBDEcNAiAMQQh0IAVyIQsgAy0AbCEFIAtFDQAgCiALQQEQkYCAgAALIAYgAUEBEJGAgIAADAILQQAhBQwBCyADQThqQQhqIgIgA0H1AGopAAA3AwAgA0E4akEQaiADQf0AaikAADcDACADQThqQRhqIhAgA0HoAGpBHWopAAA3AwAgA0E4akEgaiIRIANB6ABqQSVqKQAANwMAIANBOGpBJ2oiEiADQZQBaigAADYAACADIAMpAG03AzggAygCnAFFDQECQCAMQQh0IAVyIgNFDQAgCiADQQEQkYCAgAALIAYgAUEBEJGAgIAAQQIhBQsgBRCLgICAABCMgICAAAALIAMtAGwhDiADQQhqQSdqIgcgEigAADYAACADQQhqQSBqIhIgESkDADcDACADQQhqQRhqIhEgECkDADcDACADQQhqQRBqIhAgA0E4akEQaikDADcDACADQQhqQQhqIhUgAikDADcDACADIAMpAzg3AwggBiABQQEQkYCAgAAgACAOOgAUIAAgEzYCECAAIBQ3AwggACAKNgIEIAAgDEEIdCAFcjYCACAAIAMpAwg3ABUgAEEdaiAVKQMANwAAIABBJWogECkDADcAACAAQS1qIBEpAwA3AAAgAEE1aiASKQMANwAAIABBPGogBygAADYAAAJAIA8gC0H/AXFyIgFFDQAgDSABQQEQkYCAgAALAkAgCEUNACAJIAhB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IAAoAgQQk4CAgAAgACgCBEEQQQQQkYCAgAAgAEEIaiIBKAIAEJOAgIAAIAEoAgBBEEEEEJGAgIAAIABBDGohAAsgACgCABCTgICAACAAKAIAQRBBBBCRgICAAAsL+wwBAn8DQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAAoAgAOFwABAgMEBQYHCAkKCwwNDg8QERITFBUWAAsCQCABKAIIIgAgASgCAEcNACABIAAQpoCAgAAgASgCCCEACyABKAIEIABqQQA6AAAgASAAQQFqNgIIDwsCQCABKAIIIgAgASgCAEcNACABIAAQpoCAgAAgASgCCCEACyABKAIEIABqQQE6AAAgASAAQQFqNgIIDwsCQCABKAIIIgAgASgCAEcNACABIAAQpoCAgAAgASgCCCEACyABKAIEIABqQQI6AAAgASAAQQFqNgIIDwsCQCABKAIIIgAgASgCAEcNACABIAAQpoCAgAAgASgCCCEACyABKAIEIABqQQM6AAAgASAAQQFqNgIIDwsCQCABKAIIIgAgASgCAEcNACABIAAQpoCAgAAgASgCCCEACyABKAIEIABqQQQ6AAAgASAAQQFqNgIIDwsCQCABKAIIIgAgASgCAEcNACABIAAQpoCAgAAgASgCCCEACyABKAIEIABqQQU6AAAgASAAQQFqNgIIDwsCQCABKAIIIgAgASgCAEcNACABIAAQpoCAgAAgASgCCCEACyABKAIEIABqQQY6AAAgASAAQQFqNgIIDwsCQCABKAIIIgAgASgCAEcNACABIAAQpoCAgAAgASgCCCEACyABKAIEIABqQQc6AAAgASAAQQFqNgIIDwsCQCABKAIIIgAgASgCAEcNACABIAAQpoCAgAAgASgCCCEACyABKAIEIABqQQg6AAAgASAAQQFqNgIIDwsCQCABKAIIIgAgASgCAEcNACABIAAQpoCAgAAgASgCCCEACyABKAIEIABqQQk6AAAgASAAQQFqNgIIDwsCQCABKAIIIgAgASgCAEcNACABIAAQpoCAgAAgASgCCCEACyABKAIEIABqQQo6AAAgASAAQQFqNgIIDwsCQCABKAIIIgAgASgCAEcNACABIAAQpoCAgAAgASgCCCEACyABKAIEIABqQQs6AAAgASAAQQFqNgIIDwsCQCABKAIIIgAgASgCAEcNACABIAAQpoCAgAAgASgCCCEACyABKAIEIABqQQw6AAAgASAAQQFqNgIIDwsCQCABKAIIIgAgASgCAEcNACABIAAQpoCAgAAgASgCCCEACyABKAIEIABqQRY6AAAgASAAQQFqNgIIDwsgAEEEaiECQQ0hAyABKAIIIgAgASgCAEcNCQwICyAAQQRqIQJBDiEDIAEoAggiACABKAIARg0HDAgLAkAgASgCCCICIAEoAgBHDQAgASACEKaAgIAAIAEoAgghAgsgASgCBCACakEPOgAAIAEgAkEBaiICNgIIIAAoAgQhAAJAIAEoAgAgAmtBA0sNACABIAJBBBCNgICAACABKAIIIQILIAEoAgQgAmogADYAACABIAJBBGo2AggPCyAAQQhqIQMCQCABKAIIIgIgASgCAEcNACABIAIQpoCAgAAgASgCCCECCyABIAJBAWo2AgggASgCBCACakEQOgAAIAAoAgQgARCUgICAACADKAIAIQAMBwsgAEEIaiEDAkAgASgCCCICIAEoAgBHDQAgASACEKaAgIAAIAEoAgghAgsgASACQQFqNgIIIAEoAgQgAmpBEToAACAAKAIEIAEQlICAgAAgAygCACEADAYLIABBBGohAgJAIAEoAggiACABKAIARw0AIAEgABCmgICAACABKAIIIQALIAEgAEEBajYCCCABKAIEIABqQRI6AAAgAigCACEADAULAkAgASgCCCICIAEoAgBHDQAgASACEKaAgIAAIAEoAgghAgsgASACQQFqNgIIIAEoAgQgAmpBEzoAACAAKAIEIAEQlICAgAAgAEEIaigCACEADAQLAkAgASgCCCICIAEoAgBHDQAgASACEKaAgIAAIAEoAgghAgsgASACQQFqNgIIIAEoAgQgAmpBFDoAACAAKAIEIAEQlICAgAAgAEEIaigCACABEJSAgIAAIABBDGooAgAhAAwDCwJAIAEoAggiACABKAIARw0AIAEgABCmgICAACABKAIIIQALIAEoAgQgAGpBFToAACABIABBAWo2AggPCyABIAAQpoCAgAAgASgCCCEACyABKAIEIABqIAM6AAAgASAAQQFqNgIIIAIoAgAhAAwACwsJABCigICAAAALkAIBAX8CQAJAAkACQAJAAkACQAJAAkAgACgCAEFyag4IAAEI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AEEgaiABQRlqKQAANwAADwsgAEEMNgIAIABBADoABA8LAkAgA0EgSQ0AIABBATYCACAAIAEpAAI3AAkgACACQV9qNgI0IAAgAUEhajYCMCAAIAEtAAE6AAggAEERaiABQQpqKQAANwAAIABBGWogAUESaikAADcAACAAQSBqIAFBGWopAAA3AAAPCyAAQQw2AgAgAEEAOgAEDwtBACEEAkAgA0EgSQ0AIANBIEYNAEEBIQQgAS0AISIDQQdLDQAgAS0AASEEIAAgAzoAKCAAIAQ6AAggAEECNgIAIAAgAUECaiIDKQAANwAJIAAgAkFeajYCNCAAIAFBImo2AjAgAEEgaiADQRdqKQAANwAAIABBGWogA0EQaikAADcAACAAQRFqIANBCGopAAA3AAAPCyAAQQw2AgAgACAEOgAEDwsCQCADQSBJDQAgAEEDNgIAIAAgASkAAjcACSAAIAJBX2o2AjQgACABQSFqNgIwIAAgAS0AAToACCAAQRFqIAFBCmopAAA3AAAgAEEZaiABQRJqKQAANwAAIABBIGogAUEZaikAADcAAA8LIABBDDYCACAAQQA6AAQPCwJAIANBIEkNACAAQQQ2AgAgACABKQACNwAJIAAgAkFfajYCNCAAIAFBIWo2AjAgACABLQABOgAIIABBEWogAUEKaikAADcAACAAQRlqIAFBEmopAAA3AAAgAEEgaiABQRlqKQAANwAADwsgAEEMNgIAIABBADoABA8LAkAgA0EISQ0AIABBBTYCACAAIAJBd2o2AjQgACABQQlqNgIwIAAgASkAATcDCA8LIABBDDYCACAAQQA6AAQPCwJAIANBIEkNACAAQQY2AgAgACABKQACNwAJIAAgAkFfajYCNCAAIAFBIWo2AjAgACABLQABOgAIIABBEWogAUEKaikAADcAACAAQRlqIAFBEmopAAA3AAAgAEEgaiABQRlqKQAANwAADwsgAEEMNgIAIABBADoABA8LAkAgA0EgSQ0AIABBBzYCACAAIAEpAAI3AAkgACACQV9qNgI0IAAgAUEhajYCMCAAIAEtAAE6AAggAEERaiABQQpqKQAANwAAIABBGWogAUESaikAADcAACAAQSBqIAFBGWopAAA3AAAPCyAAQQw2AgAgAEEAOgAEDwsCQCADQSBJDQAgAEEINgIAIAAgASkAAjcACSAAIAJBX2o2AjQgACABQSFqNgIwIAAgAS0AAToACCAAQRFqIAFBCmopAAA3AAAgAEEZaiABQRJqKQAANwAAIABBIGogAUEZaikAADcAAA8LIABBDDYCACAAQQA6AAQPCwJAIANBIEkNACAAQQk2AgAgACABKQACNwAJIAAgAkFfajYCNCAAIAFBIWo2AjAgACABLQABOgAIIABBEWogAUEKaikAADcAACAAQRlqIAFBEmopAAA3AAAgAEEgaiABQRlqKQAANwAADwsgAEEMNgIAIABBADoABA8LAkAgA0EgSQ0AIABBCjYCACAAIAJBX2o2AjQgACABQSFqNgIwDwsgAEEMNgIAIABBADoABA8LIABBDDYCACAAQQE6AAQPCwJAIANBIEkNACAAQQs2AgAgACACQV9qNgI0IAAgAUEhajYCMA8LIABBDDYCACAAQQA6AAQLjQQBCH8jgICAgABB8ABrIgMkgICAgAAgA0EANgIIAkACQAJAAkACQCABIAIgA0EIahCCgICAABCXgICAACIEQf8BcSIFQSxGDQAgBUEBRw0BQQEQjICAgAAACwJAAkAgAygCCCIFRQ0AIAVBf0wNAyAFQQEQj4CAgAAiBEUNBCABIAIgBCAFEIOAgIAAEJeAgIAAIgJB/wFxQSxHDQUgA0EIaiAEIAUQmYCAgAACQCADKAIIIgJBDEYNACADQcgAaiIBIANBCGpBDWopAAA3AwAgA0HQAGoiBiADQQhqQRVqKQAANwMAIANB2ABqIgcgA0EIakEdaikAADcDACADQeAAaiIIIANBCGpBJWopAAA3AwAgA0HnAGoiCSADQQhqQSxqKAAANgAAIAMgAykADTcDQCADKAI8RQ0CIAQgBUEBEJGAgIAADAELIAQgBUEBEJGAgIAAC0ECEIyAgIAAAAsgAy0ADCEKIAAgAykDQDcABSAAQSxqIAkoAAA2AAAgAEElaiAIKQMANwAAIABBHWogBykDADcAACAAQRVqIAYpAwA3AAAgAEENaiABKQMANwAAIAQgBUEBEJGAgIAAIAAgCjoABCAAIAI2AgAgA0HwAGokgICAgAAPCyAEEIyAgIAAAAtBIhCMgICAAAALQRMQjICAgAAACyAEIAVBARCbgICAACACEIyAgIAAAAsOACAAIAEgAhCRgICAAAsKACAAEKOAgIAAC+IBAQJ/AkAC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m4DAgAAgAEHYAWoQhoCAgAAgACgCuAJBGEcNASACIABByABqQShqKQMANwMAIAEgAEHIAGpBIGopAwA3AwAgAyAAQcgAakEYaikDADcDACAEIABByABqQRBqKQMANwMAIAUgAEHIAGpBCGopAwA3AwAgACAAKQNINwPYASAAQbgCaiAAQagCakGRgMCAACAAQdgBahCGgICAACAAKAK4AkEYRw0CIABBmAJqQQhqIABBqAJqQQhqKAIANgIAIAAgACkDqAI3A5gCIABBuAJqQRhqIABBGGopAwA3AwAgAEG4AmpBEGogAEEQaikDADcDACAAQbgCakEIaiAAQQhqKQMANwMAIAAgACkDADcDuAIgAEHYAWogAEG4AmogAEGYAmoQioCAgAALIABBqAFqQQhqIgQgAEHYAWpBGGoiBSkDADcDACAAQagBakEQaiIGIABB2AFqQSBqIggpAwA3AwAgAEGoAWpBGGoiCSAAQdgBakEoaiIKKQMANwMAIABBqAFqQSBqIgsgAEGIAmopAwA3AwAgAEGoAWpBKGoiDCAAQZACaikDADcDACAAIAApA+gBNwOoASAAKALYASECIABB2AFqIAAoAtwBIg0gACgC4AEQkICAgAAgACgC3AEiAUUNAiAAKALgASEOIAAoAtgBIQMgCiAMKQMANwMAIAggCykDADcDACAFIAkpAwA3AwAgAEHYAWpBEGogBikDADcDACAAQdgBakEIaiAEKQMANwMAIAAgACkDqAE3A9gBIABBuAJqIABB2AFqEIeAgIAAIAAoArwCIgRFDQMgACgCuAIhBSABIA4gBCAAKALAAhCFgICAAAJAIAVFDQAgBCAFQQEQkYCAgAALAkAgA0UNACABIANBARCRgICAAAsCQCACRQ0AIA0gAkEBEJGAgIAACyAAQeACaiSAgICAAA8LIABB2AFqEJ+AgIAAAAsgAEHYAWoQn4CAgAAACyAALQDYARChgICAABCMgICAAAALIAAtALgCEKGAgIAAEIyAgIAAAAtBAhCMgICAAAALQQIQjICAgAAACwkAEKKAgIAAAAsJABCigICAAAALFwAgAEEYdEEYdUECdEGUg8CAAGooAgALBAAAAAv4AgECfyAAQQh2IQFBASECAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJA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BpQMAAA5WwAABQAAAAJnMQeHDAAAOVsAAAUAAAADYwUbAAZGAAAAP1sAADUAAAACaAkGIA0AAD9bAAAFAAAAAh8dBxMNAAA/WwAABQAAAAT8AxcABtAPAABjWwAABwAAAAIjFwfDDwAAY1sAAAcAAAAFmAMXAAY6DQAAalsAAAEAAAACIhkHLQ0AAGpbAAABAAAABPwDFwAABlIAAACcWwAAUQAAAAJyDQZUDQAA41sAAAEAAAACUiUHRw0AAONbAAABAAAABPwDFwAABl4AAADzWwAALAAAAAJwDQZuDQAAClwAAAcAAAACMCMHYQ0AAApcAAAHAAAABPwDFwAGiA0AABFcAAABAAAAAi8lB3sNAAARXAAAAQAAAAT8AxcAAAYEEAAAIlwAAAcAAAACdRMH9w8AACJcAAAHAAAABZgDFwAG6g8AAIVbAAANAAAAAmoTB90PAACFWwAADQAAAAWYAxcABmoAAAAqXAAALQAAAAJ4BQYeEAAASFwAAAcAAAACIxcHERAAAEhcAAAHAAAABZgDFwAGog0AAE9cAAABAAAAAiIZB5UNAABPXAAAAQAAAAT8AxcAAAAABf////+mAgAAB+0DAAAAAJ+bAwAAfAEAAAEpAQihDAAA/////xIAAAAGISUJpwAAACAAAAAGJw0GOBAAAP////8HAAAAAscXBysQAAD/////BwAAAAWYAxcACcQAAABAAAAAAs0JCVgOAABYAAAAAoEfB0sOAAD/////CQAAAARPBBcK9QwAAP////8FAAAABE8ELwfoDAAA/////wUAAAAHTwUbAAAGcg4AAP////8BAAAAAoMZB2UOAAD/////AQAAAARPBBcAAAbQAAAA/////1EAAAAC1w0GjA4AAP////8BAAAAArMlB38OAAD/////AQAAAARPBBcAAAbcAAAA/////zIAAAAC1Q0Gpg4AAP////8BAAAAApAlB5kOAAD/////AQAAAARPBBcAAAagEAAA/////w0AAAACzxMHkxAAAP////8NAAAABesDFwAJ6AAAAHAAAAAC3QUGwA4AAP////8BAAAAAoMZB7MOAAD/////AQAAAARPBBcAAAa8DQAA/////wsAAAACxhkHrw0AAP////8LAAAABPwDFwAACbMAAACIAAAABiUNBrsMAAD/////BQAAAAJnMQeuDAAA/////wUAAAADYwUbAAZ2AAAA/////zUAAAACaAkG1g0AAP////8FAAAAAh8dB8kNAAD/////BQAAAAT8AxcABlIQAAD/////BwAAAAIjFwdFEAAA/////wcAAAAFmAMXAAbwDQAA/////wEAAAACIhkH4w0AAP////8BAAAABPwDFwAABoIAAAD/////UQAAAAJyDQYKDgAA/////wEAAAACUiUH/Q0AAP////8BAAAABPwDFwAABo4AAAD/////LAAAAAJwDQYkDgAA/////wcAAAACMCMHFw4AAP////8HAAAABPwDFwAGPg4AAP////8BAAAAAi8lBzEOAAD/////AQAAAAT8AxcAAAaGEAAA/////wkAAAACdRMHeRAAAP////8JAAAABZgDFwAGbBAAAP////8NAAAAAmoTB18QAAD/////DQAAAAWYAxcABpoAAAD/////KwAAAAJ4BQa6EAAA/////wcAAAACIxcHrRAAAP////8HAAAABZgDFwAG2g4AAP////8BAAAAAiIZB80OAAD/////AQAAAAT8AxcAAAAABf////+1AAAAB+0DAAAAAJ9rDAAARgAAAAEpAQb1AAAA/////6UAAAAGLwkK1QwAAP////8FAAAAAgABKQfIDAAA/////wUAAAADYwUbAAoGAQAA/////ycAAAACAQEJBvQOAAD/////BQAAAALkFQfnDgAA/////wUAAAAE/AMXAAYODwAA/////wEAAAAC5xMHAQ8AAP////8BAAAABPwDFwAAChIBAAD/////NwAAAAIGAQkGKA8AAP////8LAAAAAvUVBxsPAAD/////CwAAAAT8AxcABkIPAAD/////AQAAAAL5Hwc1DwAA/////wEAAAAE/AMXAAAKHgEAAP////8jAAAAAgoBBQZcDwAA/////wEAAAAC5xMHTw8AAP////8BAAAABPwDFwAAAAAF/////0oAAAAH7QMAAAAAn5ALAABKAQAAASkBCCsBAAD/////PwAAAAY2CQAL/////w4AAAAH7QMAAAAAn6EMAABRAQAAASkBC/////8+AAAAB+0DAAAAAJ/gDQAAVgEAAAEpAQNsDwAAAxYAAAZOAQX/////uQAAAAftAwAAAACfJAQAAMUaAAABnAEGIwgAAP////+4AAAABo4JBnYPAAD/////BwAAAAZTKQdp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///+/////v////7///8AAAAAAAAAAP7////+/////v////7////+/////v////7////+////AAAAAAAAAAD+/////v////7////+/////v////7////+/////v///wAAAAAAAAAA/v////7////+/////v////7////+/////v////7///8AAAAAAAAAAP7////+/////v////7////+/////v////7////+////AAAAAAAAAAD+/////v////7////+/////v////7////+/////v///wAAAAAAAAAA/v////7////+/////v////7////+/////v////7///8AAAAAAAAAAP7////+/////v////7////+/////v////7////+////AAAAAAAAAAD+/////v////7////+/////v////7////+/////v///wAAAAAAAAAA/v////7////+/////v////7////+/////v////7///8AAAAAAAAAAP7////+/////v////7////+/////v////7////+////AAAAAAAAAAD+/////v////7////+/////v////7////+/////v///wAAAAAAAAAA/v////7////+/////v////7////+/////v////7///8AAAAAAAAAAP7////+/////v////7////+/////v////7////+////AAAAAAAAAAD+/////v////7////+/////v////7////+/////v///wAAAAAAAAAA/v////7////+/////v////7////+////AAAAAAAAAAD+/////v////7////+/////v////7///8AAAAAAAAAAP7////+/////v////7////+/////v////7////+////AAAAAAAAAAD+/////v////7////+/////v////7////+/////v///wAAAAAAAAAA/v////7////+/////v////7////+////AAAAAAAAAAD+/////v////7////+/////v////7///8AAAAAAAAAAP7////+/////v////7////+/////v////7////+////AAAAAAAAAAD+/////v////7////+/////v////7////+/////v///wAAAAAAAAAA/v////7////+/////v////7////+////AAAAAAAAAAD+/////v////7////+/////v////7///8AAAAAAAAAACBbAABcXAAA/v////7////+/////v////7////+/////v////7////+/////v////7////+/////v////7////+/////v////7////+/////v////7////+/////v////7////+/////v////7////+/////v////7////+/////v////7////+/////v///wAAAAAAAAAAAJ8DDS5kZWJ1Z19hYmJyZXYBEQElDhMFAw4QFxsOtEIZEQESBgAAAjkBAw4AAAMuABEBEgZAGG4OAw46CzsFPxmHARkAAAQRASUOEwUDDhAXGw60QhkRAVUXAAAFLgARARIGQBhuDgMOOgs7Cz8ZhwEZAAAGLgARARIGQBhuDgMOOgs7CzYLPxmHARkAAAcuABEBEgZAGG4OAw46CzsFNgs/GYcBGQAAAAERASUOEwUDDhAXGw60QhkRARIGAAACOQEDDgAAAy4AEQESBkAYAw46CzsFPxkAAAABEQElDhMFAw4QFxsOtEIZEQFVFwAAAjkBAw4AAAMuAG4OAw46CzsLIAsAAAQuAG4OAw46CzsFIAsAAAUuAREBEgZAGG4OAw46CzsFPxkAAAYdATETEQESBlgLWQtXCwAABx0AMRMRARIGWAtZBVcLAAAIHQAxExEBEgZYC1kLVwsAAAkdATETVRdYC1kLVwsAAAodATETEQESBlgLWQVXCwAACy4AEQESBkAYbg4DDjoLOwU/GQAADB0AMRNVF1gLWQVXCwAAAADFIAsuZGVidWdfbGluZU4AAAAEADQAAAABAQH7Dg0AAQEBAQAAAAEAAAFsaWJyYXJ5L2FsbG9jL3NyYwAAcmF3X3ZlYy5ycwABAAAAAAUChTYAAAOLBAEFBQohAggAAQGHAAAABABCAAAAAQEB+w4NAAEBAQEAAAABAAABbGlicmFyeS9jb3JlL3NyYwAAcGFuaWNraW5nLnJzAAEAAHJlc3VsdC5ycwABAAAAAAUCGFYAAAMwAQUOCgMPIAIDAAEBAAUC9lUAAAPqAAEFBQonAggAAQEEAgAFAuxVAAAD1A0BBQUKIQIIAAEBQgAAAAQAJQAAAAEBAfsODQABAQEBAAAAAQAAAXNyYwAAbWFjcm9zLnJzAAEAAAAABQIQWwAAA7ACAQUR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//8DmwMBBAYFDwoD6H08BgP8fnQFEQYD9wC6BQ8DDZAGA/x+CIIDhAFKBQ0GCCEFDwJTEQUNkgUPHgYD/H66A4QBZgUNBksFD8cEAQUKA5oC1gIBAAEBAAUC/////wObAwEEBgUPCgPofTwGA/x+dAURBgP3ANYFDwMNkAYD/H4IggOEAUoFDQYIIQUPAlMRBQ2SBQ8eBgP8froDhAFmBQ0GSwUPxwQBBQoDmgLWAgEAAQEABQL/////A5sDAQQGBQ8KA+h9WAYD/H50BREGA/cACDwFDwMNkAYD/H4IggOEAUoFDQYIIQUPAlQRBQ2SBQ8eBgP8froDhAFmBQ0GSwUPxwQBBQoDmgLWAgEAAQEA6zcKLmRlYnVnX3N0cntpbXBsIzV9AHtpbXBsIzExfQB7aW1wbCMwfQBtZW1jcHkAY2FwYWNpdHlfb3ZlcmZsb3cAcGFuaWNfZm10AHJlc3VsdABtZW1zZXQAY29tcGlsZXJfYnVpbHRpbnMAaW1wbHMAc2V0X2J5dGVzAHNldF9ieXRlc19ieXRlcwBjb21wYXJlX2J5dGVzAGNvcHlfZm9yd2FyZF9ieXRlcwBjb3B5X2JhY2t3YXJkX2J5dGVzAHNldF9ieXRlc193b3JkcwBjb3B5X2ZvcndhcmRfbWlzYWxpZ25lZF93b3JkcwBjb3B5X2JhY2t3YXJkX21pc2FsaWduZWRfd29yZHMAY29weV9mb3J3YXJkX2FsaWduZWRfd29yZHMAY29weV9iYWNrd2FyZF9hbGlnbmVkX3dvcmRzAG11dF9wdHIAY29uc3RfcHRyAG1lbWNtcABiY21wAHN0cmxlbgBudW0AbWVtAHBhbmlja2luZwB3cmFwcGluZ19uZWcAbWVtbW92ZQBjb3JlAGNvcHlfZm9yd2FyZABjb3B5X2JhY2t3YXJkAHVud3JhcF9mYWlsZWQAL3J1c3RjLzkwMGMzNTQwMzc4Yzg0MjJiODA4N2ZmYTNkYjYwZmE2YzhhYmZjYWQAYWxsb2MAcGFuaWMAcmF3X3ZlYwB3cmFwcGluZ19zdWIAX1pONGNvcmUzcHRyN211dF9wdHIzMV8kTFQkaW1wbCR1MjAkJEJQJG11dCR1MjAkVCRHVCQzc3ViMTdoZTZmZjQxMmY2YzJiN2ViZkUAX1pOMTdjb21waWxlcl9idWlsdGluczNtZW00MF9fbGx2bV9tZW1jcHlfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljXzQxN2hmYjlkMzY1ODIzZGQwOGFmRQBfWk4xN2NvbXBpbGVyX2J1aWx0aW5zM21lbTQwX19sbHZtX21lbXNldF9lbGVtZW50X3Vub3JkZXJlZF9hdG9taWNfNDE3aGMwMmJhNDJmZWFjMTA3YWZFAF9aTjRjb3JlM251bTIzXyRMVCRpbXBsJHUyMCRpc2l6ZSRHVCQxMndyYXBwaW5nX3N1YjE3aGMyNzE4MWM2ODdjYzBiOGZFAF9aTjE3Y29tcGlsZXJfYnVpbHRpbnMzbWVtMzFtZW1zZXRfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljMTdoMWFkNGVhZTUyNjNmNDk4ZkUAX1pOMTdjb21waWxlcl9idWlsdGluczNtZW03bWVtbW92ZTE3aGY1NWVlODBiNTcyZTQ5NmZFAF9aTjRjb3JlM3B0cjljb25zdF9wdHIzM18kTFQkaW1wbCR1MjAkJEJQJGNvbnN0JHUyMCRUJEdUJDNzdWIxN2hkMWJlYTExNTcxNzYxZjVmRQBfWk4xN2NvbXBpbGVyX2J1aWx0aW5zM21lbTQwX19sbHZtX21lbWNweV9lbGVtZW50X3Vub3JkZXJlZF9hdG9taWNfMTE3aDg5NTZkNTQ4MTNkOGVjNWZFAF9aTjE3Y29tcGlsZXJfYnVpbHRpbnMzbWVtMzFtZW1jcHlfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljMTdoMzY2OTExYTI3Zjc0NTAyZkUAX1pOMTdjb21waWxlcl9idWlsdGluczNtZW00MV9fbGx2bV9tZW1tb3ZlX2VsZW1lbnRfdW5vcmRlcmVkX2F0b21pY18xMTdoMTFkZGRjYjViMDA3MmZkZUUAX1pOMTdjb21waWxlcl9idWlsdGluczNtZW01aW1wbHM5c2V0X2J5dGVzMTVzZXRfYnl0ZXNfd29yZHMxN2gxMzUzZTE1NTM4ODU3ZDhlRQBfWk40Y29yZTNwdHI5Y29uc3RfcHRyMzNfJExUJGltcGwkdTIwJCRCUCRjb25zdCR1MjAkVCRHVCQzYWRkMTdoZDY0OGMwZDlmMTJkMjM3ZUUAX1pOMTdjb21waWxlcl9idWlsdGluczNtZW00MF9fbGx2bV9tZW1zZXRfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljXzgxN2gzYzViNGYyMWQxY2U5MjdlRQBfWk40Y29yZTNwdHI5Y29uc3RfcHRyMzNfJExUJGltcGwkdTIwJCRCUCRjb25zdCR1MjAkVCRHVCQ2b2Zmc2V0MTdoNzQ5ZDRiYTVjODgyODdmZEUAX1pOMTdjb21waWxlcl9idWlsdGluczNtZW01aW1wbHMxMmNvcHlfZm9yd2FyZDI2Y29weV9mb3J3YXJkX2FsaWduZWRfd29yZHMxN2hiNzVlMDlhNWFmZWE4YjhkRQBfWk4xN2NvbXBpbGVyX2J1aWx0aW5zM21lbTVpbXBsczEzY29tcGFyZV9ieXRlczE3aDViM2I5Yzc0NGZjYWIzMWRFAF9aTjE3Y29tcGlsZXJfYnVpbHRpbnMzbWVtMzFtZW1zZXRfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljMTdoZDE0MTRlMjM2MDYzNzcwZEUAX1pOMTdjb21waWxlcl9idWlsdGluczNtZW01aW1wbHMxMmNvcHlfZm9yd2FyZDE3aGU1MmZkZTI3NzBhZmJmOWNFAF9aTjE3Y29tcGlsZXJfYnVpbHRpbnMzbWVtNDFfX2xsdm1fbWVtbW92ZV9lbGVtZW50X3Vub3JkZXJlZF9hdG9taWNfNDE3aGQ3MTNlNTFkMzdiMjlkOWNFAF9aTjRjb3JlM3B0cjljb25zdF9wdHIzM18kTFQkaW1wbCR1MjAkJEJQJGNvbnN0JHUyMCRUJEdUJDZvZmZzZXQxN2gyMTQxZmU1MzI1MmIxYTljRQBfWk4xN2NvbXBpbGVyX2J1aWx0aW5zM21lbTMybWVtbW92ZV9lbGVtZW50X3Vub3JkZXJlZF9hdG9taWMxN2hlODI2YTIxOTQ1NWY4MDZjRQBfWk4xN2NvbXBpbGVyX2J1aWx0aW5zM21lbTQxX19sbHZtX21lbW1vdmVfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljXzgxN2g0M2JmMjRiZjg3MjRjZTRjRQBfWk4xN2NvbXBpbGVyX2J1aWx0aW5zM21lbTMybWVtbW92ZV9lbGVtZW50X3Vub3JkZXJlZF9hdG9taWMxN2hiY2I4OTUzNzliODY3ZWJiRQBfWk4xN2NvbXBpbGVyX2J1aWx0aW5zM21lbTMxbWVtc2V0X2VsZW1lbnRfdW5vcmRlcmVkX2F0b21pYzE3aDZmY2YxZDI4MTA3N2Y3NGJFAF9aTjE3Y29tcGlsZXJfYnVpbHRpbnMzbWVtNWltcGxzMTNjb3B5X2JhY2t3YXJkMTdoOWU4YzJlYjJhMWU0MzFlYUUAX1pOMTdjb21waWxlcl9idWlsdGluczNtZW01aW1wbHMxM2NvcHlfYmFja3dhcmQzMGNvcHlfYmFja3dhcmRfbWlzYWxpZ25lZF93b3JkczE3aGUwMDcyOTNkZGE3NWRkY2FFAF9aTjE3Y29tcGlsZXJfYnVpbHRpbnMzbWVtNDBfX2xsdm1fbWVtY3B5X2VsZW1lbnRfdW5vcmRlcmVkX2F0b21pY184MTdoODZkNGJhZTAxMzEzYTJjYUUAX1pONGNvcmUzcHRyN211dF9wdHIzMV8kTFQkaW1wbCR1MjAkJEJQJG11dCR1MjAkVCRHVCQzYWRkMTdoYzgwMmM0MWU0MWMyMWRiYUUAX1pONGNvcmUzbnVtMjNfJExUJGltcGwkdTIwJHVzaXplJEdUJDEyd3JhcHBpbmdfc3ViMTdoY2FkNDFlNDRkZjMzYmU3YUUAX1pOMTdjb21waWxlcl9idWlsdGluczNtZW0zMm1lbW1vdmVfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljMTdoOWIyNzUyYjI3ZWU0ZTE1YUUAX1pOMTdjb21waWxlcl9idWlsdGluczNtZW02bWVtY21wMTdoNjRlZjJlOGQ3MWMzNjU3OUUAX1pONGNvcmUzcHRyOWNvbnN0X3B0cjMzXyRMVCRpbXBsJHUyMCQkQlAkY29uc3QkdTIwJFQkR1QkNm9mZnNldDE3aGQ1YzJhY2UzZGVhYjZjNjlFAF9aTjE3Y29tcGlsZXJfYnVpbHRpbnMzbWVtMzFtZW1zZXRfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljMTdoZGY2NzEzZTQxZGI4Mzk2OUUAX1pOMTdjb21waWxlcl9idWlsdGluczNtZW02bWVtc2V0MTdoZjVhNzIyOTRkMTFmYzMyOUUAX1pOMTdjb21waWxlcl9idWlsdGluczNtZW00YmNtcDE3aDM0NWVjNTRkMzVhN2U3NzhFAF9aTjRjb3JlOXBhbmlja2luZzVwYW5pYzE3aDY3NTk5Yzc5OTZhNzIzNzhFAF9aTjRjb3JlM3B0cjljb25zdF9wdHIzM18kTFQkaW1wbCR1MjAkJEJQJGNvbnN0JHUyMCRUJEdUJDNhZGQxN2g2MWRmOGExZWIwMWI0MzM4RQBfWk4xN2NvbXBpbGVyX2J1aWx0aW5zM21lbTVpbXBsczEzY29weV9iYWNrd2FyZDE5Y29weV9iYWNrd2FyZF9ieXRlczE3aDkzNmJmZTkzYWU4NWZhMDhFAF9aTjRjb3JlNnJlc3VsdDEzdW53cmFwX2ZhaWxlZDE3aDIxZjhlNGI5NDY3MGNhZDdFAF9aTjE3Y29tcGlsZXJfYnVpbHRpbnMzbWVtNnN0cmxlbjE3aDUwMzJkYmNlZGQzZWVhNDdFAF9aTjE3Y29tcGlsZXJfYnVpbHRpbnMzbWVtMzJtZW1tb3ZlX2VsZW1lbnRfdW5vcmRlcmVkX2F0b21pYzE3aGQ4NWU4MTVjYTQ5OGFjZDZFAF9aTjE3Y29tcGlsZXJfYnVpbHRpbnMzbWVtNDBfX2xsdm1fbWVtY3B5X2VsZW1lbnRfdW5vcmRlcmVkX2F0b21pY18yMTdoZTY5MzA1OGJiNjMxY2VjNkUAX1pOMTdjb21waWxlcl9idWlsdGluczNtZW01aW1wbHMxMmNvcHlfZm9yd2FyZDE4Y29weV9mb3J3YXJkX2J5dGVzMTdoNzM5YTQ3YTZmOWZlZWU5NkUAX1pONGNvcmUzcHRyOWNvbnN0X3B0cjMzXyRMVCRpbXBsJHUyMCQkQlAkY29uc3QkdTIwJFQkR1QkNm9mZnNldDE3aDJkZTk1ZTdhNTk4MDMwMDZFAF9aTjE3Y29tcGlsZXJfYnVpbHRpbnMzbWVtMzFtZW1jcHlfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljMTdoNTM1MTIxMDA0ZDk3YWFmNUUAX1pOMTdjb21waWxlcl9idWlsdGluczNtZW00MF9fbGx2bV9tZW1zZXRfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljXzIxN2g4ZjYwNjJmOGVlZWU1YmU1RQBfWk40Y29yZTNwdHI3bXV0X3B0cjMxXyRMVCRpbXBsJHUyMCQkQlAkbXV0JHUyMCRUJEdUJDZvZmZzZXQxN2gyMDYyZjhlZmI5Zjk3ZmI1RQBfWk4xN2NvbXBpbGVyX2J1aWx0aW5zM21lbTVpbXBsczlzZXRfYnl0ZXMxN2hmNWFlOGM4ZWZjYzAyODM1RQBfWk40Y29yZTNudW0yM18kTFQkaW1wbCR1MjAkdXNpemUkR1QkMTJ3cmFwcGluZ19uZWcxN2gxMGNlMDFmYzI1ODdjNmI0RQBfWk4xN2NvbXBpbGVyX2J1aWx0aW5zM21lbTVpbXBsczEzY29weV9iYWNrd2FyZDI3Y29weV9iYWNrd2FyZF9hbGlnbmVkX3dvcmRzMTdoYTY1NjRlZTgzZDE3Njg5NEUAX1pONGNvcmU5cGFuaWNraW5nOXBhbmljX2ZtdDE3aGU5NWRhNDZlMzNhMGJkNzRFAF9aTjRjb3JlM3B0cjljb25zdF9wdHIzM18kTFQkaW1wbCR1MjAkJEJQJGNvbnN0JHUyMCRUJEdUJDNhZGQxN2hhNDRmYTQxNTQ3ODAxYjc0RQBfWk4xN2NvbXBpbGVyX2J1aWx0aW5zM21lbTMxbWVtY3B5X2VsZW1lbnRfdW5vcmRlcmVkX2F0b21pYzE3aDYyNWU5NTI4NmI4YTZiNTRFAF9aTjVhbGxvYzdyYXdfdmVjMTdjYXBhY2l0eV9vdmVyZmxvdzE3aDZhNzk2YTQ5ZDBlOGIxMDRFAF9aTjE3Y29tcGlsZXJfYnVpbHRpbnMzbWVtMzFtZW1jcHlfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljMTdoM2ZjZjAzZDRhM2Y4Y2I1M0UAX1pONGNvcmUzbnVtMjNfJExUJGltcGwkdTIwJGlzaXplJEdUJDEyd3JhcHBpbmdfbmVnMTdoMzNjYzhmNjdkMjIzZDliMkUAX1pONGNvcmUzcHRyN211dF9wdHIzMV8kTFQkaW1wbCR1MjAkJEJQJG11dCR1MjAkVCRHVCQzc3ViMTdoZmNhMWFkZWYwYjJlMmQ4MkUAX1pONGNvcmUzcHRyN211dF9wdHIzMV8kTFQkaW1wbCR1MjAkJEJQJG11dCR1MjAkVCRHVCQzYWRkMTdoNzY4MTA3MWU2Y2UzNGM0MkUAX1pONGNvcmUzcHRyN211dF9wdHIzMV8kTFQkaW1wbCR1MjAkJEJQJG11dCR1MjAkVCRHVCQ2b2Zmc2V0MTdoNGM4ODM1NjY1YTYwMzkxMkUAX1pONGNvcmUzcHRyOWNvbnN0X3B0cjMzXyRMVCRpbXBsJHUyMCQkQlAkY29uc3QkdTIwJFQkR1QkM2FkZDE3aDg4YTg2ZDAzM2FiNDE5MDJFAF9aTjE3Y29tcGlsZXJfYnVpbHRpbnMzbWVtNDFfX2xsdm1fbWVtbW92ZV9lbGVtZW50X3Vub3JkZXJlZF9hdG9taWNfMjE3aDk4NTJlMjBjNDBhNzkzOTFFAF9aTjE3Y29tcGlsZXJfYnVpbHRpbnMzbWVtNWltcGxzMTJjb3B5X2ZvcndhcmQyOWNvcHlfZm9yd2FyZF9taXNhbGlnbmVkX3dvcmRzMTdoZTcwY2NjNWI2ZjIzNDI4MUUAX1pOMTdjb21waWxlcl9idWlsdGluczNtZW00MF9fbGx2bV9tZW1zZXRfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljXzExN2gwOTE2ODQzMzg2YTQ5YTIxRQBfWk4xN2NvbXBpbGVyX2J1aWx0aW5zM21lbTVpbXBsczlzZXRfYnl0ZXMxNXNldF9ieXRlc19ieXRlczE3aDM2Y2JmYTM4OWRkZjUxZTBFAF9aTjE3Y29tcGlsZXJfYnVpbHRpbnMzbWVtNm1lbWNweTE3aDcwYWM3NWYwMzQ3MWIyMjBFAG9mZnNldDx1c2l6ZT4AYWRkPHVzaXplPgBzdWI8dXNpemU+AG9mZnNldDx1OD4AYWRkPHU4PgBtZW1jcHlfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljPHU4PgBtZW1zZXRfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljPHU4PgBtZW1tb3ZlX2VsZW1lbnRfdW5vcmRlcmVkX2F0b21pYzx1OD4Ac3ViPHU4PgBvZmZzZXQ8dTE2PgBhZGQ8dTE2PgBtZW1jcHlfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljPHUxNj4AbWVtc2V0X2VsZW1lbnRfdW5vcmRlcmVkX2F0b21pYzx1MTY+AG1lbW1vdmVfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljPHUxNj4Ab2Zmc2V0PHU2ND4AYWRkPHU2ND4AbWVtY3B5X2VsZW1lbnRfdW5vcmRlcmVkX2F0b21pYzx1NjQ+AG1lbXNldF9lbGVtZW50X3Vub3JkZXJlZF9hdG9taWM8dTY0PgBtZW1tb3ZlX2VsZW1lbnRfdW5vcmRlcmVkX2F0b21pYzx1NjQ+AG9mZnNldDx1MzI+AGFkZDx1MzI+AG1lbWNweV9lbGVtZW50X3Vub3JkZXJlZF9hdG9taWM8dTMyPgBtZW1zZXRfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljPHUzMj4AbWVtbW92ZV9lbGVtZW50X3Vub3JkZXJlZF9hdG9taWM8dTMyPgBfX2xsdm1fbWVtY3B5X2VsZW1lbnRfdW5vcmRlcmVkX2F0b21pY184AF9fbGx2bV9tZW1zZXRfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljXzgAX19sbHZtX21lbW1vdmVfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljXzgAL2NhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9jb21waWxlcl9idWlsdGlucy0wLjEuODcAL2NhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9jb21waWxlcl9idWlsdGlucy0wLjEuODcvc3JjL2xpYi5ycy9AL2NvbXBpbGVyX2J1aWx0aW5zLjQzNGQ0ODhjLWNndS4xNDYAX19sbHZtX21lbWNweV9lbGVtZW50X3Vub3JkZXJlZF9hdG9taWNfNABfX2xsdm1fbWVtc2V0X2VsZW1lbnRfdW5vcmRlcmVkX2F0b21pY180AF9fbGx2bV9tZW1tb3ZlX2VsZW1lbnRfdW5vcmRlcmVkX2F0b21pY180AC9jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvY29tcGlsZXJfYnVpbHRpbnMtMC4xLjg3L3NyYy9saWIucnMvQC9jb21waWxlcl9idWlsdGlucy40MzRkNDg4Yy1jZ3UuMTgzAF9fbGx2bV9tZW1jcHlfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljXzIAX19sbHZtX21lbXNldF9lbGVtZW50X3Vub3JkZXJlZF9hdG9taWNfMgBfX2xsdm1fbWVtbW92ZV9lbGVtZW50X3Vub3JkZXJlZF9hdG9taWNfMgBfX2xsdm1fbWVtY3B5X2VsZW1lbnRfdW5vcmRlcmVkX2F0b21pY18xAF9fbGx2bV9tZW1zZXRfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljXzEAX19sbHZtX21lbW1vdmVfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljXzEAbGlicmFyeS9jb3JlL3NyYy9saWIucnMvQC9jb3JlLjdiYzkyZmRmLWNndS4wAGxpYnJhcnkvYWxsb2Mvc3JjL2xpYi5ycy9AL2FsbG9jLjQ0NGZmMmU5LWNndS4wAGNsYW5nIExMVk0gKHJ1c3RjIHZlcnNpb24gMS43MC4wLW5pZ2h0bHkgKDkwMGMzNTQwMyAyMDIzLTAzLTA4KSkAALgPDy5kZWJ1Z19wdWJuYW1lczoAAAACAAAAAABPAAAAMAAAAGNhcGFjaXR5X292ZXJmbG93ACsAAAByYXdfdmVjACYAAABhbGxvYwAAAAAAWgAAAAIATwAAAI0AAAAwAAAAcGFuaWNfZm10AG0AAAB1bndyYXBfZmFpbGVkACsAAABwYW5pY2tpbmcAJgAAAGNvcmUASwAAAHBhbmljAGgAAAByZXN1bHQAAAAAADcAAAACANwAAABRAAAAJgAAAGNvbXBpbGVyX2J1aWx0aW5zADUAAABtZW1jcHkAKwAAAG1lbQAAAAAAzQYAAAIALQEAAAQSAADVDAAAd3JhcHBpbmdfbmVnADAAAABpbXBscwAJDQAAbXV0X3B0cgDtCAAAbWVtY3B5X2VsZW1lbnRfdW5vcmRlcmVkX2F0b21pYzx1MzI+AJkIAABtZW1jcHlfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljPHUxNj4AswAAAGNvcHlfZm9yd2FyZABBCQAAbWVtY3B5X2VsZW1lbnRfdW5vcmRlcmVkX2F0b21pYzx1NjQ+AMAOAABzdWI8dTg+AAEBAABzZXRfYnl0ZXMAQg8AAGFkZDx1c2l6ZT4AvwAAAGNvcHlfYmFja3dhcmQAsREAAG9mZnNldDx1MzI+AH0RAABvZmZzZXQ8dTE2PgArAAAAbWVtABIBAABzZXRfYnl0ZXNfd29yZHMA5REAAG9mZnNldDx1NjQ+ACYAAABjb21waWxlcl9idWlsdGlucwCVCQAAbWVtbW92ZV9lbGVtZW50X3Vub3JkZXJlZF9hdG9taWM8dTg+AAQMAABtZW1zZXRfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljPHUzMj4AKwEAAGNvbXBhcmVfYnl0ZXMAywsAAG1lbXNldF9lbGVtZW50X3Vub3JkZXJlZF9hdG9taWM8dTE2PgA9DAAAbWVtc2V0X2VsZW1lbnRfdW5vcmRlcmVkX2F0b21pYzx1NjQ+AKYOAABzdWI8dXNpemU+AJoAAABjb3B5X2ZvcndhcmRfYnl0ZXMAkwoAAG1lbW1vdmVfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljPHUzMj4AIQMAAG1lbW1vdmUAJQoAAG1lbW1vdmVfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljPHUxNj4AAQsAAG1lbW1vdmVfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljPHU2ND4Avg8AAHtpbXBsIzB9AL4RAABhZGQ8dTMyPgCKEQAAYWRkPHUxNj4A6AAAAGNvcHlfYmFja3dhcmRfYnl0ZXMApQgAAF9fbGx2bV9tZW1jcHlfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljXzIA8hEAAGFkZDx1NjQ+ANAAAABjb3B5X2JhY2t3YXJkX21pc2FsaWduZWRfd29yZHMA6wcAAGJjbXAATQkAAF9fbGx2bV9tZW1jcHlfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljXzgA+QgAAF9fbGx2bV9tZW1jcHlfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljXzQAeAwAAGNvcmUAoQkAAF9fbGx2bV9tZW1tb3ZlX2VsZW1lbnRfdW5vcmRlcmVkX2F0b21pY18xADkBAABtZW1jcHkAMQoAAF9fbGx2bV9tZW1tb3ZlX2VsZW1lbnRfdW5vcmRlcmVkX2F0b21pY18yAJ8KAABfX2xsdm1fbWVtbW92ZV9lbGVtZW50X3Vub3JkZXJlZF9hdG9taWNfNAAvCAAAX19sbHZtX21lbWNweV9lbGVtZW50X3Vub3JkZXJlZF9hdG9taWNfMQCCDAAAe2ltcGwjMTF9AKoPAABhZGQ8dTg+AMgMAAB3cmFwcGluZ19zdWIADQsAAF9fbGx2bV9tZW1tb3ZlX2VsZW1lbnRfdW5vcmRlcmVkX2F0b21pY184AAQNAABwdHIABwgAAHN0cmxlbgAjCAAAbWVtY3B5X2VsZW1lbnRfdW5vcmRlcmVkX2F0b21pYzx1OD4AvgcAAG1lbWNtcAB7CwAAX19sbHZtX21lbXNldF9lbGVtZW50X3Vub3JkZXJlZF9hdG9taWNfMQDXCwAAX19sbHZtX21lbXNldF9lbGVtZW50X3Vub3JkZXJlZF9hdG9taWNfMgDjDAAAe2ltcGwjNX0AEAwAAF9fbGx2bV9tZW1zZXRfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljXzQASQwAAF9fbGx2bV9tZW1zZXRfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljXzgAjQYAAG1lbXNldACdDwAAb2Zmc2V0PHU4PgB9DAAAbnVtADUPAABvZmZzZXQ8dXNpemU+AI4AAABjb3B5X2ZvcndhcmRfYWxpZ25lZF93b3JkcwAeAQAAc2V0X2J5dGVzX2J5dGVzAIIAAABjb3B5X2ZvcndhcmRfbWlzYWxpZ25lZF93b3JkcwDcAAAAY29weV9iYWNrd2FyZF9hbGlnbmVkX3dvcmRzALkPAABjb25zdF9wdHIAbwsAAG1lbXNldF9lbGVtZW50X3Vub3JkZXJlZF9hdG9taWM8dTg+AAAAAAAAzhsEbmFtZQGmGzAAFGNhc3Blcl9jYWxsX2NvbnRyYWN0ARdjYXNwZXJfcmVhZF9ob3N0X2J1ZmZlcgIZY2FzcGVyX2dldF9uYW1lZF9hcmdfc2l6ZQMUY2FzcGVyX2dldF9uYW1lZF9hcmcEDWNhc3Blcl9yZXZlcnQFDmNhc3Blcl9wdXRfa2V5BkdfWk4xMmNhc3Blcl90eXBlczEycnVudGltZV9hcmdzMTFSdW50aW1lQXJnczZpbnNlcnQxN2g3NjY5M2M3MzllYThhNTJjRQdtX1pONzVfJExUJGNhc3Blcl90eXBlcy4ua2V5Li5LZXkkdTIwJGFzJHUyMCRjYXNwZXJfdHlwZXMuLmJ5dGVzcmVwci4uVG9CeXRlcyRHVCQ4dG9fYnl0ZXMxN2gyNWQ3MTFjYWUyYjlhNzliRQgyX1pOOXdlZV9hbGxvYzE1YWxsb2NfZmlyc3RfZml0MTdoMDQ2Yjc3MDg5NjE3YTMxNUUJTF9aTjVhbGxvYzdyYXdfdmVjMTlSYXdWZWMkTFQkVCRDJEEkR1QkMTZyZXNlcnZlX2Zvcl9wdXNoMTdoYzdmN2I0Y2IxZjYyMWU4ZUUKTV9aTjE1Y2FzcGVyX2NvbnRyYWN0MTJjb250cmFjdF9hcGk3cnVudGltZTEzY2FsbF9jb250cmFjdDE3aDViMzk2MzlhODgwNzQ0YTJFC1BfWk41MF8kTFQkVCR1MjAkYXMkdTIwJGNvcmUuLmNvbnZlcnQuLkludG8kTFQkVSRHVCQkR1QkNGludG8xN2hjZDY5MTBhMjk4Y2UxNDU1RQxFX1pOMTVjYXNwZXJfY29udHJhY3QxMmNvbnRyYWN0X2FwaTdydW50aW1lNnJldmVydDE3aDY3NTVhODlhOWMwOTc3OGRFDVlfWk41YWxsb2M3cmF3X3ZlYzE5UmF3VmVjJExUJFQkQyRBJEdUJDdyZXNlcnZlMjFkb19yZXNlcnZlX2FuZF9oYW5kbGUxN2hhNjEwNTc4MTQyNzY2Njg3RQ5HX1pOMTJjYXNwZXJfdHlwZXM3Y2xfdHlwZTZDTFR5cGUxN3NlcmlhbGl6ZWRfbGVuZ3RoMTdoNDRjZjdlMjAwNTE5OWM3MEUPZ19aTjcyXyRMVCR3ZWVfYWxsb2MuLldlZUFsbG9jJHUyMCRhcyR1MjAkY29yZS4uYWxsb2MuLmdsb2JhbC4uR2xvYmFsQWxsb2MkR1QkNWFsbG9jMTdoNTNlYjUyMTA3YjZiMDM3Y0UQQl9aTjEyY2FzcGVyX3R5cGVzOWJ5dGVzcmVwcjE3dThfc2xpY2VfdG9fYnl0ZXMxN2hkMTM0NjYwMWNkMWIzZDVkRRFpX1pONzJfJExUJHdlZV9hbGxvYy4uV2VlQWxsb2MkdTIwJGFzJHUyMCRjb3JlLi5hbGxvYy4uZ2xvYmFsLi5HbG9iYWxBbGxvYyRHVCQ3ZGVhbGxvYzE3aDM4YjA3YmFlMTQxNWE5NWZFEmNfWk42OF8kTFQkY2FzcGVyX3R5cGVzLi5jbF90eXBlLi5DTFR5cGUkdTIwJGFzJHUyMCRjb3JlLi5jbG9uZS4uQ2xvbmUkR1QkNWNsb25lMTdoMTUwZjFmY2I0Mjg4NjRiZUUTVF9aTjRjb3JlM3B0cjUwZHJvcF9pbl9wbGFjZSRMVCRjYXNwZXJfdHlwZXMuLmNsX3R5cGUuLkNMVHlwZSRHVCQxN2g5YzE3YjMwODU2ZTAwMDJjRRRCX1pOMTJjYXNwZXJfdHlwZXM3Y2xfdHlwZTZDTFR5cGUxMmFwcGVuZF9ieXRlczE3aDE5YWMxMDViYmJkYWFiZGFFFThfWk41YWxsb2M3cmF3X3ZlYzE3Y2FwYWNpdHlfb3ZlcmZsb3cxN2g2YTc5NmE0OWQwZThiMTA0RRZUX1pONGNvcmUzcHRyNTBkcm9wX2luX3BsYWNlJExUJGNhc3Blcl90eXBlcy4uY2xfdHlwZS4uQ0xUeXBlJEdUJDE3aDg3YzNhNmJjMjYyMGYwNmVFFzxfWk4xMmNhc3Blcl90eXBlczlhcGlfZXJyb3IxMXJlc3VsdF9mcm9tMTdoYzI0NmMxOWM0Mzg1MDc3ZEUYcV9aTjc2XyRMVCRhbGxvYy4uc3RyaW5nLi5TdHJpbmckdTIwJGFzJHUyMCRjYXNwZXJfdHlwZXMuLmJ5dGVzcmVwci4uRnJvbUJ5dGVzJEdUJDEwZnJvbV9ieXRlczE3aGQ2ZWM4YjY3ZjE0YTFlMDRFGXJfWk43N18kTFQkY2FzcGVyX3R5cGVzLi5rZXkuLktleSR1MjAkYXMkdTIwJGNhc3Blcl90eXBlcy4uYnl0ZXNyZXByLi5Gcm9tQnl0ZXMkR1QkMTBmcm9tX2J5dGVzMTdoYjM0ODkyOWUyZmE1MmVlZkUaTV9aTjE1Y2FzcGVyX2NvbnRyYWN0MTJjb250cmFjdF9hcGk3cnVudGltZTEzZ2V0X25hbWVkX2FyZzE3aDA1YTQ4NzExNGM0NTJhODVFGw5fX3J1c3RfZGVhbGxvYxxQX1pONTBfJExUJFQkdTIwJGFzJHUyMCRjb3JlLi5jb252ZXJ0Li5JbnRvJExUJFUkR1QkJEdUJDRpbnRvMTdoMDI4MzU0MTllNmQ5ZDAwZEUdMl9aTjVhbGxvYzdyYXdfdmVjMTFmaW5pc2hfZ3JvdzE3aDgxYWMyYjdjZTM5MDA1N2RFHgRjYWxsHzJfWk40Y29yZTZyZXN1bHQxM3Vud3JhcF9mYWlsZWQxN2gyMWY4ZTRiOTQ2NzBjYWQ3RSAsX1pONGNvcmU5cGFuaWNraW5nNXBhbmljMTdoNjc1OTljNzk5NmE3MjM3OEUhUF9aTjUwXyRMVCRUJHUyMCRhcyR1MjAkY29yZS4uY29udmVydC4uSW50byRMVCRVJEdUJCRHVCQ0aW50bzE3aDlmNzAzYTU4NDJmYzM3OTRFIjBfWk40Y29yZTlwYW5pY2tpbmc5cGFuaWNfZm10MTdoZTk1ZGE0NmUzM2EwYmQ3NEUjlAFfWk4xMmNhc3Blcl90eXBlczlhcGlfZXJyb3I5NF8kTFQkaW1wbCR1MjAkY29yZS4uY29udmVydC4uRnJvbSRMVCRjYXNwZXJfdHlwZXMuLmFwaV9lcnJvci4uQXBpRXJyb3IkR1QkJHUyMCRmb3IkdTIwJHUzMiRHVCQ0ZnJvbTE3aDUxZTUxZTMwZGMyMTYzN2FFJANvb20lMl9aTjVhbGxvYzdyYXdfdmVjMTFmaW5pc2hfZ3JvdzE3aDUwYzhiMmIyN2NhYWFhMGZFJkxfWk41YWxsb2M3cmF3X3ZlYzE5UmF3VmVjJExUJFQkQyRBJEdUJDE2cmVzZXJ2ZV9mb3JfcHVzaDE3aDNmMDJlZGFjZjZjYWJiMDZFJ4kBX1pOODhfJExUJHdlZV9hbGxvYy4uc2l6ZV9jbGFzc2VzLi5TaXplQ2xhc3NBbGxvY1BvbGljeSR1MjAkYXMkdTIwJHdlZV9hbGxvYy4uQWxsb2NQb2xpY3kkR1QkMjJuZXdfY2VsbF9mb3JfZnJlZV9saXN0MTdoZjI1ODU3OWQxMDRiMzMyOEUoUl9aTjRjb3JlM3B0cjQ4ZHJvcF9pbl9wbGFjZSRMVCR3ZWVfYWxsb2MuLkxhcmdlQWxsb2NQb2xpY3kkR1QkMTdoZmQ0NjNiMDUxNDNmNzJkZEUpd19aTjcwXyRMVCR3ZWVfYWxsb2MuLkxhcmdlQWxsb2NQb2xpY3kkdTIwJGFzJHUyMCR3ZWVfYWxsb2MuLkFsbG9jUG9saWN5JEdUJDIybmV3X2NlbGxfZm9yX2ZyZWVfbGlzdDE3aGJiOTgyOTliNjliYzljN2ZFKm5fWk43MF8kTFQkd2VlX2FsbG9jLi5MYXJnZUFsbG9jUG9saWN5JHUyMCRhcyR1MjAkd2VlX2FsbG9jLi5BbGxvY1BvbGljeSRHVCQxM21pbl9jZWxsX3NpemUxN2g4MWQwYzYzZDk0NTg2N2I2RSuBAV9aTjcwXyRMVCR3ZWVfYWxsb2MuLkxhcmdlQWxsb2NQb2xpY3kkdTIwJGFzJHUyMCR3ZWVfYWxsb2MuLkFsbG9jUG9saWN5JEdUJDMyc2hvdWxkX21lcmdlX2FkamFjZW50X2ZyZWVfY2VsbHMxN2g3YWYwNDk2MDZkYjg4ZDUzRSyAAV9aTjg4XyRMVCR3ZWVfYWxsb2MuLnNpemVfY2xhc3Nlcy4uU2l6ZUNsYXNzQWxsb2NQb2xpY3kkdTIwJGFzJHUyMCR3ZWVfYWxsb2MuLkFsbG9jUG9saWN5JEdUJDEzbWluX2NlbGxfc2l6ZTE3aDYwYTJhZTZkZGE2NTZhYTBFLZMBX1pOODhfJExUJHdlZV9hbGxvYy4uc2l6ZV9jbGFzc2VzLi5TaXplQ2xhc3NBbGxvY1BvbGljeSR1MjAkYXMkdTIwJHdlZV9hbGxvYy4uQWxsb2NQb2xpY3kkR1QkMzJzaG91bGRfbWVyZ2VfYWRqYWNlbnRfZnJlZV9jZWxsczE3aGQzNzUyYjM4Y2JlMDA5NDRFLgZtZW1jcHkvNV9aTjE3Y29tcGlsZXJfYnVpbHRpbnMzbWVtNm1lbWNweTE3aDcwYWM3NWYwMzQ3MWIyMjBFBxIBAA9fX3N0YWNrX3BvaW50ZXIJCgEABy5yb2RhdGEAVQlwcm9kdWNlcnMCCGxhbmd1YWdlAQRSdXN0AAxwcm9jZXNzZWQtYnkBBXJ1c3RjJTEuNzAuMC1uaWdodGx5ICg5MDBjMzU0MDMgMjAyMy0wMy0wOCk="; + const wasm = new Uint8Array(Buffer.from(base64, 'base64')); + export default wasm; diff --git a/examples/client-js/tsconfig.json b/examples/client-js/tsconfig.json new file mode 100644 index 0000000..2c4dd6a --- /dev/null +++ b/examples/client-js/tsconfig.json @@ -0,0 +1,20 @@ +{ + "compilerOptions": { + "module": "CommonJS", + "esModuleInterop": true, + "target": "es5", + "moduleResolution": "Node", + "outDir": "dist", + "forceConsistentCasingInFileNames": true, + "noFallthroughCasesInSwitch": true, + "isolatedModules": false, + "strict": true, + "noImplicitAny": true, + "useUnknownInCatchVariables": false, + "inlineSourceMap": true, + }, + "ts-node": { + "esm": true + }, + "lib": ["esnext"] +} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index 21b4714..0000000 --- a/package-lock.json +++ /dev/null @@ -1,5159 +0,0 @@ -{ - "name": "casperdash-utils", - "version": "1.0.8", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "@ampproject/remapping": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", - "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", - "dev": true, - "requires": { - "@jridgewell/gen-mapping": "^0.1.0", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "dependencies": { - "@jridgewell/gen-mapping": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", - "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", - "dev": true, - "requires": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - } - } - }, - "@babel/code-frame": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", - "dev": true, - "requires": { - "@babel/highlight": "^7.18.6" - } - }, - "@babel/compat-data": { - "version": "7.18.8", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.8.tgz", - "integrity": "sha512-HSmX4WZPPK3FUxYp7g2T6EyO8j96HlZJlxmKPSh6KAcqwyDrfx7hKjXpAW/0FhFfTJsR0Yt4lAjLI2coMptIHQ==", - "dev": true - }, - "@babel/core": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.10.tgz", - "integrity": "sha512-JQM6k6ENcBFKVtWvLavlvi/mPcpYZ3+R+2EySDEMSMbp7Mn4FexlbbJVrx2R7Ijhr01T8gyqrOaABWIOgxeUyw==", - "dev": true, - "requires": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.18.10", - "@babel/helper-compilation-targets": "^7.18.9", - "@babel/helper-module-transforms": "^7.18.9", - "@babel/helpers": "^7.18.9", - "@babel/parser": "^7.18.10", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.18.10", - "@babel/types": "^7.18.10", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.1", - "semver": "^6.3.0" - } - }, - "@babel/generator": { - "version": "7.18.12", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.12.tgz", - "integrity": "sha512-dfQ8ebCN98SvyL7IxNMCUtZQSq5R7kxgN+r8qYTGDmmSion1hX2C0zq2yo1bsCDhXixokv1SAWTZUMYbO/V5zg==", - "dev": true, - "requires": { - "@babel/types": "^7.18.10", - "@jridgewell/gen-mapping": "^0.3.2", - "jsesc": "^2.5.1" - } - }, - "@babel/helper-compilation-targets": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.9.tgz", - "integrity": "sha512-tzLCyVmqUiFlcFoAPLA/gL9TeYrF61VLNtb+hvkuVaB5SUjW7jcfrglBIX1vUIoT7CLP3bBlIMeyEsIl2eFQNg==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.18.8", - "@babel/helper-validator-option": "^7.18.6", - "browserslist": "^4.20.2", - "semver": "^6.3.0" - } - }, - "@babel/helper-environment-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", - "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", - "dev": true - }, - "@babel/helper-function-name": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.18.9.tgz", - "integrity": "sha512-fJgWlZt7nxGksJS9a0XdSaI4XvpExnNIgRP+rVefWh5U7BL8pPuir6SJUmFKRfjWQ51OtWSzwOxhaH/EBWWc0A==", - "dev": true, - "requires": { - "@babel/template": "^7.18.6", - "@babel/types": "^7.18.9" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", - "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-module-imports": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", - "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-module-transforms": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.9.tgz", - "integrity": "sha512-KYNqY0ICwfv19b31XzvmI/mfcylOzbLtowkw+mfvGPAQ3kfCnMLYbED3YecL5tPd8nAYFQFAd6JHp2LxZk/J1g==", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.18.6", - "@babel/template": "^7.18.6", - "@babel/traverse": "^7.18.9", - "@babel/types": "^7.18.9" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.9.tgz", - "integrity": "sha512-aBXPT3bmtLryXaoJLyYPXPlSD4p1ld9aYeR+sJNOZjJJGiOpb+fKfh3NkcCu7J54nUJwCERPBExCCpyCOHnu/w==", - "dev": true - }, - "@babel/helper-simple-access": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz", - "integrity": "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", - "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-string-parser": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz", - "integrity": "sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==", - "dev": true - }, - "@babel/helper-validator-identifier": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", - "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==", - "dev": true - }, - "@babel/helper-validator-option": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", - "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", - "dev": true - }, - "@babel/helpers": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.9.tgz", - "integrity": "sha512-Jf5a+rbrLoR4eNdUmnFu8cN5eNJT6qdTdOg5IHIzq87WwyRw9PwguLFOWYgktN/60IP4fgDUawJvs7PjQIzELQ==", - "dev": true, - "requires": { - "@babel/template": "^7.18.6", - "@babel/traverse": "^7.18.9", - "@babel/types": "^7.18.9" - } - }, - "@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "@babel/parser": { - "version": "7.18.11", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.11.tgz", - "integrity": "sha512-9JKn5vN+hDt0Hdqn1PiJ2guflwP+B6Ga8qbDuoF0PzzVhrzsKIJo8yGqVk6CmMHiMei9w1C1Bp9IMJSIK+HPIQ==", - "dev": true - }, - "@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-typescript": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.18.6.tgz", - "integrity": "sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/template": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", - "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.18.10", - "@babel/types": "^7.18.10" - } - }, - "@babel/traverse": { - "version": "7.18.11", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.11.tgz", - "integrity": "sha512-TG9PiM2R/cWCAy6BPJKeHzNbu4lPzOSZpeMfeNErskGpTJx6trEvFaVCbDvpcxwy49BKWmEPwiW8mrysNiDvIQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.18.10", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.18.9", - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.18.11", - "@babel/types": "^7.18.10", - "debug": "^4.1.0", - "globals": "^11.1.0" - } - }, - "@babel/types": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.10.tgz", - "integrity": "sha512-MJvnbEiiNkpjo+LknnmRrqbY1GPUUggjv+wQVjetM/AONoupqRALB7I6jGqNUAZsKcRIEu2J6FRFvsczljjsaQ==", - "dev": true, - "requires": { - "@babel/helper-string-parser": "^7.18.10", - "@babel/helper-validator-identifier": "^7.18.6", - "to-fast-properties": "^2.0.0" - } - }, - "@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", - "dev": true - }, - "@discoveryjs/json-ext": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", - "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", - "dev": true - }, - "@esbuild/linux-loong64": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.1.tgz", - "integrity": "sha512-1tORADNFK9QS4KYyUyh3Td9WGrdiI1rSoKvY6A43+9G0kPujBuT4lIGyoK0AweOSO1aRIR28xQUfiJCUa78bUw==", - "dev": true, - "optional": true - }, - "@ethersproject/bignumber": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.6.2.tgz", - "integrity": "sha512-v7+EEUbhGqT3XJ9LMPsKvXYHFc8eHxTowFCG/HgJErmq4XHJ2WR7aeyICg3uTOAQ7Icn0GFHAohXEhxQHq4Ubw==", - "requires": { - "@ethersproject/bytes": "^5.6.1", - "@ethersproject/logger": "^5.6.0", - "bn.js": "^5.2.1" - } - }, - "@ethersproject/bytes": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.6.1.tgz", - "integrity": "sha512-NwQt7cKn5+ZE4uDn+X5RAXLp46E1chXoaMmrxAyA0rblpxz8t58lVkrHXoRIn0lz1joQElQ8410GqhTqMOwc6g==", - "requires": { - "@ethersproject/logger": "^5.6.0" - } - }, - "@ethersproject/constants": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.6.1.tgz", - "integrity": "sha512-QSq9WVnZbxXYFftrjSjZDUshp6/eKp6qrtdBtUCm0QxCV5z1fG/w3kdlcsjMCQuQHUnAclKoK7XpXMezhRDOLg==", - "requires": { - "@ethersproject/bignumber": "^5.6.2" - } - }, - "@ethersproject/logger": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.6.0.tgz", - "integrity": "sha512-BiBWllUROH9w+P21RzoxJKzqoqpkyM1pRnEKG69bulE9TSQD8SAIvTQqIMZmmCO8pUNkgLP1wndX1gKghSpBmg==" - }, - "@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", - "dev": true, - "requires": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - } - }, - "@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true - }, - "@jest/console": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-28.1.3.tgz", - "integrity": "sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw==", - "dev": true, - "requires": { - "@jest/types": "^28.1.3", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^28.1.3", - "jest-util": "^28.1.3", - "slash": "^3.0.0" - }, - "dependencies": { - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - } - } - }, - "@jest/core": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-28.1.3.tgz", - "integrity": "sha512-CIKBrlaKOzA7YG19BEqCw3SLIsEwjZkeJzf5bdooVnW4bH5cktqe3JX+G2YV1aK5vP8N9na1IGWFzYaTp6k6NA==", - "dev": true, - "requires": { - "@jest/console": "^28.1.3", - "@jest/reporters": "^28.1.3", - "@jest/test-result": "^28.1.3", - "@jest/transform": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-changed-files": "^28.1.3", - "jest-config": "^28.1.3", - "jest-haste-map": "^28.1.3", - "jest-message-util": "^28.1.3", - "jest-regex-util": "^28.0.2", - "jest-resolve": "^28.1.3", - "jest-resolve-dependencies": "^28.1.3", - "jest-runner": "^28.1.3", - "jest-runtime": "^28.1.3", - "jest-snapshot": "^28.1.3", - "jest-util": "^28.1.3", - "jest-validate": "^28.1.3", - "jest-watcher": "^28.1.3", - "micromatch": "^4.0.4", - "pretty-format": "^28.1.3", - "rimraf": "^3.0.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - } - } - }, - "@jest/environment": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-28.1.3.tgz", - "integrity": "sha512-1bf40cMFTEkKyEf585R9Iz1WayDjHoHqvts0XFYEqyKM3cFWDpeMoqKKTAF9LSYQModPUlh8FKptoM2YcMWAXA==", - "dev": true, - "requires": { - "@jest/fake-timers": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/node": "*", - "jest-mock": "^28.1.3" - } - }, - "@jest/expect": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-28.1.3.tgz", - "integrity": "sha512-lzc8CpUbSoE4dqT0U+g1qODQjBRHPpCPXissXD4mS9+sWQdmmpeJ9zSH1rS1HEkrsMN0fb7nKrJ9giAR1d3wBw==", - "dev": true, - "requires": { - "expect": "^28.1.3", - "jest-snapshot": "^28.1.3" - } - }, - "@jest/expect-utils": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-28.1.3.tgz", - "integrity": "sha512-wvbi9LUrHJLn3NlDW6wF2hvIMtd4JUl2QNVrjq+IBSHirgfrR3o9RnVtxzdEGO2n9JyIWwHnLfby5KzqBGg2YA==", - "dev": true, - "requires": { - "jest-get-type": "^28.0.2" - } - }, - "@jest/fake-timers": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-28.1.3.tgz", - "integrity": "sha512-D/wOkL2POHv52h+ok5Oj/1gOG9HSywdoPtFsRCUmlCILXNn5eIWmcnd3DIiWlJnpGvQtmajqBP95Ei0EimxfLw==", - "dev": true, - "requires": { - "@jest/types": "^28.1.3", - "@sinonjs/fake-timers": "^9.1.2", - "@types/node": "*", - "jest-message-util": "^28.1.3", - "jest-mock": "^28.1.3", - "jest-util": "^28.1.3" - } - }, - "@jest/globals": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-28.1.3.tgz", - "integrity": "sha512-XFU4P4phyryCXu1pbcqMO0GSQcYe1IsalYCDzRNyhetyeyxMcIxa11qPNDpVNLeretItNqEmYYQn1UYz/5x1NA==", - "dev": true, - "requires": { - "@jest/environment": "^28.1.3", - "@jest/expect": "^28.1.3", - "@jest/types": "^28.1.3" - } - }, - "@jest/reporters": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-28.1.3.tgz", - "integrity": "sha512-JuAy7wkxQZVNU/V6g9xKzCGC5LVXx9FDcABKsSXp5MiKPEE2144a/vXTEDoyzjUpZKfVwp08Wqg5A4WfTMAzjg==", - "dev": true, - "requires": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^28.1.3", - "@jest/test-result": "^28.1.3", - "@jest/transform": "^28.1.3", - "@jest/types": "^28.1.3", - "@jridgewell/trace-mapping": "^0.3.13", - "@types/node": "*", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^5.1.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.1.3", - "jest-message-util": "^28.1.3", - "jest-util": "^28.1.3", - "jest-worker": "^28.1.3", - "slash": "^3.0.0", - "string-length": "^4.0.1", - "strip-ansi": "^6.0.0", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^9.0.1" - }, - "dependencies": { - "jest-worker": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-28.1.3.tgz", - "integrity": "sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==", - "dev": true, - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - } - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - } - } - }, - "@jest/schemas": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-28.1.3.tgz", - "integrity": "sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg==", - "dev": true, - "requires": { - "@sinclair/typebox": "^0.24.1" - } - }, - "@jest/source-map": { - "version": "28.1.2", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-28.1.2.tgz", - "integrity": "sha512-cV8Lx3BeStJb8ipPHnqVw/IM2VCMWO3crWZzYodSIkxXnRcXJipCdx1JCK0K5MsJJouZQTH73mzf4vgxRaH9ww==", - "dev": true, - "requires": { - "@jridgewell/trace-mapping": "^0.3.13", - "callsites": "^3.0.0", - "graceful-fs": "^4.2.9" - } - }, - "@jest/test-result": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-28.1.3.tgz", - "integrity": "sha512-kZAkxnSE+FqE8YjW8gNuoVkkC9I7S1qmenl8sGcDOLropASP+BkcGKwhXoyqQuGOGeYY0y/ixjrd/iERpEXHNg==", - "dev": true, - "requires": { - "@jest/console": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - } - }, - "@jest/test-sequencer": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-28.1.3.tgz", - "integrity": "sha512-NIMPEqqa59MWnDi1kvXXpYbqsfQmSJsIbnd85mdVGkiDfQ9WQQTXOLsvISUfonmnBT+w85WEgneCigEEdHDFxw==", - "dev": true, - "requires": { - "@jest/test-result": "^28.1.3", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^28.1.3", - "slash": "^3.0.0" - }, - "dependencies": { - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - } - } - }, - "@jest/transform": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-28.1.3.tgz", - "integrity": "sha512-u5dT5di+oFI6hfcLOHGTAfmUxFRrjK+vnaP0kkVow9Md/M7V/MxqQMOz/VV25UZO8pzeA9PjfTpOu6BDuwSPQA==", - "dev": true, - "requires": { - "@babel/core": "^7.11.6", - "@jest/types": "^28.1.3", - "@jridgewell/trace-mapping": "^0.3.13", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^28.1.3", - "jest-regex-util": "^28.0.2", - "jest-util": "^28.1.3", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", - "slash": "^3.0.0", - "write-file-atomic": "^4.0.1" - }, - "dependencies": { - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - } - } - }, - "@jest/types": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.3.tgz", - "integrity": "sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ==", - "dev": true, - "requires": { - "@jest/schemas": "^28.1.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" - } - }, - "@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "requires": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==" - }, - "@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==" - }, - "@jridgewell/source-map": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", - "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", - "requires": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" - }, - "@jridgewell/trace-mapping": { - "version": "0.3.14", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz", - "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==", - "requires": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - } - }, - "@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true - }, - "@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "requires": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - } - }, - "@open-rpc/client-js": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@open-rpc/client-js/-/client-js-1.7.1.tgz", - "integrity": "sha512-DycSYZUGSUwFl+k9T8wLBSGA8f2hYkvS5A9AB94tBOuU8QlP468NS5ZtAxy72dF4g2WW0genwNJdfeFnHnaxXQ==", - "requires": { - "isomorphic-fetch": "^3.0.0", - "isomorphic-ws": "^4.0.1", - "strict-event-emitter-types": "^2.0.0", - "ws": "^7.0.0" - } - }, - "@rollup/plugin-node-resolve": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.3.0.tgz", - "integrity": "sha512-Lus8rbUo1eEcnS4yTFKLZrVumLPY+YayBdWXgFSHYhTT2iJbMhoaaBL3xl5NCdeRytErGr8tZ0L71BMRmnlwSw==", - "dev": true, - "requires": { - "@rollup/pluginutils": "^3.1.0", - "@types/resolve": "1.17.1", - "deepmerge": "^4.2.2", - "is-builtin-module": "^3.1.0", - "is-module": "^1.0.0", - "resolve": "^1.19.0" - } - }, - "@rollup/pluginutils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", - "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", - "dev": true, - "requires": { - "@types/estree": "0.0.39", - "estree-walker": "^1.0.1", - "picomatch": "^2.2.2" - }, - "dependencies": { - "@types/estree": { - "version": "0.0.39", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", - "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", - "dev": true - } - } - }, - "@sinclair/typebox": { - "version": "0.24.27", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.27.tgz", - "integrity": "sha512-K7C7IlQ3zLePEZleUN21ceBA2aLcMnLHTLph8QWk1JK37L90obdpY+QGY8bXMKxf1ht1Z0MNewvXxWv0oGDYFg==", - "dev": true - }, - "@sinonjs/commons": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", - "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", - "dev": true, - "requires": { - "type-detect": "4.0.8" - } - }, - "@sinonjs/fake-timers": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz", - "integrity": "sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==", - "dev": true, - "requires": { - "@sinonjs/commons": "^1.7.0" - } - }, - "@tootallnate/once": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", - "dev": true - }, - "@types/babel__core": { - "version": "7.1.19", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.19.tgz", - "integrity": "sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw==", - "dev": true, - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "@types/babel__generator": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", - "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", - "dev": true, - "requires": { - "@babel/types": "^7.0.0" - } - }, - "@types/babel__template": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", - "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", - "dev": true, - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "@types/babel__traverse": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.0.tgz", - "integrity": "sha512-v4Vwdko+pgymgS+A2UIaJru93zQd85vIGWObM5ekZNdXCKtDYqATlEYnWgfo86Q6I1Lh0oXnksDnMU1cwmlPDw==", - "dev": true, - "requires": { - "@babel/types": "^7.3.0" - } - }, - "@types/bn.js": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.0.tgz", - "integrity": "sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA==", - "requires": { - "@types/node": "*" - } - }, - "@types/eccrypto": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@types/eccrypto/-/eccrypto-1.1.3.tgz", - "integrity": "sha512-3O0qER6JMYReqVbcQTGmXeMHdw3O+rVps63tlo5g5zoB3altJS8yzSvboSivwVWeYO9o5jSATu7P0UIqYZPgow==", - "requires": { - "@types/expect": "^1.20.4", - "@types/node": "*" - } - }, - "@types/elliptic": { - "version": "6.4.14", - "resolved": "https://registry.npmjs.org/@types/elliptic/-/elliptic-6.4.14.tgz", - "integrity": "sha512-z4OBcDAU0GVwDTuwJzQCiL6188QvZMkvoERgcVjq0/mPM8jCfdwZ3x5zQEVoL9WCAru3aG5wl3Z5Ww5wBWn7ZQ==", - "requires": { - "@types/bn.js": "*" - } - }, - "@types/eslint": { - "version": "8.4.5", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.5.tgz", - "integrity": "sha512-dhsC09y1gpJWnK+Ff4SGvCuSnk9DaU0BJZSzOwa6GVSg65XtTugLBITDAAzRU5duGBoXBHpdR/9jHGxJjNflJQ==", - "requires": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, - "@types/eslint-scope": { - "version": "3.7.4", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", - "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", - "requires": { - "@types/eslint": "*", - "@types/estree": "*" - } - }, - "@types/estree": { - "version": "0.0.51", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", - "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==" - }, - "@types/expect": { - "version": "1.20.4", - "resolved": "https://registry.npmjs.org/@types/expect/-/expect-1.20.4.tgz", - "integrity": "sha512-Q5Vn3yjTDyCMV50TB6VRIbQNxSE4OmZR86VSbGaNpfUolm0iePBB4KdEEHmxoY5sT2+2DIvXW0rvMDP2nHZ4Mg==" - }, - "@types/graceful-fs": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", - "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/istanbul-lib-coverage": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", - "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", - "dev": true - }, - "@types/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "*" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "@types/jest": { - "version": "28.1.6", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-28.1.6.tgz", - "integrity": "sha512-0RbGAFMfcBJKOmqRazM8L98uokwuwD5F8rHrv/ZMbrZBwVOWZUyPG6VFNscjYr/vjM3Vu4fRrCPbOs42AfemaQ==", - "dev": true, - "requires": { - "jest-matcher-utils": "^28.0.0", - "pretty-format": "^28.0.0" - } - }, - "@types/jsdom": { - "version": "16.2.15", - "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-16.2.15.tgz", - "integrity": "sha512-nwF87yjBKuX/roqGYerZZM0Nv1pZDMAT5YhOHYeM/72Fic+VEqJh4nyoqoapzJnW3pUlfxPY5FhgsJtM+dRnQQ==", - "dev": true, - "requires": { - "@types/node": "*", - "@types/parse5": "^6.0.3", - "@types/tough-cookie": "*" - } - }, - "@types/json-schema": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", - "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==" - }, - "@types/node": { - "version": "18.7.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.7.1.tgz", - "integrity": "sha512-GKX1Qnqxo4S+Z/+Z8KKPLpH282LD7jLHWJcVryOflnsnH+BtSDfieR6ObwBMwpnNws0bUK8GI7z0unQf9bARNQ==" - }, - "@types/parse5": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-6.0.3.tgz", - "integrity": "sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g==", - "dev": true - }, - "@types/pbkdf2": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.0.tgz", - "integrity": "sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==", - "requires": { - "@types/node": "*" - } - }, - "@types/prettier": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.0.tgz", - "integrity": "sha512-RI1L7N4JnW5gQw2spvL7Sllfuf1SaHdrZpCHiBlCXjIlufi1SMNnbu2teze3/QE67Fg2tBlH7W+mi4hVNk4p0A==", - "dev": true - }, - "@types/resolve": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", - "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/secp256k1": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.3.tgz", - "integrity": "sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w==", - "requires": { - "@types/node": "*" - } - }, - "@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", - "dev": true - }, - "@types/tough-cookie": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.2.tgz", - "integrity": "sha512-Q5vtl1W5ue16D+nIaW8JWebSSraJVlK+EthKn7e7UcD4KWsaSJ8BqGPXNaPghgtcn/fhvrN17Tv8ksUsQpiplw==", - "dev": true - }, - "@types/ws": { - "version": "8.5.3", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz", - "integrity": "sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==", - "requires": { - "@types/node": "*" - } - }, - "@types/yargs": { - "version": "17.0.11", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.11.tgz", - "integrity": "sha512-aB4y9UDUXTSMxmM4MH+YnuR0g5Cph3FLQBoWoMB21DSvFVAxRVEHEMx3TLh+zUZYMCQtKiqazz0Q4Rre31f/OA==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "@types/yargs-parser": { - "version": "21.0.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", - "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", - "dev": true - }, - "@webassemblyjs/ast": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", - "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", - "requires": { - "@webassemblyjs/helper-numbers": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1" - } - }, - "@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", - "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==" - }, - "@webassemblyjs/helper-api-error": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", - "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==" - }, - "@webassemblyjs/helper-buffer": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", - "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==" - }, - "@webassemblyjs/helper-numbers": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", - "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", - "requires": { - "@webassemblyjs/floating-point-hex-parser": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", - "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==" - }, - "@webassemblyjs/helper-wasm-section": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", - "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1" - } - }, - "@webassemblyjs/ieee754": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", - "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", - "requires": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "@webassemblyjs/leb128": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", - "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", - "requires": { - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/utf8": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", - "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==" - }, - "@webassemblyjs/wasm-edit": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", - "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/helper-wasm-section": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-opt": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", - "@webassemblyjs/wast-printer": "1.11.1" - } - }, - "@webassemblyjs/wasm-gen": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", - "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" - } - }, - "@webassemblyjs/wasm-opt": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", - "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1" - } - }, - "@webassemblyjs/wasm-parser": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", - "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" - } - }, - "@webassemblyjs/wast-printer": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", - "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@xtuc/long": "4.2.2" - } - }, - "@webpack-cli/configtest": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.2.0.tgz", - "integrity": "sha512-4FB8Tj6xyVkyqjj1OaTqCjXYULB9FMkqQ8yGrZjRDrYh0nOE+7Lhs45WioWQQMV+ceFlE368Ukhe6xdvJM9Egg==", - "dev": true - }, - "@webpack-cli/info": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.5.0.tgz", - "integrity": "sha512-e8tSXZpw2hPl2uMJY6fsMswaok5FdlGNRTktvFk2sD8RjH0hE2+XistawJx1vmKteh4NmGmNUrp+Tb2w+udPcQ==", - "dev": true, - "requires": { - "envinfo": "^7.7.3" - } - }, - "@webpack-cli/serve": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.7.0.tgz", - "integrity": "sha512-oxnCNGj88fL+xzV+dacXs44HcDwf1ovs3AuEzvP7mqXw7fQntqIhQ1BRmynh4qEKQSSSRSWVyXRjmTbZIX9V2Q==", - "dev": true - }, - "@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" - }, - "@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" - }, - "abab": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", - "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", - "dev": true - }, - "acorn": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.1.tgz", - "integrity": "sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg==" - }, - "acorn-globals": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", - "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", - "dev": true, - "requires": { - "acorn": "^7.1.1", - "acorn-walk": "^7.1.1" - } - }, - "acorn-import-assertions": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", - "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==" - }, - "acorn-walk": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", - "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", - "dev": true - }, - "agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, - "requires": { - "debug": "4" - } - }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ajv-formats": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", - "dev": true, - "requires": { - "ajv": "^8.0.0" - }, - "dependencies": { - "ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - } - } - }, - "ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==" - }, - "ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "requires": { - "type-fest": "^0.21.3" - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true - }, - "asn1.js": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", - "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", - "requires": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - } - } - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "dev": true - }, - "babel-jest": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-28.1.3.tgz", - "integrity": "sha512-epUaPOEWMk3cWX0M/sPvCHHCe9fMFAa/9hXEgKP8nFfNl/jlGkE9ucq9NqkZGXLDduCJYS0UvSlPUwC0S+rH6Q==", - "dev": true, - "requires": { - "@jest/transform": "^28.1.3", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^28.1.3", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "slash": "^3.0.0" - }, - "dependencies": { - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - } - } - }, - "babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" - } - }, - "babel-plugin-jest-hoist": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-28.1.3.tgz", - "integrity": "sha512-Ys3tUKAmfnkRUpPdpa98eYrAR0nV+sSFUZZEGuQ2EbFd1y4SOLtD5QDNHAq+bb9a+bbXvYQC4b+ID/THIMcU6Q==", - "dev": true, - "requires": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.1.14", - "@types/babel__traverse": "^7.0.6" - } - }, - "babel-preset-current-node-syntax": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", - "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", - "dev": true, - "requires": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-top-level-await": "^7.8.3" - } - }, - "babel-preset-jest": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-28.1.3.tgz", - "integrity": "sha512-L+fupJvlWAHbQfn74coNX3zf60LXMJsezNvvx8eIh7iOR1luJ1poxYgQk1F8PYtNq/6QODDHCqsSnTFSWC491A==", - "dev": true, - "requires": { - "babel-plugin-jest-hoist": "^28.1.3", - "babel-preset-current-node-syntax": "^1.0.0" - } - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "base-x": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", - "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true - }, - "bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "optional": true, - "requires": { - "file-uri-to-path": "1.0.0" - } - }, - "bip66": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/bip66/-/bip66-1.1.5.tgz", - "integrity": "sha512-nemMHz95EmS38a26XbbdxIYj5csHd3RMP3H5bwQknX0WYHF01qhpufP42mLOwVICuH2JmhIhXiWs89MfUGL7Xw==", - "optional": true, - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "blakejs": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz", - "integrity": "sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==" - }, - "bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==" - }, - "browser-process-hrtime": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", - "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", - "dev": true - }, - "browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "requires": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "browserslist": { - "version": "4.21.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.3.tgz", - "integrity": "sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ==", - "requires": { - "caniuse-lite": "^1.0.30001370", - "electron-to-chromium": "^1.4.202", - "node-releases": "^2.0.6", - "update-browserslist-db": "^1.0.5" - } - }, - "bs-logger": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", - "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", - "dev": true, - "requires": { - "fast-json-stable-stringify": "2.x" - } - }, - "bs58": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", - "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", - "requires": { - "base-x": "^3.0.2" - } - }, - "bs58check": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", - "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", - "requires": { - "bs58": "^4.0.0", - "create-hash": "^1.1.0", - "safe-buffer": "^5.1.2" - } - }, - "bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", - "dev": true, - "requires": { - "node-int64": "^0.4.0" - } - }, - "buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" - }, - "buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==" - }, - "builtin-modules": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", - "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", - "dev": true - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, - "caniuse-lite": { - "version": "1.0.30001375", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001375.tgz", - "integrity": "sha512-kWIMkNzLYxSvnjy0hL8w1NOaWNr2rn39RTAVyIwcw8juu60bZDWiF1/loOYANzjtJmy6qPgNmn38ro5Pygagdw==" - }, - "casper-js-sdk": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/casper-js-sdk/-/casper-js-sdk-2.9.1.tgz", - "integrity": "sha512-UO0meYMucBqoNfplhSys4ELis0e0HDcJRpJa5/e1TIEfCwHGSt30PbHoJ/UXWzWR3nk4YSddQJ3coHCF7IrZoA==", - "requires": { - "@ethersproject/bignumber": "^5.0.8", - "@ethersproject/bytes": "^5.0.5", - "@ethersproject/constants": "^5.0.5", - "@open-rpc/client-js": "^1.6.2", - "@types/eccrypto": "^1.1.2", - "@types/ws": "^8.2.2", - "blakejs": "^1.1.0", - "eccrypto": "^1.1.6", - "eslint-plugin-prettier": "^3.4.0", - "ethereum-cryptography": "^0.1.3", - "glob": "^7.1.6", - "humanize-duration": "^3.24.0", - "key-encoder": "^2.0.3", - "reflect-metadata": "^0.1.13", - "ts-results": "^3.2.1", - "tweetnacl-ts": "^1.0.3", - "tweetnacl-util": "^0.15.0", - "typedjson": "^1.6.0-rc2", - "webpack": "^5.24.3" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "dependencies": { - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "char-regex": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", - "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", - "dev": true - }, - "chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "dependencies": { - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - } - } - }, - "chrome-trace-event": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", - "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==" - }, - "ci-info": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.2.tgz", - "integrity": "sha512-xmDt/QIAdeZ9+nfdPsaBCpMvHNLFiLdjj59qjqn+6iPe6YmHGQ35sBnQ8uslRBXFmXkiZQOJRjvQeoGppoTjjg==", - "dev": true - }, - "cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "cjs-module-lexer": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", - "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", - "dev": true - }, - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "clone-deep": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" - } - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", - "dev": true - }, - "collect-v8-coverage": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", - "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", - "dev": true - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "colorette": { - "version": "2.0.19", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", - "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==", - "dev": true - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" - }, - "convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.1" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - } - } - }, - "copy-webpack-plugin": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-11.0.0.tgz", - "integrity": "sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==", - "dev": true, - "requires": { - "fast-glob": "^3.2.11", - "glob-parent": "^6.0.1", - "globby": "^13.1.1", - "normalize-path": "^3.0.0", - "schema-utils": "^4.0.0", - "serialize-javascript": "^6.0.0" - }, - "dependencies": { - "ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.3" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" - } - } - } - }, - "create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "requires": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "requires": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "cssom": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz", - "integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==", - "dev": true - }, - "cssstyle": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", - "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", - "dev": true, - "requires": { - "cssom": "~0.3.6" - }, - "dependencies": { - "cssom": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", - "dev": true - } - } - }, - "data-urls": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.2.tgz", - "integrity": "sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==", - "dev": true, - "requires": { - "abab": "^2.0.6", - "whatwg-mimetype": "^3.0.0", - "whatwg-url": "^11.0.0" - }, - "dependencies": { - "tr46": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", - "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", - "dev": true, - "requires": { - "punycode": "^2.1.1" - } - }, - "webidl-conversions": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", - "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", - "dev": true - }, - "whatwg-url": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", - "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", - "dev": true, - "requires": { - "tr46": "^3.0.0", - "webidl-conversions": "^7.0.0" - } - } - } - }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "decimal.js": { - "version": "10.3.1", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz", - "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==", - "dev": true - }, - "dedent": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", - "dev": true - }, - "deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", - "dev": true - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "dev": true - }, - "detect-newline": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", - "dev": true - }, - "diff-sequences": { - "version": "28.1.1", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-28.1.1.tgz", - "integrity": "sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw==", - "dev": true - }, - "dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "requires": { - "path-type": "^4.0.0" - } - }, - "domexception": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz", - "integrity": "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==", - "dev": true, - "requires": { - "webidl-conversions": "^7.0.0" - }, - "dependencies": { - "webidl-conversions": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", - "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", - "dev": true - } - } - }, - "drbg.js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/drbg.js/-/drbg.js-1.0.1.tgz", - "integrity": "sha512-F4wZ06PvqxYLFEZKkFxTDcns9oFNk34hvmJSEwdzsxVQ8YI5YaxtACgQatkYgv2VI2CFkUd2Y+xosPQnHv809g==", - "optional": true, - "requires": { - "browserify-aes": "^1.0.6", - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4" - } - }, - "eccrypto": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/eccrypto/-/eccrypto-1.1.6.tgz", - "integrity": "sha512-d78ivVEzu7Tn0ZphUUaL43+jVPKTMPFGtmgtz1D0LrFn7cY3K8CdrvibuLz2AAkHBLKZtR8DMbB2ukRYFk987A==", - "requires": { - "acorn": "7.1.1", - "elliptic": "6.5.4", - "es6-promise": "4.2.8", - "nan": "2.14.0", - "secp256k1": "3.7.1" - } - }, - "electron-to-chromium": { - "version": "1.4.215", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.215.tgz", - "integrity": "sha512-vqZxT8C5mlDZ//hQFhneHmOLnj1LhbzxV0+I1yqHV8SB1Oo4Y5Ne9+qQhwHl7O1s9s9cRuo2l5CoLEHdhMTwZg==" - }, - "elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", - "requires": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - } - } - }, - "emittery": { - "version": "0.10.2", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz", - "integrity": "sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==", - "dev": true - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "enhanced-resolve": { - "version": "5.10.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz", - "integrity": "sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ==", - "requires": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - } - }, - "envinfo": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", - "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==", - "dev": true - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "es-module-lexer": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", - "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==" - }, - "es6-promise": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", - "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==" - }, - "esbuild": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.1.tgz", - "integrity": "sha512-zgxo2st9wSbdiR6rTo44l/L7ohttqdXFmhUi5tE6yWahgdBjCwZjBgIkm/gr/TcBTTIwyzd7em8WI37yZ+F2Mg==", - "dev": true, - "requires": { - "@esbuild/linux-loong64": "0.15.1", - "esbuild-android-64": "0.15.1", - "esbuild-android-arm64": "0.15.1", - "esbuild-darwin-64": "0.15.1", - "esbuild-darwin-arm64": "0.15.1", - "esbuild-freebsd-64": "0.15.1", - "esbuild-freebsd-arm64": "0.15.1", - "esbuild-linux-32": "0.15.1", - "esbuild-linux-64": "0.15.1", - "esbuild-linux-arm": "0.15.1", - "esbuild-linux-arm64": "0.15.1", - "esbuild-linux-mips64le": "0.15.1", - "esbuild-linux-ppc64le": "0.15.1", - "esbuild-linux-riscv64": "0.15.1", - "esbuild-linux-s390x": "0.15.1", - "esbuild-netbsd-64": "0.15.1", - "esbuild-openbsd-64": "0.15.1", - "esbuild-sunos-64": "0.15.1", - "esbuild-windows-32": "0.15.1", - "esbuild-windows-64": "0.15.1", - "esbuild-windows-arm64": "0.15.1" - } - }, - "esbuild-android-64": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.15.1.tgz", - "integrity": "sha512-q5kkJZsgLIkyh5e2ZJl4/kXKIueBKtjVMEihP9WCHadqhH6+F9qiycE7fBwUb/g2B15mYlmMBXjp8VmOT3J2gA==", - "dev": true, - "optional": true - }, - "esbuild-android-arm64": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.15.1.tgz", - "integrity": "sha512-IQuZOzqMaFceLlKJJA27CXAdh+Mzh2ZblHMmcNIu/wxb6iX1zgYXlPWle62iHnmNCtfAux1mzQvmNsP9aLhemA==", - "dev": true, - "optional": true - }, - "esbuild-darwin-64": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.1.tgz", - "integrity": "sha512-tyouWLyxwM/Y2fy/reuIvAvVB+KVQwuY9IVyV7LH5CGkJYxgtLb8xVEiwHFF8TG2uo9a2fqdgWffados4YA6Aw==", - "dev": true, - "optional": true - }, - "esbuild-darwin-arm64": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.1.tgz", - "integrity": "sha512-fb4V1eB1nir3zJwsS75itsbahkbM71XuqUDJVH8iyBLS8VIQD7MWWAAekea2l9keueGfsn0+wTyDluMT+kg8Cw==", - "dev": true, - "optional": true - }, - "esbuild-freebsd-64": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.1.tgz", - "integrity": "sha512-1KxEv/FUPlQtUSOjFCwR8FVNEskB5LmkbfW9FNJ7lhpG+4RsLiHWw4Sl2Y1/S+aKX7inyWxLA05zYV6XAzO8DA==", - "dev": true, - "optional": true - }, - "esbuild-freebsd-arm64": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.1.tgz", - "integrity": "sha512-ueUMGSNrcuHwAadioxBdfOCO4+bTVeI68a147BQ/AFFIrf4XJNow4UXxguvQlZO+ZYaVz6EztaL6mHslKie2Rw==", - "dev": true, - "optional": true - }, - "esbuild-linux-32": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.15.1.tgz", - "integrity": "sha512-K5WWcN2OZkZ6arFN3+hi1leKc0at9ukKGrXK9Ia94kQOesBphTSmsNK/Gy/AoVoIa0bWrHtxDijS9j9+dz86oA==", - "dev": true, - "optional": true - }, - "esbuild-linux-64": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.15.1.tgz", - "integrity": "sha512-+haiVm83DfRi9x8M+GgR4f4LtSN8lnEIG8XMGK8/FYpkYNQiKb398GxeHp2yvoMpX8IPvmWCt215tAm5BBNfZQ==", - "dev": true, - "optional": true - }, - "esbuild-linux-arm": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.15.1.tgz", - "integrity": "sha512-qjAkEDcFhVNYwG2xgaDg/hA8JABoMvjzAzE6g1K8kR516oNkKbVf6rN68UrsQaV1zq1qR3dbVeMv/Ul2bheppA==", - "dev": true, - "optional": true - }, - "esbuild-linux-arm64": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.1.tgz", - "integrity": "sha512-TP0BCVZEVu/aoVaZe2sn1vpvo63j0LPiH8rvd7AegqOfTwb+mcxLxpgyYwkibafUCMxnIrKdUTsSJeusoMhcLg==", - "dev": true, - "optional": true - }, - "esbuild-linux-mips64le": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.1.tgz", - "integrity": "sha512-8vzQzp+kwrn1Y+OjvfFaLS8uL8aR39WnAtxOHwjB72s9g18kHFlE8IQLS9dWDQgKpBSFq9kazsJE65dSVmz+VA==", - "dev": true, - "optional": true - }, - "esbuild-linux-ppc64le": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.1.tgz", - "integrity": "sha512-QlWSOgC2Ad53Xvf7ZivXU7wM2y29YhQUrd50PjK0QJ3psh/eYSQx77PTe1iWm7Ovjiqv1wPKEAyC7CbyJUgriw==", - "dev": true, - "optional": true - }, - "esbuild-linux-riscv64": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.1.tgz", - "integrity": "sha512-/PRNgNsiwb7G2n3rB5WcHinCwKj0OqUmtu8cdakV4CLNWnFnfChEGEJX1x5n8RcGD3xPUlI5CgqFe0/oBcUh+A==", - "dev": true, - "optional": true - }, - "esbuild-linux-s390x": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.1.tgz", - "integrity": "sha512-TScRbO4mi4AUUXzIQ8sb6ZXhGkCb/PlJ82qFfBE6xxsioae/d6XaSdaha/+OUTvmPeoro3lNf3vwdw27v3wEgw==", - "dev": true, - "optional": true - }, - "esbuild-netbsd-64": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.1.tgz", - "integrity": "sha512-ES2pbK8QfsMZbdPkgjkLwWfnEGtPa0vYzVFLQn7GFgP+RiemY+ulH7WWQ8ezMt9rZl4XAR3y14yKLGX0gsBLaw==", - "dev": true, - "optional": true - }, - "esbuild-openbsd-64": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.1.tgz", - "integrity": "sha512-DxNWji11AxSEny4HzSKu21Skia8tEPQI1N+XO/RqVOJComOvsFLq+QeooKsK2caOsQIKl9mO14Hh+px+zFabMA==", - "dev": true, - "optional": true - }, - "esbuild-sunos-64": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.15.1.tgz", - "integrity": "sha512-lwZoWlv893qtQQx5H4QQCh2mcYzGbxEz09ESFdd4cHcUCfjb193bSAy6jPxW2efBx2fHEo2sw43TRtAkpCf+XQ==", - "dev": true, - "optional": true - }, - "esbuild-windows-32": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.15.1.tgz", - "integrity": "sha512-jEFz8DxP+Hh67fk9XMoyLUqPjjoCT6m4bnl36aze0XpPZDuQm0SBDlG/ciOBCjzHDsu/MYUNwxVezvUT3sXh1A==", - "dev": true, - "optional": true - }, - "esbuild-windows-64": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.1.tgz", - "integrity": "sha512-bUetnfw4xXKBTOQx4sTzoENJVEdgAN29ZTLRtnMseRzsMO8pjObQMsRPpPL3Cstt6FJhj3k3uScHc5VnfC9QkA==", - "dev": true, - "optional": true - }, - "esbuild-windows-arm64": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.1.tgz", - "integrity": "sha512-oN0JMj7fQZOiqJ/f/wc8lkxjvWwj5Yz0ZhOeU90JFaPZAfafNnysi6GS95glY5uwLUUJz/RNc84cb0dK2qT89A==", - "dev": true, - "optional": true - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true - }, - "escodegen": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", - "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", - "dev": true, - "requires": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" - }, - "dependencies": { - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - } - } - }, - "eslint-plugin-prettier": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.4.1.tgz", - "integrity": "sha512-htg25EUYUeIhKHXjOinK4BgCcDwtLHjqaxCDsMy5nbnUMkKFvIhMVCp+5GFUXQ4Nr8lBsPqtGAqBenbpFqAA2g==", - "requires": { - "prettier-linter-helpers": "^1.0.0" - } - }, - "eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - } - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true - }, - "esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "requires": { - "estraverse": "^5.2.0" - }, - "dependencies": { - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==" - } - } - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" - }, - "estree-walker": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", - "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", - "dev": true - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true - }, - "ethereum-cryptography": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", - "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", - "requires": { - "@types/pbkdf2": "^3.0.0", - "@types/secp256k1": "^4.0.1", - "blakejs": "^1.1.0", - "browserify-aes": "^1.2.0", - "bs58check": "^2.1.2", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "hash.js": "^1.1.7", - "keccak": "^3.0.0", - "pbkdf2": "^3.0.17", - "randombytes": "^2.1.0", - "safe-buffer": "^5.1.2", - "scrypt-js": "^3.0.0", - "secp256k1": "^4.0.1", - "setimmediate": "^1.0.5" - }, - "dependencies": { - "secp256k1": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz", - "integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==", - "requires": { - "elliptic": "^6.5.4", - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0" - } - } - } - }, - "events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==" - }, - "evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - } - }, - "exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", - "dev": true - }, - "expect": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/expect/-/expect-28.1.3.tgz", - "integrity": "sha512-eEh0xn8HlsuOBxFgIss+2mX85VAS4Qy3OSkjV7rlBWljtA4oWH37glVGyOZSZvErDT/yBywZdPGwCXuTvSG85g==", - "dev": true, - "requires": { - "@jest/expect-utils": "^28.1.3", - "jest-get-type": "^28.0.2", - "jest-matcher-utils": "^28.1.3", - "jest-message-util": "^28.1.3", - "jest-util": "^28.1.3" - } - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, - "fast-diff": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", - "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==" - }, - "fast-glob": { - "version": "3.2.11", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", - "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "dependencies": { - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - } - } - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true - }, - "fastest-levenshtein": { - "version": "1.0.16", - "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", - "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", - "dev": true - }, - "fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", - "dev": true, - "requires": { - "reusify": "^1.0.4" - } - }, - "fb-watchman": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", - "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", - "dev": true, - "requires": { - "bser": "2.1.1" - } - }, - "file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", - "optional": true - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true - }, - "get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true - }, - "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true - }, - "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "requires": { - "is-glob": "^4.0.3" - } - }, - "glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" - }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true - }, - "globby": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.2.tgz", - "integrity": "sha512-LKSDZXToac40u8Q1PQtZihbNdTYSNMuWe+K5l+oa6KgDzSvVrHXlJy40hUP522RjAIoNLJYBJi7ow+rbFpIhHQ==", - "dev": true, - "requires": { - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.11", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^4.0.0" - } - }, - "graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", - "requires": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - } - }, - "hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", - "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "html-encoding-sniffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", - "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", - "dev": true, - "requires": { - "whatwg-encoding": "^2.0.0" - } - }, - "html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true - }, - "http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", - "dev": true, - "requires": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" - } - }, - "https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "dev": true, - "requires": { - "agent-base": "6", - "debug": "4" - } - }, - "human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true - }, - "humanize-duration": { - "version": "3.27.2", - "resolved": "https://registry.npmjs.org/humanize-duration/-/humanize-duration-3.27.2.tgz", - "integrity": "sha512-A15OmA3FLFRnehvF4ZMocsxTZYvHq4ze7L+AgR1DeHw0xC9vMd4euInY83uqGU9/XXKNnVIEeKc1R8G8nKqtzg==" - }, - "iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - } - }, - "ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", - "dev": true - }, - "import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", - "dev": true, - "requires": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "interpret": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", - "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==", - "dev": true - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-builtin-module": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.0.tgz", - "integrity": "sha512-phDA4oSGt7vl1n5tJvTWooWWAsXLY+2xCnxNqvKhGEzujg+A43wPlPOyDg3C8XQHN+6k/JTQWJ/j0dQh/qr+Hw==", - "dev": true, - "requires": { - "builtin-modules": "^3.3.0" - } - }, - "is-core-module": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz", - "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "is-generator-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", - "dev": true - }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", - "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", - "dev": true - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "is-potential-custom-element-name": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", - "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", - "dev": true - }, - "is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", - "dev": true - }, - "isomorphic-fetch": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-3.0.0.tgz", - "integrity": "sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA==", - "requires": { - "node-fetch": "^2.6.1", - "whatwg-fetch": "^3.4.1" - } - }, - "isomorphic-ws": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz", - "integrity": "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==" - }, - "istanbul-lib-coverage": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", - "dev": true - }, - "istanbul-lib-instrument": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.0.tgz", - "integrity": "sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A==", - "dev": true, - "requires": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" - } - }, - "istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", - "dev": true, - "requires": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" - }, - "dependencies": { - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", - "dev": true, - "requires": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - } - }, - "istanbul-reports": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", - "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", - "dev": true, - "requires": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - } - }, - "jest": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest/-/jest-28.1.3.tgz", - "integrity": "sha512-N4GT5on8UkZgH0O5LUavMRV1EDEhNTL0KEfRmDIeZHSV7p2XgLoY9t9VDUgL6o+yfdgYHVxuz81G8oB9VG5uyA==", - "dev": true, - "requires": { - "@jest/core": "^28.1.3", - "@jest/types": "^28.1.3", - "import-local": "^3.0.2", - "jest-cli": "^28.1.3" - }, - "dependencies": { - "jest-cli": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-28.1.3.tgz", - "integrity": "sha512-roY3kvrv57Azn1yPgdTebPAXvdR2xfezaKKYzVxZ6It/5NCxzJym6tUI5P1zkdWhfUYkxEI9uZWcQdaFLo8mJQ==", - "dev": true, - "requires": { - "@jest/core": "^28.1.3", - "@jest/test-result": "^28.1.3", - "@jest/types": "^28.1.3", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "import-local": "^3.0.2", - "jest-config": "^28.1.3", - "jest-util": "^28.1.3", - "jest-validate": "^28.1.3", - "prompts": "^2.0.1", - "yargs": "^17.3.1" - } - } - } - }, - "jest-changed-files": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-28.1.3.tgz", - "integrity": "sha512-esaOfUWJXk2nfZt9SPyC8gA1kNfdKLkQWyzsMlqq8msYSlNKfmZxfRgZn4Cd4MGVUF+7v6dBs0d5TOAKa7iIiA==", - "dev": true, - "requires": { - "execa": "^5.0.0", - "p-limit": "^3.1.0" - }, - "dependencies": { - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "requires": { - "yocto-queue": "^0.1.0" - } - } - } - }, - "jest-circus": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-28.1.3.tgz", - "integrity": "sha512-cZ+eS5zc79MBwt+IhQhiEp0OeBddpc1n8MBo1nMB8A7oPMKEO+Sre+wHaLJexQUj9Ya/8NOBY0RESUgYjB6fow==", - "dev": true, - "requires": { - "@jest/environment": "^28.1.3", - "@jest/expect": "^28.1.3", - "@jest/test-result": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^0.7.0", - "is-generator-fn": "^2.0.0", - "jest-each": "^28.1.3", - "jest-matcher-utils": "^28.1.3", - "jest-message-util": "^28.1.3", - "jest-runtime": "^28.1.3", - "jest-snapshot": "^28.1.3", - "jest-util": "^28.1.3", - "p-limit": "^3.1.0", - "pretty-format": "^28.1.3", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "dependencies": { - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - } - } - }, - "jest-config": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-28.1.3.tgz", - "integrity": "sha512-MG3INjByJ0J4AsNBm7T3hsuxKQqFIiRo/AUqb1q9LRKI5UU6Aar9JHbr9Ivn1TVwfUD9KirRoM/T6u8XlcQPHQ==", - "dev": true, - "requires": { - "@babel/core": "^7.11.6", - "@jest/test-sequencer": "^28.1.3", - "@jest/types": "^28.1.3", - "babel-jest": "^28.1.3", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-circus": "^28.1.3", - "jest-environment-node": "^28.1.3", - "jest-get-type": "^28.0.2", - "jest-regex-util": "^28.0.2", - "jest-resolve": "^28.1.3", - "jest-runner": "^28.1.3", - "jest-util": "^28.1.3", - "jest-validate": "^28.1.3", - "micromatch": "^4.0.4", - "parse-json": "^5.2.0", - "pretty-format": "^28.1.3", - "slash": "^3.0.0", - "strip-json-comments": "^3.1.1" - }, - "dependencies": { - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - } - } - }, - "jest-diff": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-28.1.3.tgz", - "integrity": "sha512-8RqP1B/OXzjjTWkqMX67iqgwBVJRgCyKD3L9nq+6ZqJMdvjE8RgHktqZ6jNrkdMT+dJuYNI3rhQpxaz7drJHfw==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "diff-sequences": "^28.1.1", - "jest-get-type": "^28.0.2", - "pretty-format": "^28.1.3" - } - }, - "jest-docblock": { - "version": "28.1.1", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-28.1.1.tgz", - "integrity": "sha512-3wayBVNiOYx0cwAbl9rwm5kKFP8yHH3d/fkEaL02NPTkDojPtheGB7HZSFY4wzX+DxyrvhXz0KSCVksmCknCuA==", - "dev": true, - "requires": { - "detect-newline": "^3.0.0" - } - }, - "jest-each": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-28.1.3.tgz", - "integrity": "sha512-arT1z4sg2yABU5uogObVPvSlSMQlDA48owx07BDPAiasW0yYpYHYOo4HHLz9q0BVzDVU4hILFjzJw0So9aCL/g==", - "dev": true, - "requires": { - "@jest/types": "^28.1.3", - "chalk": "^4.0.0", - "jest-get-type": "^28.0.2", - "jest-util": "^28.1.3", - "pretty-format": "^28.1.3" - } - }, - "jest-environment-jsdom": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-28.1.3.tgz", - "integrity": "sha512-HnlGUmZRdxfCByd3GM2F100DgQOajUBzEitjGqIREcb45kGjZvRrKUdlaF6escXBdcXNl0OBh+1ZrfeZT3GnAg==", - "dev": true, - "requires": { - "@jest/environment": "^28.1.3", - "@jest/fake-timers": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/jsdom": "^16.2.4", - "@types/node": "*", - "jest-mock": "^28.1.3", - "jest-util": "^28.1.3", - "jsdom": "^19.0.0" - } - }, - "jest-environment-node": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-28.1.3.tgz", - "integrity": "sha512-ugP6XOhEpjAEhGYvp5Xj989ns5cB1K6ZdjBYuS30umT4CQEETaxSiPcZ/E1kFktX4GkrcM4qu07IIlDYX1gp+A==", - "dev": true, - "requires": { - "@jest/environment": "^28.1.3", - "@jest/fake-timers": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/node": "*", - "jest-mock": "^28.1.3", - "jest-util": "^28.1.3" - } - }, - "jest-get-type": { - "version": "28.0.2", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", - "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==", - "dev": true - }, - "jest-haste-map": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-28.1.3.tgz", - "integrity": "sha512-3S+RQWDXccXDKSWnkHa/dPwt+2qwA8CJzR61w3FoYCvoo3Pn8tvGcysmMF0Bj0EX5RYvAI2EIvC57OmotfdtKA==", - "dev": true, - "requires": { - "@jest/types": "^28.1.3", - "@types/graceful-fs": "^4.1.3", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "fsevents": "^2.3.2", - "graceful-fs": "^4.2.9", - "jest-regex-util": "^28.0.2", - "jest-util": "^28.1.3", - "jest-worker": "^28.1.3", - "micromatch": "^4.0.4", - "walker": "^1.0.8" - }, - "dependencies": { - "jest-worker": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-28.1.3.tgz", - "integrity": "sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==", - "dev": true, - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - } - } - } - }, - "jest-leak-detector": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-28.1.3.tgz", - "integrity": "sha512-WFVJhnQsiKtDEo5lG2mM0v40QWnBM+zMdHHyJs8AWZ7J0QZJS59MsyKeJHWhpBZBH32S48FOVvGyOFT1h0DlqA==", - "dev": true, - "requires": { - "jest-get-type": "^28.0.2", - "pretty-format": "^28.1.3" - } - }, - "jest-matcher-utils": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-28.1.3.tgz", - "integrity": "sha512-kQeJ7qHemKfbzKoGjHHrRKH6atgxMk8Enkk2iPQ3XwO6oE/KYD8lMYOziCkeSB9G4adPM4nR1DE8Tf5JeWH6Bw==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "jest-diff": "^28.1.3", - "jest-get-type": "^28.0.2", - "pretty-format": "^28.1.3" - } - }, - "jest-message-util": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.3.tgz", - "integrity": "sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^28.1.3", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^28.1.3", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "dependencies": { - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - } - } - }, - "jest-mock": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-28.1.3.tgz", - "integrity": "sha512-o3J2jr6dMMWYVH4Lh/NKmDXdosrsJgi4AviS8oXLujcjpCMBb1FMsblDnOXKZKfSiHLxYub1eS0IHuRXsio9eA==", - "dev": true, - "requires": { - "@jest/types": "^28.1.3", - "@types/node": "*" - } - }, - "jest-pnp-resolver": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", - "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", - "dev": true - }, - "jest-regex-util": { - "version": "28.0.2", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-28.0.2.tgz", - "integrity": "sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw==", - "dev": true - }, - "jest-resolve": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-28.1.3.tgz", - "integrity": "sha512-Z1W3tTjE6QaNI90qo/BJpfnvpxtaFTFw5CDgwpyE/Kz8U/06N1Hjf4ia9quUhCh39qIGWF1ZuxFiBiJQwSEYKQ==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^28.1.3", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^28.1.3", - "jest-validate": "^28.1.3", - "resolve": "^1.20.0", - "resolve.exports": "^1.1.0", - "slash": "^3.0.0" - }, - "dependencies": { - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - } - } - }, - "jest-resolve-dependencies": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-28.1.3.tgz", - "integrity": "sha512-qa0QO2Q0XzQoNPouMbCc7Bvtsem8eQgVPNkwn9LnS+R2n8DaVDPL/U1gngC0LTl1RYXJU0uJa2BMC2DbTfFrHA==", - "dev": true, - "requires": { - "jest-regex-util": "^28.0.2", - "jest-snapshot": "^28.1.3" - } - }, - "jest-runner": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-28.1.3.tgz", - "integrity": "sha512-GkMw4D/0USd62OVO0oEgjn23TM+YJa2U2Wu5zz9xsQB1MxWKDOlrnykPxnMsN0tnJllfLPinHTka61u0QhaxBA==", - "dev": true, - "requires": { - "@jest/console": "^28.1.3", - "@jest/environment": "^28.1.3", - "@jest/test-result": "^28.1.3", - "@jest/transform": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.10.2", - "graceful-fs": "^4.2.9", - "jest-docblock": "^28.1.1", - "jest-environment-node": "^28.1.3", - "jest-haste-map": "^28.1.3", - "jest-leak-detector": "^28.1.3", - "jest-message-util": "^28.1.3", - "jest-resolve": "^28.1.3", - "jest-runtime": "^28.1.3", - "jest-util": "^28.1.3", - "jest-watcher": "^28.1.3", - "jest-worker": "^28.1.3", - "p-limit": "^3.1.0", - "source-map-support": "0.5.13" - }, - "dependencies": { - "jest-worker": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-28.1.3.tgz", - "integrity": "sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==", - "dev": true, - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - } - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "source-map-support": { - "version": "0.5.13", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", - "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - } - } - }, - "jest-runtime": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-28.1.3.tgz", - "integrity": "sha512-NU+881ScBQQLc1JHG5eJGU7Ui3kLKrmwCPPtYsJtBykixrM2OhVQlpMmFWJjMyDfdkGgBMNjXCGB/ebzsgNGQw==", - "dev": true, - "requires": { - "@jest/environment": "^28.1.3", - "@jest/fake-timers": "^28.1.3", - "@jest/globals": "^28.1.3", - "@jest/source-map": "^28.1.2", - "@jest/test-result": "^28.1.3", - "@jest/transform": "^28.1.3", - "@jest/types": "^28.1.3", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "execa": "^5.0.0", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^28.1.3", - "jest-message-util": "^28.1.3", - "jest-mock": "^28.1.3", - "jest-regex-util": "^28.0.2", - "jest-resolve": "^28.1.3", - "jest-snapshot": "^28.1.3", - "jest-util": "^28.1.3", - "slash": "^3.0.0", - "strip-bom": "^4.0.0" - }, - "dependencies": { - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - } - } - }, - "jest-snapshot": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-28.1.3.tgz", - "integrity": "sha512-4lzMgtiNlc3DU/8lZfmqxN3AYD6GGLbl+72rdBpXvcV+whX7mDrREzkPdp2RnmfIiWBg1YbuFSkXduF2JcafJg==", - "dev": true, - "requires": { - "@babel/core": "^7.11.6", - "@babel/generator": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/traverse": "^7.7.2", - "@babel/types": "^7.3.3", - "@jest/expect-utils": "^28.1.3", - "@jest/transform": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/babel__traverse": "^7.0.6", - "@types/prettier": "^2.1.5", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^28.1.3", - "graceful-fs": "^4.2.9", - "jest-diff": "^28.1.3", - "jest-get-type": "^28.0.2", - "jest-haste-map": "^28.1.3", - "jest-matcher-utils": "^28.1.3", - "jest-message-util": "^28.1.3", - "jest-util": "^28.1.3", - "natural-compare": "^1.4.0", - "pretty-format": "^28.1.3", - "semver": "^7.3.5" - }, - "dependencies": { - "semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, - "jest-util": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.3.tgz", - "integrity": "sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==", - "dev": true, - "requires": { - "@jest/types": "^28.1.3", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - } - }, - "jest-validate": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-28.1.3.tgz", - "integrity": "sha512-SZbOGBWEsaTxBGCOpsRWlXlvNkvTkY0XxRfh7zYmvd8uL5Qzyg0CHAXiXKROflh801quA6+/DsT4ODDthOC/OA==", - "dev": true, - "requires": { - "@jest/types": "^28.1.3", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^28.0.2", - "leven": "^3.1.0", - "pretty-format": "^28.1.3" - }, - "dependencies": { - "camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true - } - } - }, - "jest-watcher": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-28.1.3.tgz", - "integrity": "sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g==", - "dev": true, - "requires": { - "@jest/test-result": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.10.2", - "jest-util": "^28.1.3", - "string-length": "^4.0.1" - } - }, - "jest-worker": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - } - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "jsdom": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-19.0.0.tgz", - "integrity": "sha512-RYAyjCbxy/vri/CfnjUWJQQtZ3LKlLnDqj+9XLNnJPgEGeirZs3hllKR20re8LUZ6o1b1X4Jat+Qd26zmP41+A==", - "dev": true, - "requires": { - "abab": "^2.0.5", - "acorn": "^8.5.0", - "acorn-globals": "^6.0.0", - "cssom": "^0.5.0", - "cssstyle": "^2.3.0", - "data-urls": "^3.0.1", - "decimal.js": "^10.3.1", - "domexception": "^4.0.0", - "escodegen": "^2.0.0", - "form-data": "^4.0.0", - "html-encoding-sniffer": "^3.0.0", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.0", - "parse5": "6.0.1", - "saxes": "^5.0.1", - "symbol-tree": "^3.2.4", - "tough-cookie": "^4.0.0", - "w3c-hr-time": "^1.0.2", - "w3c-xmlserializer": "^3.0.0", - "webidl-conversions": "^7.0.0", - "whatwg-encoding": "^2.0.0", - "whatwg-mimetype": "^3.0.0", - "whatwg-url": "^10.0.0", - "ws": "^8.2.3", - "xml-name-validator": "^4.0.0" - }, - "dependencies": { - "acorn": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", - "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", - "dev": true - }, - "tr46": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", - "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", - "dev": true, - "requires": { - "punycode": "^2.1.1" - } - }, - "webidl-conversions": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", - "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", - "dev": true - }, - "whatwg-url": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-10.0.0.tgz", - "integrity": "sha512-CLxxCmdUby142H5FZzn4D8ikO1cmypvXVQktsgosNy4a4BHrDHeciBBGZhb0bNoR5/MltoCatso+vFjjGx8t0w==", - "dev": true, - "requires": { - "tr46": "^3.0.0", - "webidl-conversions": "^7.0.0" - } - }, - "ws": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.8.1.tgz", - "integrity": "sha512-bGy2JzvzkPowEJV++hF07hAD6niYSr0JzBNo/J29WsB57A2r7Wlc1UFcTR9IzrPvuNVO4B8LGqF8qcpsVOhJCA==", - "dev": true - } - } - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true - }, - "json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" - }, - "json5": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", - "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", - "dev": true - }, - "keccak": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.2.tgz", - "integrity": "sha512-PyKKjkH53wDMLGrvmRGSNWgmSxZOUqbnXwKL9tmgbFYA1iAYqW21kfR7mZXV0MlESiefxQQE9X9fTa3X+2MPDQ==", - "requires": { - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0", - "readable-stream": "^3.6.0" - } - }, - "key-encoder": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/key-encoder/-/key-encoder-2.0.3.tgz", - "integrity": "sha512-fgBtpAGIr/Fy5/+ZLQZIPPhsZEcbSlYu/Wu96tNDFNSjSACw5lEIOFeaVdQ/iwrb8oxjlWi6wmWdH76hV6GZjg==", - "requires": { - "@types/elliptic": "^6.4.9", - "asn1.js": "^5.0.1", - "bn.js": "^4.11.8", - "elliptic": "^6.4.1" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - } - } - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true - }, - "kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "dev": true - }, - "leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "dev": true - }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } - }, - "lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true - }, - "loader-runner": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", - "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==" - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", - "dev": true - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.0.0" - } - }, - "make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true - }, - "makeerror": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", - "dev": true, - "requires": { - "tmpl": "1.0.5" - } - }, - "md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" - }, - "merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true - }, - "micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "requires": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - } - }, - "mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" - }, - "mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "requires": { - "mime-db": "1.52.0" - } - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true - }, - "minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" - }, - "minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==" - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "mylas": { - "version": "2.1.11", - "resolved": "https://registry.npmjs.org/mylas/-/mylas-2.1.11.tgz", - "integrity": "sha512-krnPUl3n9/k52FGCltWMYcqp9SttxjRJEy0sWLk+g7mIa7wnZrmNSZ40Acx7ghzRSOsxt2rEqMbaq4jWlnTDKg==", - "dev": true - }, - "nan": { - "version": "2.14.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", - "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==" - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" - }, - "node-addon-api": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", - "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==" - }, - "node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "requires": { - "whatwg-url": "^5.0.0" - } - }, - "node-gyp-build": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.5.0.tgz", - "integrity": "sha512-2iGbaQBV+ITgCz76ZEjmhUKAKVf7xfY1sRl4UiKQspfZMH2h06SyhNsnSVy50cwkFQDGLyif6m/6uFXHkOZ6rg==" - }, - "node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", - "dev": true - }, - "node-releases": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", - "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==" - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "requires": { - "path-key": "^3.0.0" - } - }, - "nwsapi": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.1.tgz", - "integrity": "sha512-JYOWTeFoS0Z93587vRJgASD5Ut11fYl5NyihP3KrYBvMe1FRRs6RN7m20SA/16GM4P6hTnZjT+UmDOt38UeXNg==", - "dev": true - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dev": true, - "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, - "parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - } - }, - "parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", - "dev": true - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true - }, - "pbkdf2": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", - "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", - "requires": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" - }, - "picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true - }, - "pirates": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", - "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", - "dev": true - }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "requires": { - "find-up": "^4.0.0" - } - }, - "plimit-lit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/plimit-lit/-/plimit-lit-1.3.0.tgz", - "integrity": "sha512-63qOoSzggsjBHPVbaKeEtsO8oWTeyJxUfVRLkoc59pRkDiCCLvqn2tCgAkfbejrx+V5zJtlG2wqkk/Db6cwlVQ==", - "dev": true, - "requires": { - "queue-lit": "^1.3.0" - } - }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", - "dev": true - }, - "prettier-linter-helpers": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", - "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", - "requires": { - "fast-diff": "^1.1.2" - } - }, - "pretty-format": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", - "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", - "dev": true, - "requires": { - "@jest/schemas": "^28.1.3", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - } - } - }, - "prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", - "dev": true, - "requires": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - } - }, - "psl": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", - "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", - "dev": true - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" - }, - "queue-lit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/queue-lit/-/queue-lit-1.3.0.tgz", - "integrity": "sha512-3HpQ7bD2ct56qPithPr5IzH2Oij3WVPcgevCJ+mI9HAfVJKCqQ2yiFYgb4AUkLfsCmmbVDy9luvE97Ztzr5eBg==", - "dev": true - }, - "queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true - }, - "randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "requires": { - "safe-buffer": "^5.1.0" - } - }, - "react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true - }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "requires": { - "picomatch": "^2.2.1" - } - }, - "rechoir": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz", - "integrity": "sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==", - "dev": true, - "requires": { - "resolve": "^1.9.0" - } - }, - "reflect-metadata": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", - "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==" - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true - }, - "require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true - }, - "resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "dev": true, - "requires": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - }, - "resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dev": true, - "requires": { - "resolve-from": "^5.0.0" - } - }, - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true - }, - "resolve.exports": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz", - "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==", - "dev": true - }, - "reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "requires": { - "queue-microtask": "^1.2.2" - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "saxes": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", - "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", - "dev": true, - "requires": { - "xmlchars": "^2.2.0" - } - }, - "schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", - "requires": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - }, - "scrypt-js": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", - "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==" - }, - "secp256k1": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-3.7.1.tgz", - "integrity": "sha512-1cf8sbnRreXrQFdH6qsg2H71Xw91fCCS9Yp021GnUNJzWJS/py96fS4lHbnTnouLp08Xj6jBoBB6V78Tdbdu5g==", - "optional": true, - "requires": { - "bindings": "^1.5.0", - "bip66": "^1.1.5", - "bn.js": "^4.11.8", - "create-hash": "^1.2.0", - "drbg.js": "^1.0.1", - "elliptic": "^6.4.1", - "nan": "^2.14.0", - "safe-buffer": "^5.1.2" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "optional": true - } - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", - "requires": { - "randombytes": "^2.1.0" - } - }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==" - }, - "sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "shallow-clone": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", - "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", - "dev": true, - "requires": { - "kind-of": "^6.0.2" - } - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true - }, - "signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true - }, - "sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "dev": true - }, - "slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, - "source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true - }, - "stack-utils": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", - "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", - "dev": true, - "requires": { - "escape-string-regexp": "^2.0.0" - }, - "dependencies": { - "escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true - } - } - }, - "strict-event-emitter-types": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strict-event-emitter-types/-/strict-event-emitter-types-2.0.0.tgz", - "integrity": "sha512-Nk/brWYpD85WlOgzw5h173aci0Teyv8YdIAEtV+N88nDB0dLlazZyJMIsN6eo1/AR61l+p6CJTG1JIyFaoNEEA==" - }, - "string-length": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", - "dev": true, - "requires": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - } - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "requires": { - "safe-buffer": "~5.2.0" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true - }, - "strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true - }, - "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true - }, - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "requires": { - "has-flag": "^4.0.0" - } - }, - "supports-hyperlinks": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", - "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", - "dev": true, - "requires": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - }, - "dependencies": { - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true - }, - "symbol-tree": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", - "dev": true - }, - "tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==" - }, - "terminal-link": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", - "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", - "dev": true, - "requires": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" - } - }, - "terser": { - "version": "5.14.2", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz", - "integrity": "sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA==", - "requires": { - "@jridgewell/source-map": "^0.3.2", - "acorn": "^8.5.0", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "dependencies": { - "acorn": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", - "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==" - } - } - }, - "terser-webpack-plugin": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.3.tgz", - "integrity": "sha512-Fx60G5HNYknNTNQnzQ1VePRuu89ZVYWfjRAeT5rITuCY/1b08s49e5kSQwHDirKZWuoKOBRFS98EUUoZ9kLEwQ==", - "requires": { - "@jridgewell/trace-mapping": "^0.3.7", - "jest-worker": "^27.4.5", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.0", - "terser": "^5.7.2" - } - }, - "test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dev": true, - "requires": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - } - }, - "tmpl": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", - "dev": true - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - }, - "tough-cookie": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz", - "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==", - "dev": true, - "requires": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.1.2" - } - }, - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" - }, - "ts-jest": { - "version": "28.0.7", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-28.0.7.tgz", - "integrity": "sha512-wWXCSmTwBVmdvWrOpYhal79bDpioDy4rTT+0vyUnE3ZzM7LOAAGG9NXwzkEL/a516rQEgnMmS/WKP9jBPCVJyA==", - "dev": true, - "requires": { - "bs-logger": "0.x", - "fast-json-stable-stringify": "2.x", - "jest-util": "^28.0.0", - "json5": "^2.2.1", - "lodash.memoize": "4.x", - "make-error": "1.x", - "semver": "7.x", - "yargs-parser": "^21.0.1" - }, - "dependencies": { - "semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, - "ts-loader": { - "version": "9.3.1", - "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.3.1.tgz", - "integrity": "sha512-OkyShkcZTsTwyS3Kt7a4rsT/t2qvEVQuKCTg4LJmpj9fhFR7ukGdZwV6Qq3tRUkqcXtfGpPR7+hFKHCG/0d3Lw==", - "dev": true, - "requires": { - "chalk": "^4.1.0", - "enhanced-resolve": "^5.0.0", - "micromatch": "^4.0.0", - "semver": "^7.3.4" - }, - "dependencies": { - "semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, - "ts-results": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/ts-results/-/ts-results-3.3.0.tgz", - "integrity": "sha512-FWqxGX2NHp5oCyaMd96o2y2uMQmSu8Dey6kvyuFdRJ2AzfmWo3kWa4UsPlCGlfQ/qu03m09ZZtppMoY8EMHuiA==" - }, - "tsc-alias": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/tsc-alias/-/tsc-alias-1.7.0.tgz", - "integrity": "sha512-n/K6g8S7Ec7Y/A2Z77Ikp2Uv1S1ERtT63ni69XV4W1YPT4rnNmz8ItgIiJYvKfFnKfqcZQ81UPjoKpMTxaC/rg==", - "dev": true, - "requires": { - "chokidar": "^3.5.3", - "commander": "^9.0.0", - "globby": "^11.0.4", - "mylas": "^2.1.9", - "normalize-path": "^3.0.0", - "plimit-lit": "^1.2.6" - }, - "dependencies": { - "commander": { - "version": "9.4.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.4.0.tgz", - "integrity": "sha512-sRPT+umqkz90UA8M1yqYfnHlZA7fF6nSphDtxeywPZ49ysjxDQybzk13CL+mXekDRG92skbcqCLVovuCusNmFw==", - "dev": true - }, - "globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "requires": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - } - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - } - } - }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, - "tweetnacl-ts": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tweetnacl-ts/-/tweetnacl-ts-1.0.3.tgz", - "integrity": "sha512-C5I/dWf6xjAXaCDlf84T4HvozU/8ycAlq5WRllF1hAeeq5390tfXD+bNas5bhEV0HMSOx8bsQYpLjPl8wfnEeQ==", - "requires": { - "tslib": "^1" - } - }, - "tweetnacl-util": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz", - "integrity": "sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==" - }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2" - } - }, - "type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true - }, - "type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true - }, - "typedjson": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/typedjson/-/typedjson-1.8.0.tgz", - "integrity": "sha512-taVJVGebQDagEmVc3Cu6vVVLkWLnxqPcTrkVgbpAsI02ZDDrnHy5zvt1JVqXv4/yztBgZAX1oR07+bkiusGJLQ==", - "requires": { - "tslib": "^2.0.1" - }, - "dependencies": { - "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" - } - } - }, - "typescript": { - "version": "4.7.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz", - "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==", - "dev": true - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true - }, - "update-browserslist-db": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.5.tgz", - "integrity": "sha512-dteFFpCyvuDdr9S/ff1ISkKt/9YZxKjI9WlRR99c180GaztJtRa/fn18FdxGVKVsnPY7/a/FDN68mcvUmP4U7Q==", - "requires": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - } - }, - "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "requires": { - "punycode": "^2.1.0" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" - }, - "v8-to-istanbul": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz", - "integrity": "sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==", - "dev": true, - "requires": { - "@jridgewell/trace-mapping": "^0.3.12", - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0" - } - }, - "w3c-hr-time": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", - "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", - "dev": true, - "requires": { - "browser-process-hrtime": "^1.0.0" - } - }, - "w3c-xmlserializer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-3.0.0.tgz", - "integrity": "sha512-3WFqGEgSXIyGhOmAFtlicJNMjEps8b1MG31NCA0/vOF9+nKMUW1ckhi9cnNHmf88Rzw5V+dwIwsm2C7X8k9aQg==", - "dev": true, - "requires": { - "xml-name-validator": "^4.0.0" - } - }, - "walker": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", - "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", - "dev": true, - "requires": { - "makeerror": "1.0.12" - } - }, - "watchpack": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", - "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", - "requires": { - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.1.2" - } - }, - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" - }, - "webpack": { - "version": "5.74.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.74.0.tgz", - "integrity": "sha512-A2InDwnhhGN4LYctJj6M1JEaGL7Luj6LOmyBHjcI8529cm5p6VXiTIW2sn6ffvEAKmveLzvu4jrihwXtPojlAA==", - "requires": { - "@types/eslint-scope": "^3.7.3", - "@types/estree": "^0.0.51", - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/wasm-edit": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", - "acorn": "^8.7.1", - "acorn-import-assertions": "^1.7.6", - "browserslist": "^4.14.5", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.10.0", - "es-module-lexer": "^0.9.0", - "eslint-scope": "5.1.1", - "events": "^3.2.0", - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.9", - "json-parse-even-better-errors": "^2.3.1", - "loader-runner": "^4.2.0", - "mime-types": "^2.1.27", - "neo-async": "^2.6.2", - "schema-utils": "^3.1.0", - "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.1.3", - "watchpack": "^2.4.0", - "webpack-sources": "^3.2.3" - }, - "dependencies": { - "acorn": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", - "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==" - } - } - }, - "webpack-cli": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.10.0.tgz", - "integrity": "sha512-NLhDfH/h4O6UOy+0LSso42xvYypClINuMNBVVzX4vX98TmTaTUxwRbXdhucbFMd2qLaCTcLq/PdYrvi8onw90w==", - "dev": true, - "requires": { - "@discoveryjs/json-ext": "^0.5.0", - "@webpack-cli/configtest": "^1.2.0", - "@webpack-cli/info": "^1.5.0", - "@webpack-cli/serve": "^1.7.0", - "colorette": "^2.0.14", - "commander": "^7.0.0", - "cross-spawn": "^7.0.3", - "fastest-levenshtein": "^1.0.12", - "import-local": "^3.0.2", - "interpret": "^2.2.0", - "rechoir": "^0.7.0", - "webpack-merge": "^5.7.3" - }, - "dependencies": { - "commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "dev": true - } - } - }, - "webpack-merge": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", - "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", - "dev": true, - "requires": { - "clone-deep": "^4.0.1", - "wildcard": "^2.0.0" - } - }, - "webpack-node-externals": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/webpack-node-externals/-/webpack-node-externals-3.0.0.tgz", - "integrity": "sha512-LnL6Z3GGDPht/AigwRh2dvL9PQPFQ8skEpVrWZXLWBYmqcaojHNN0onvHzie6rq7EWKrrBfPYqNEzTJgiwEQDQ==", - "dev": true - }, - "webpack-sources": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==" - }, - "whatwg-encoding": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", - "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", - "dev": true, - "requires": { - "iconv-lite": "0.6.3" - } - }, - "whatwg-fetch": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz", - "integrity": "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==" - }, - "whatwg-mimetype": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", - "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", - "dev": true - }, - "whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "wildcard": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", - "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", - "dev": true - }, - "word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" - }, - "write-file-atomic": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.1.tgz", - "integrity": "sha512-nSKUxgAbyioruk6hU87QzVbY279oYT6uiwgDoujth2ju4mJ+TZau7SQBhtbTmUyuNYTuXnSyRn66FV0+eCgcrQ==", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.7" - } - }, - "ws": { - "version": "7.5.9", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", - "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==" - }, - "xml-name-validator": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", - "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", - "dev": true - }, - "xmlchars": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", - "dev": true - }, - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "yargs": { - "version": "17.5.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz", - "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==", - "dev": true, - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.0.0" - } - }, - "yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true - }, - "yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true - } - } -} diff --git a/package.json b/package.json index 885c510..13aaf7b 100644 --- a/package.json +++ b/package.json @@ -1,53 +1,82 @@ -{ - "name": "casperdash-utils", - "version": "1.0.15", - "description": "Casperdash utils", - "private": false, - "keywords": [ - "typescript" - ], - "main": "dist/lib.node.js", - "types": "dist/index.d.ts", - "scripts": { - "prebuild": "npm run clean", - "build": "webpack --config webpack.config.js", - "build-all": "yarn clean && yarn build", - "deploy": "yarn build-all && npm publish", - "clean": "rimraf -r dist", - "test": "jest" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/CasperDash/casperdash-utils.git" - }, - "author": "CasperDash", - "license": "MIT", - "bugs": { - "url": "https://github.com/CasperDash/casperdash-utils/issues" - }, - "homepage": "https://github.com/CasperDash/casperdash-utils", - "dependencies": { - "@ethersproject/bytes": "^5.6.1", - "blakejs": "^1.2.1", - "casper-js-sdk": "^2.9.1", - "webpack": "^5.74.0" - }, - "devDependencies": { - "@rollup/plugin-node-resolve": "^13.0.4", - "@types/jest": "^28.1.6", - "copy-webpack-plugin": "^11.0.0", - "esbuild": "^0.15.0", - "jest": "^28.1.3", - "jest-environment-jsdom": "^28.1.3", - "rimraf": "^3.0.2", - "ts-jest": "^28.0.7", - "ts-loader": "^9.3.1", - "tsc-alias": "^1.3.9", - "typescript": "^4.4.2", - "webpack-cli": "^4.10.0", - "webpack-node-externals": "^3.0.0" - }, - "publishConfig": { - "access": "public" - } -} +{ + "name": "root", + "version": "0.0.1", + "repository": { + "type": "git" + }, + "author": "dev@casperdash.io", + "license": "MIT", + "scripts": { + "prepare": "husky install", + "lint": "eslint . --cache", + "lint:fix": "pnpm lint --fix", + "lint:format": "prettier --write", + "build": "pnpm -r --filter './packages/**' build", + "play": "pnpm --filter example-react dev", + "build:example": "pnpm --filter example-react build", + "dev": "pnpm -r --filter './packages/**' dev", + "changeset:release": "pnpm build && changeset publish", + "changeset:version": "changeset version && pnpm install --lockfile-only", + "docs:build": "pnpm -r --filter './docs' build", + "docs:export": "pnpm -r --filter './docs' export", + "docs:dev": "pnpm -r --filter './docs' dev", + "test": "vitest", + "test:coverage": "vitest run --coverage", + "test:run": "vitest run", + "test:typecheck": "vitest typecheck", + "test:ui": "vitest --ui", + "test:update": "vitest --update", + "typecheck": "tsc --noEmit", + "preinstall": "npx only-allow pnpm" + }, + "devDependencies": { + "@babel/core": "^7.22.20", + "@changesets/changelog-github": "^0.4.8", + "@changesets/cli": "^2.26.2", + "@typescript-eslint/eslint-plugin": "^5.62.0", + "@typescript-eslint/parser": "^5.62.0", + "@vitest/coverage-v8": "^0.34.5", + "@vitest/ui": "^0.28.5", + "eslint": "^8.50.0", + "eslint-config-airbnb-typescript": "^17.1.0", + "eslint-config-prettier": "^8.10.0", + "eslint-plugin-import": "^2.28.1", + "eslint-plugin-prettier": "^4.2.1", + "eslint-plugin-sonar": "^0.9.2", + "husky": "^8.0.3", + "jsdom": "^20.0.3", + "lint-staged": "^13.3.0", + "prettier": "^2.8.8", + "semver": "^7.5.4", + "tsup": "^6.7.0", + "typescript": "^4.9.5", + "vite-tsconfig-paths": "^4.2.1", + "vitest": "^0.26.3" + }, + "pnpm": { + "peerDependencyRules": { + "ignoreMissing": [ + "eslint", + "prettier", + "react" + ] + } + }, + "husky": { + "hooks": { + "pre-commit": "pnpm lint" + } + }, + "simple-git-hooks": { + "pre-commit": "pnpm lint" + }, + "lint-staged": { + "*.{js,ts,tsx}": [ + "pnpm lint:fix" + ], + "*.{json,md,mdx,yml}": [ + "pnpm lint:format" + ] + }, + "packageManager": "pnpm@7.18.2" +} diff --git a/packages/builder/.gitignore b/packages/builder/.gitignore new file mode 100644 index 0000000..38156aa --- /dev/null +++ b/packages/builder/.gitignore @@ -0,0 +1 @@ +keys \ No newline at end of file diff --git a/packages/builder/package.json b/packages/builder/package.json new file mode 100644 index 0000000..a4e44f4 --- /dev/null +++ b/packages/builder/package.json @@ -0,0 +1,19 @@ +{ + "name": "@casperdash/builder", + "version": "1.0.0", + "main": "index.js", + "license": "MIT", + "scripts": { + "flow:mkp-cep78": "ts-node ./src/workflows/marketplace-with-cep78.ts" + }, + "dependencies": { + "@noble/hashes": "^1.3.2", + "@open-rpc/client-js": "1.8.1", + "casper-js-sdk": "2.15.0", + "contract-client": "0.0.5", + "ethers": "^4.0.47" + }, + "devDependencies": { + "ts-node": "10.9.1" + } +} diff --git a/packages/builder/src/configs/default.ts b/packages/builder/src/configs/default.ts new file mode 100644 index 0000000..bda3cd6 --- /dev/null +++ b/packages/builder/src/configs/default.ts @@ -0,0 +1,17 @@ +import { Keys } from "casper-js-sdk"; +import path from 'path'; + +export const DEFAULT_CONFIGS = { + NODE_URL: 'http://76.91.193.251:7777', + NETWORK: 'casper-test', + SPECULATIVE_NODE_URL: 'http://76.91.193.251:7778/rpc', +} + +export const OWNER_KEYS = Keys.Ed25519.parseKeyFiles( + path.join(__dirname, `./keys/owner_public.pem`), + path.join(__dirname, `./keys/owner_private.pem`) +); + +export const BUYER_KEYS = Keys.Ed25519.loadKeyPairFromPrivateFile( + path.join(__dirname, `./keys/buyer_private.pem`) +); \ No newline at end of file diff --git a/packages/builder/src/configs/index.ts b/packages/builder/src/configs/index.ts new file mode 100644 index 0000000..4a45931 --- /dev/null +++ b/packages/builder/src/configs/index.ts @@ -0,0 +1 @@ +export { DEFAULT_CONFIGS as CONFIGS, OWNER_KEYS } from './default'; \ No newline at end of file diff --git a/packages/builder/src/contract/base.ts b/packages/builder/src/contract/base.ts new file mode 100644 index 0000000..d52638e --- /dev/null +++ b/packages/builder/src/contract/base.ts @@ -0,0 +1,133 @@ +import { DeployUtil, Keys } from "casper-js-sdk"; +import { CONFIGS, OWNER_KEYS } from "../configs"; +import { Contract } from 'contract-client'; +import { getDeploy, runDeployFlow } from "../deployer"; +import Client, { HTTPTransport, RequestManager } from "@open-rpc/client-js"; + +export const convertHashStrToHashBuff = (hashStr: string) => { + let hashHex = hashStr; + if (hashStr.startsWith("hash-")) { + hashHex = hashStr.slice(5); + } + return Buffer.from(hashHex, "hex"); +}; + +export class BaseContract extends Contract { + public currentBuilded: DeployUtil.Deploy; + public caller: Keys.AsymmetricKey = OWNER_KEYS; + public network: string = CONFIGS.NETWORK; + + constructor( + contractHash?: string, + contractPackageHash?: string, + network?: string + ) { + super( + contractHash, + contractPackageHash + ); + + if (network) { + this.network = network; + } + } + + public setCaller(keys: Keys.AsymmetricKey) { + this.caller = keys; + } + + public getCaller() { + return this.caller; + } + + public async buildSessionWasmArgs(wasm: Uint8Array, args: any, networkFee = `${15_000_000_000}`) { + const result = this.callSessionWasm( + wasm, + args, + networkFee, + this.caller.publicKey, + this.network, + [this.caller] + ); + + this.currentBuilded = result; + + return this.sendSafeDeploy(result); + } + + public async buildEntryPointsArgs(entryPoint: string, args: any, networkFee = `${15_000_000_000}`) { + const result = this.callEntrypoint( + entryPoint, + args, + this.caller.publicKey, + this.network, + networkFee, + [this.caller] + ); + + this.currentBuilded = result; + + return this.sendSafeDeploy(result); + } + + public async speculativeDeploy(deployJson:any) { + // TODO: User casperClient.speculativeDeploy later after + const transport = new HTTPTransport(CONFIGS.SPECULATIVE_NODE_URL); + const requestManager = new RequestManager([transport]); + + const client = new Client(requestManager); + + const result = await client.request({ + method: 'speculative_exec', + params: { ...deployJson }, + }); + + return result; + } + + public async deploy(deploy: DeployUtil.Deploy, isWaitting = true) { + const deployHash = await deploy.send(CONFIGS.NODE_URL!); + + console.log("...... Deploy hash: ", deployHash); + console.log("...... Waiting for the deploy..."); + if (isWaitting) { + await getDeploy(CONFIGS.NODE_URL!, deployHash); + } + + console.log(`...... Deploy ${deployHash} succedeed`); + }; + + public async sendDeploy() { + return runDeployFlow(this.currentBuilded); + } + + public async sendLatestSpeculativeDeploy() { + return this.sendSpeculativeDeploy(this.currentBuilded); + } + + public async sendSpeculativeDeploy(deploy: DeployUtil.Deploy) { + const deployJson = DeployUtil.deployToJson(deploy); + + return this.speculativeDeploy(deployJson); + } + + public async speculativelyDeployThrow(deploy: DeployUtil.Deploy) { + const result = await this.sendSpeculativeDeploy(deploy); + + const { execution_result } = result; + + if (execution_result.Success) { + return execution_result.Success; + } + + console.log("...... Error: ", execution_result.Failure); + + throw new Error(execution_result.Failure.error_message); + } + + public async sendSafeDeploy(deploy: DeployUtil.Deploy) { + await this.speculativelyDeployThrow(deploy); + + return this.sendDeploy(); + } +} \ No newline at end of file diff --git a/packages/builder/src/contract/cep78.contract.ts b/packages/builder/src/contract/cep78.contract.ts new file mode 100644 index 0000000..9856fc7 --- /dev/null +++ b/packages/builder/src/contract/cep78.contract.ts @@ -0,0 +1,47 @@ +import { CLKeyParameters, CLValueBuilder, RuntimeArgs } from "casper-js-sdk"; +import { BaseContract } from "./base"; + +export class Cep78Contract extends BaseContract { + public async registerTokenOwner( + { + tokenOwner, + }: { + tokenOwner: CLKeyParameters; + } + ) { + const runtimeArgs = RuntimeArgs.fromMap({ + token_owner: CLValueBuilder.key( + tokenOwner + ), + }); + + return this.buildEntryPointsArgs( + 'register_token_owner', + runtimeArgs, + String(5_000_000_000) + ); + } + + public async approve( + { + operator, + tokenId + } + : { + operator: CLKeyParameters; + tokenId: number; + }) { + const runtimeArgs = RuntimeArgs.fromMap({ + operator: CLValueBuilder.key( + operator + ), + token_id: CLValueBuilder.u64(tokenId), + }); + + return this.buildEntryPointsArgs( + 'approve', + runtimeArgs, + String(5_000_000_000) + ); + } +} \ No newline at end of file diff --git a/packages/builder/src/contract/marketplace.contract.ts b/packages/builder/src/contract/marketplace.contract.ts new file mode 100644 index 0000000..748b0cc --- /dev/null +++ b/packages/builder/src/contract/marketplace.contract.ts @@ -0,0 +1,95 @@ +import { CLValueBuilder, RuntimeArgs } from 'casper-js-sdk'; +import { BaseContract } from './base'; +import { contractHashToByteArray } from 'contract-client'; +import { hexToBytes } from '@noble/hashes/utils'; + +import BuyItemWasm from '../wasm/buy_item.wasm'; + +export type InstallArgs = { + collectionName: string; + collectionSymbol: string; + totalTokenSupply: string; +}; + +class ContractUtils { + public static contractToCLByteArray(hash: string) { + return CLValueBuilder.byteArray(this.contractToByteArray(hash)); + } + + public static contractToByteArray(hash: string) { + const hashOnly = hash.replace('hash-', '').replace('contract-', ''); + return hexToBytes(hashOnly); + } + } + +export class MarketplaceContract extends BaseContract { + public async install( + wasm: Uint8Array, + args: InstallArgs, + networkFee = `${15_000_000_000}` + + ) { + const runtimeArgs = RuntimeArgs.fromMap({ + collection_name: CLValueBuilder.string(args.collectionName), + collection_symbol: CLValueBuilder.string(args.collectionSymbol), + total_token_supply: CLValueBuilder.string(args.totalTokenSupply), + }); + + return this.buildSessionWasmArgs( + wasm, + runtimeArgs, + networkFee + ); + } + + public async listItem ( + { + tokenContractHash, + tokenId, + amount, + }: { + tokenContractHash: string; + tokenId: string; + amount: number; + } + ) { + const args = RuntimeArgs.fromMap({ + token: CLValueBuilder.byteArray( + contractHashToByteArray(tokenContractHash) + ), + token_id: CLValueBuilder.string(tokenId), + amount: CLValueBuilder.u512(amount), + }) + + return this.buildEntryPointsArgs( + 'list_item', + args, + ); + } + + public async buyItem( + { + tokenContractHash, + tokenId, + amount, + }: { + tokenContractHash: string; + tokenId: string; + amount: number; + } + ) { + const runtimeArgs = RuntimeArgs.fromMap({ + market: ContractUtils.contractToCLByteArray(this.contractHash!), + token: ContractUtils.contractToCLByteArray(tokenContractHash), + token_id: CLValueBuilder.string(tokenId), + amount: CLValueBuilder.u512(amount), + }); + + + return this.buildSessionWasmArgs( + BuyItemWasm, + runtimeArgs, + String(33010427510) + ) + } +} \ No newline at end of file diff --git a/packages/builder/src/deployer/index.ts b/packages/builder/src/deployer/index.ts new file mode 100644 index 0000000..15fa19f --- /dev/null +++ b/packages/builder/src/deployer/index.ts @@ -0,0 +1,61 @@ +import { CasperClient, DeployUtil } from "casper-js-sdk"; +import { CONFIGS } from "../configs"; +import { RequestManager, HTTPTransport, Client } from '@open-rpc/client-js'; + +export const sleep = (ms: number) => { + return new Promise((resolve) => setTimeout(resolve, ms)); +}; + +export const getDeploy = async (nodeURL: string, deployHash: string) => { + const client = new CasperClient(nodeURL); + let i = 300; + while (i !== 0) { + const [deploy, raw] = await client.getDeploy(deployHash); + if (raw.execution_results.length !== 0) { + // @ts-ignore + if (raw.execution_results[0].result.Success) { + return deploy; + } else { + // @ts-ignore + throw Error( + "Contract execution: " + + // @ts-ignore + raw.execution_results[0].result.Failure.error_message + ); + } + } else { + i--; + await sleep(1000); + continue; + } + } + throw Error("Timeout after " + i + "s. Something's wrong"); + }; + +export const runDeployFlow = async (deploy: DeployUtil.Deploy, isWaitting = true) => { + const deployHash = await deploy.send(CONFIGS.NODE_URL!); + + console.log("...... Deploy hash: ", deployHash); + console.log("...... Waiting for the deploy..."); + if (isWaitting) { + await getDeploy(CONFIGS.NODE_URL!, deployHash); + } + + + console.log(`...... Deploy ${deployHash} succedeed`); +}; + +export const speculativeDeploy = async (deployJson:any) => { + // TODO: User casperClient.speculativeDeploy later after + const transport = new HTTPTransport(CONFIGS.SPECULATIVE_NODE_URL); + const requestManager = new RequestManager([transport]); + + const client = new Client(requestManager); + + const result = await client.request({ + method: 'speculative_exec', + params: { ...deployJson }, + }); + + return result; +} \ No newline at end of file diff --git a/packages/builder/src/scripts/marketplace/approve.ts b/packages/builder/src/scripts/marketplace/approve.ts new file mode 100644 index 0000000..a69f739 --- /dev/null +++ b/packages/builder/src/scripts/marketplace/approve.ts @@ -0,0 +1,29 @@ +import { MarketplaceContract } from "../../contract/marketplace.contract"; +import { CLValueBuilder, RuntimeArgs } from 'casper-js-sdk'; +import { contractHashToByteArray } from 'contract-client'; + +const main = async () => { + const marketplaceContract = new MarketplaceContract( + 'hash-89da76216016ec4c5e224968fd6df961bf33da016174966b2bbc3e642d89ad79' + ); + + const args = RuntimeArgs.fromMap({ + spender: CLValueBuilder.key( + CLValueBuilder.byteArray( + contractHashToByteArray('fa43a585efc7372e63833299ff64100928d23ec17ed62020282448a29f68afc0') + ), + ), + token_ids: CLValueBuilder.list([CLValueBuilder.u256(104)]), + }) + + marketplaceContract.buildEntryPointsArgs( + 'approve', + args, + ); + + const result = await marketplaceContract.sendLatestSpeculativeDeploy(); + + console.log("...... Result: ", result); +} + +main(); \ No newline at end of file diff --git a/packages/builder/src/scripts/marketplace/list-item-wasm.ts b/packages/builder/src/scripts/marketplace/list-item-wasm.ts new file mode 100644 index 0000000..0adf1ca --- /dev/null +++ b/packages/builder/src/scripts/marketplace/list-item-wasm.ts @@ -0,0 +1,44 @@ + +import { MarketplaceContract } from "../../contract/marketplace.contract"; +import { CLValueBuilder, RuntimeArgs } from 'casper-js-sdk'; +import { contractHashToByteArray } from 'contract-client'; +import wasm from '../../wasm/list_item.wasm'; + +const main = async () => { + const marketplaceContract = new MarketplaceContract( + 'hash-291038747f38bbdb4f21c4e6374578ceb45a4c187cca36113d4b64028ed1e508' + ); + + const args = RuntimeArgs.fromMap({ + nft_contract_hash: CLValueBuilder.key( + CLValueBuilder.byteArray( + contractHashToByteArray('89da76216016ec4c5e224968fd6df961bf33da016174966b2bbc3e642d89ad79') + ), + ), + market_contract_hash: CLValueBuilder.key( + CLValueBuilder.byteArray( + contractHashToByteArray('291038747f38bbdb4f21c4e6374578ceb45a4c187cca36113d4b64028ed1e508') + ), + ), + spender: CLValueBuilder.key( + CLValueBuilder.byteArray( + contractHashToByteArray('fa43a585efc7372e63833299ff64100928d23ec17ed62020282448a29f68afc0') + ), + ), + token_id: CLValueBuilder.string('141'), + amount: CLValueBuilder.u512(12_000_000_000), + }) + + + marketplaceContract.buildSessionWasmArgs( + wasm, + args, + `${15_000_000_000}`, + ); + + const result = await marketplaceContract.sendLatestSpeculativeDeploy(); + + console.log("...... Result: ", result); +} + +main(); \ No newline at end of file diff --git a/packages/builder/src/scripts/marketplace/list-item.ts b/packages/builder/src/scripts/marketplace/list-item.ts new file mode 100644 index 0000000..0d9d7b6 --- /dev/null +++ b/packages/builder/src/scripts/marketplace/list-item.ts @@ -0,0 +1,22 @@ + +import { MarketplaceContract } from "../../contract/marketplace.contract"; + +const main = async () => { + const marketplaceContract = new MarketplaceContract( + 'hash-03a714464b106f79db74110c0d7f66766e74354193189d77bc5d18cf8e89a000' + ); + + marketplaceContract.listItem( + { + tokenContractHash: 'a1cce80d2f418d4e8c64b1d89c7b06c822f903b1d3a50548fa4f048c183671ee', + tokenId: '59', + amount: 12_000_000_000, + } + ); + + const result = await marketplaceContract.sendLatestSpeculativeDeploy(); + + console.log("...... Result: ", result); +} + +main(); \ No newline at end of file diff --git a/packages/builder/src/wasm/buy_item.wasm.ts b/packages/builder/src/wasm/buy_item.wasm.ts new file mode 100644 index 0000000..40bd101 --- /dev/null +++ b/packages/builder/src/wasm/buy_item.wasm.ts @@ -0,0 +1,6 @@ +/* Autogenerated file. Do not edit manually. */ +/* eslint-disable */ + /* prettier-ignore */ + const base64 = "AGFzbQEAAAABZw5gA39/fwF/YAJ/fwF/YAR/f39/AGABfwF/YAR/f39/AX9gB39/f39/f38Bf2ABfwBgCH9/f39/f39/AX9gA39/fwBgAn9/AGAAAGALf39/f39/f39/f38Bf2AAAX9gBX9/f39/AX8CzwEHA2VudhRjYXNwZXJfZ2V0X25hbWVkX2FyZwAEA2VudhRjYXNwZXJfY2FsbF9jb250cmFjdAAFA2VudhVjYXNwZXJfZ2V0X21haW5fcHVyc2UABgNlbnYjY2FzcGVyX3RyYW5zZmVyX2Zyb21fcHVyc2VfdG9fcHVyc2UABwNlbnYNY2FzcGVyX3JldmVydAAGA2VudhljYXNwZXJfZ2V0X25hbWVkX2FyZ19zaXplAAADZW52F2Nhc3Blcl9yZWFkX2hvc3RfYnVmZmVyAAADb24ICAEDAwkJCAYKCgkDCQkJCAkJCAEGBggJCQkJCgIJCQgGCAkJCQkJBgMIBgYGCQkJAwEJBgELAwIMAwENAQkIBgIAAQEBAQEDAQYGCQEGAQ0NCQEADQEBAAEBAAEIBgACAQMNDQYDAgIBAAAAAAQFAXABHR0FAwEAEQYZA38BQYCAwAALfwBBxJHAAAt/AEHQkcAACwcyBQZtZW1vcnkCAARjYWxsACMDb29tADcKX19kYXRhX2VuZAMBC19faGVhcF9iYXNlAwIJIgEAQQELHG1pVDJCHFBRSjxES0xOUk1jVVtdXl9gYWdob3AKk8ABbt0GAwV/An4CfyOAgICAAEHQAWsiAySAgICAACADQQhqIAEgAhCIgICAAAJAAkACQAJAIAMoAgggAygCDBCJgICAACIEDQBBACEFIANBADYCGCADQoCAgIAQNwMQQQEhBAwBCwJAAkAgASACIAQQioCAgAAiBSAEEICAgIAAEIuAgIAAIgJB/wFxQSxHDQAgBCECDAELIAQgBRCMgICAAEEAIQULIAMgBDYCqAEgAyAFNgKkASADIAI6AKABIAMgAkEYdjoAowEgAyACQQh2OwChASADQRBqIANBoAFqEI2AgIAAIAMoAhAhBSADKAIUIQQgAygCGCICQR9LDQELQQAhBkEAIQIMAQsgA0GgAWpBEGoiASAEQRFqKQAANwMAIANBoAFqQRdqIgcgBEEYaikAADcAACADQYABakEIaiAEQQlqKQAAIgg3AwAgA0GAAWpBEGoiBiABKQMANwMAIANBgAFqQRdqIgEgBykAADcAACADIAQpAAEiCTcDgAEgBC0AACEHIANBoAFqQQlqIgogCDcAACADQaABakERaiILIAYpAwA3AAAgA0GgAWpBGGoiBiABKQAANwAAIAMgBzoAoAEgAyAJNwChASADQaABakEgaiAEQSBqIAJBYGoQjoCAgAAgA0HAAGpBCGogCikAADcDACADQcAAakEQaiALKQAANwMAIANBwABqQRdqIAYpAAA3AAAgAyADKQChATcDQCADLQCgASEGIAMoAsABIQcgAygCxAEhAiADKALIASEBCyAFIAQQjICAgAACQAJAIAJFDQAgA0HgAGpBF2oiBSADQcAAakEXaikAADcAACADQeAAakEQaiIKIANBwABqQRBqKQMANwMAIANB4ABqQQhqIgsgA0HAAGpBCGopAwA3AwAgAyADKQNANwNgQQIhBAJAIAENACADQSBqQRdqIAUpAAA3AAAgA0EgakEQaiAKKQMANwMAIANBIGpBCGogCykDADcDACADIAMpA2A3AyAgBiEECyAHIAIQjICAgAAgAUUNAQtBAhCPgICAAAALIAAgBDoAACAAIAMpAyA3AAEgAEEJaiADQShqKQMANwAAIABBEWogA0EwaikDADcAACAAQRhqIANBN2opAAA3AAAgA0HQAWokgICAgAALfQEDfyOAgICAAEEQayIDJICAgIAAQQAhBCADQQA2AgwCQAJAIAEgAiADQQxqEIWAgIAAEIuAgIAAIgFB/wFxIgJBAUYNACACQSxHDQFBASEEIAMoAgwhBQsgACAFNgIEIAAgBDYCACADQRBqJICAgIAADwsgARCPgICAAAALFAACQCAADQBBARCPgICAAAALIAELQQEBfyAAQSIgAEF/SiIBGyEAAkACQCABRQ0AIABBARC5gICAACIARQ0BIAAPCyAAEI+AgIAAAAtBExCPgICAAAALwAQBBH9BACEBQSwhAkEAIQNBACEEAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAAOKCkoAAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIjJCUnC0EBIQQM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AjQQjICAgAAgBkFYaiEGIAVBKGohBQwACwsgAkEANgKUASACIAQ6AJABDAELIAJBADYClAEgAiAEOgCQASACKAIgIAIoAiQQjICAgAALIAEoAghBKGwhBSABKAIEIgYhBAJAA0AgBUUNASAEKAIAIARBBGooAgAQjICAgAAgBEEMahCdgICAACAEQRxqKAIAIARBIGooAgAQjICAgAAgBUFYaiEFIARBKGohBAwACwsCQCABKAIAIgRFDQAgBiAEQShsQQQQnoCAgAALIAJB4ABqIAJBkAFqEJ+AgIAAIAAgAikDYDcCCCAAIAIpAmQ3AgAgAEEQaiACQegAaigCADYCACACQaABaiSAgICAAAsfACAAKAIIIABBDGoQz4CAgAAgAEEkaigCAGpqQQhqC18BAX8CQAJAIAENAEEBIQIMAQsCQCABQX9KDQAgAEEANgIEIABBAzoAAA8LIAFBARC5gICAACICDQAgAEEANgIEIABBAzoAAA8LIABBADYCCCAAIAI2AgQgACABNgIAC28BAn8jgICAgABBEGsiAiSAgICAAAJAAkAgAQ0AQQEhAwwBCwJAIAFBAEgNACACQQhqIAEgAUF/c0EfdhDkgICAACACKAIIIgMNAQAACxCQgICAAAALIAAgAzYCBCAAIAE2AgAgAkEQaiSAgICAAAtDAQN/IAEoAgQhAiAAIAEoAggiAxC2gICAACAAKAIEIAAoAggiBGogAiADEPSAgIAAGiABQQA2AgggACAEIANqNgIICw4AIAAgASACEJqAgIAAC0MBA38gASgCBCECIAAgASgCCCIDELaAgIAAIAAoAgQgACgCCCIEaiACIAMQ9ICAgAAaIAFBADYCCCAAIAQgA2o2AggL0gIBAn8jgICAgABBEGsiAiSAgICAAAJAAkACQAJAAkACQAJAAkACQCABKAIAIgMOFwgICAgICAgICAgICAgIAAECAwQFBgcICAsgACABQQRqEL6AgIAANgIEQQ4hAwwHCyAAIAFBBGoQvoCAgAA2AgRBDyEDDAYLIAAgASgCBDYCBEEQIQMMBQsgAUEEahC+gICAACEDIAAgAUEIahC+gICAADYCCCAAIAM2AgRBESEDDAQLIAFBBGoQvoCAgAAhAyAAIAFBCGoQvoCAgAA2AgggACADNgIEQRIhAwwDCyAAQQRqQQEgAUEIaiABQQRqEL+AgIAAQRMhAwwCCyACQQhqQQIgAUEMaiABQQRqEL+AgIAAIAAgAikDCDcCBEEUIQMMAQsgAEEEakEDIAFBEGogAUEEahC/gICAAEEVIQMLIAAgAzYCACACQRBqJICAgIAAC8EBAQR/I4CAgIAAQSBrIgMkgICAgAAgA0EQaiACQQRqEJSAgIAAIAMtABAhBAJAAkAgAygCFCIFRQ0AIANBCGoiBiADKAIYNgIAIAMgAy0AEzoAAyADIAMvABE7AAEgAyAFNgIEIAMgBDoAACADIAI2AhAgAyADQRBqQQQQxoCAgAAgAyABIAIQxoCAgAAgAEEIaiAGKAIANgIAIAAgAykDADcCAAwBCyAAQQA2AgQgACAEOgAACyADQSBqJICAgIAAC4sGAQN/I4CAgIAAQSBrIgIkgICAgAADfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAAoAgAOFwABAgMEBQYHCAkKCwwNDg8XEBUREhMUAAsgAUEAENOAgIAADBcLIAFBARDTgICAAAwWCyABQQIQ04CAgAAMFQsgAUEDENOAgIAADBQLIAFBBBDTgICAAAwTC0EFIQMgAUEFENOAgIAADBMLIAFBBhDTgICAAAwRCyABQQcQ04CAgAAMEAsgAUEIENOAgIAADA8LIAFBCRDTgICAAAwOCyABQQoQ04CAgAAMDQsgAUELENOAgIAADAwLIAFBDBDTgICAAAwLCyABQRYQ04CAgAAMCgsgAUENENOAgIAADAsLIAFBDhDTgICAAAwKCyABQRAQ04CAgAAgACgCBCABEJuAgIAAQf8BcSIDQQVHDQgMBQsgAUESENOAgIAAIABBBGohBEEAIQADQCAAQQRGDQcgBCAAaiEDIABBBGohACADKAIAIAEQm4CAgABB/wFxIgNBBUYNAAwICwsgAUETENOAgIAAIABBBGohBEEAIQADQCAAQQhGDQYgBCAAaiEDIABBBGohACADKAIAIAEQm4CAgABB/wFxIgNBBUYNAAwHCwsgAUEUENOAgIAAQQQhBANAIARBEEYNBSAAIARqIQMgBEEEaiEEIAMoAgAgARCbgICAAEH/AXEiA0EFRg0ADAYLCyABQRUQ04CAgAAMAwsgAUERENOAgIAAIAAoAgQgARCbgICAAEH/AXEiA0EFRw0DCyAAQQhqIQAMBAsgAUEPENOAgIAAIAJBEGogACgCBBDFgICAACACLQAQIQMgAigCFCIARQ0BIAIgAi0AEzoAAyACIAIvABE7AAEgAiACKAIYNgIIIAIgADYCBCACIAM6AAAgASACEJiAgIAAIAIoAgAgAigCBBCMgICAAAtBBSEDCyACQSBqJICAgIAAIAMPCyAAQQRqIQALIAAoAgAhAAwACwvIAQEBfwJAAkACQAJAAkACQAJAAkACQCAAKAIAQXJqDggAAQgCAwQFBggLIABBBGohAQwGCyAAQQRqIQEMBQsgAEEEahC7gICAACAAQQhqIQEMBAsgAEEEahC7gICAACAAQQhqIQEMAwsgAEEEaiEBDAILIABBBGohAEEAIQEDQCABQQhGDQMgACABahC7gICAACABQQRqIQEMAAsLQQQhAQNAIAFBEEYNAiAAIAFqELuAgIAAIAFBBGohAQwACwsgARC7gICAAAsLyAEBAX8CQAJAAkACQAJAAkACQAJAAkAgACgCAEFyag4IAAEIAgMEBQYICyAAQQRqIQEMBgsgAEEEaiEBDAULIABBBGoQx4CAgAAgAEEIaiEBDAQLIABBBGoQx4CAgAAgAEEIaiEBDAMLIABBBGohAQwCCyAAQQRqIQBBACEBA0AgAUEIRg0DIAAgAWoQx4CAgAAgAUEEaiEBDAALC0EEIQEDQCABQRBGDQIgACABahDHgICAACABQQRqIQEMAAsLIAEQx4CAgAALC7oBAQF/I4CAgIAAQRBrIgMkgICAgAACQAJAIAJBBU8NACABQQNqQQJ2QX9qIgJB/wFLDQAgA0HAkcCAADYCBCADIAJBAnRBwInAgABqIgIoAgA2AgwgACADQQxqIANBBGpBgYCAgAAQ7oCAgAAgAiADKAIMNgIADAELIANBACgCwJHAgAA2AgggACADQQhqQdSIwIAAQYKAgIAAEO6AgIAAQQAgAygCCDYCwJHAgAALIANBEGokgICAgAALOAACQCABKAIEDQAgAS0AABCwgICAABCPgICAAAALIAAgASkCADcCACAAQQhqIAFBCGooAgA2AgALRwEBfwJAIAAoAggiAiAAKAIARw0AIAAgAhChgICAACAAKAIIIQILIAAoAgQgAkEobGogAUEoEPSAgIAAGiAAIAJBAWo2AggL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AWogAEH4A2ogAWopAAA3AwAgAUEIaiEBDAALCyAALQCoAyEBIABB6AJqIABBqANqQQFyIg5BPxD0gICAABogACABOgCoAyAOIABB6AJqQT8Q9ICAgAAhASAAQegDaiAGIAkQjoCAgAAgAC0AqAMhCSAAQegBaiABQT8Q9ICAgAAaIAA1AvADIRAgACgC7AMhASAAKALoAyEODAMLQQIQj4CAgAAACyANIA4QpYCAgAAAC0EAIQFBACEJCyALIAIQjICAgAACQAJAAkAgAUUNACAAQagCaiAAQegBakE/EPSAgIAAGgJAIBBQRQ0AQQAgCCAEGyEIQQIgByAEG0H/AXEhByAAQagBaiAAQagCakE/EPSAgIAAGiAOIAEQjICAgAAgAEH4A2ogAEGoAWpBPxD0gICAABogAEEANgLwASAAQoCAgIDAADcD6AEgAEGoA2pBGGogAEHYAGpBGGopAwA3AwAgAEGoA2pBEGogAEHYAGpBEGopAwA3AwAgAEGoA2pBCGogAEHYAGpBCGopAwA3AwAgACAAKQNYNwOoAyAAQegCaiAAQagDahCmgICAACAAQegCakEMaigCACECIAAoAvACIQsgACgC6AIhASAAKALsAiEEIABBqANqQamAwIAAQQ8Qp4CAgAAgAEGoA2pBDGoiDigCACENIAAoArADIQYgACgCrAMhDCAAKAKoAyEKIABBqANqIABB6AFqEJKAgIAAIA4oAgAhDiAAKAKwAyEPIAEgBCAKIAwgACgCqAMgACgCrAMgAEGoA2oQgYCAgAAQi4CAgAAQqICAgABBASEEAkAgACgCqAMiAUUNACAAQagDaiABEIqAgIAAIgQgARCpgICAACAALwGoAyAAKAGqAxCigICAAAsgCCAHciEMIAAgATYC8AIgACAENgLsAiAAIAE2AugCIABBqANqIABB6AJqEKqAgIAAIABBqAJqIABBqANqEKuAgIAAIA8gDhCMgICAACAGIA0QjICAgAAgCyACEIyAgIAAQSEQioCAgAAiARCCgICAACAAQSE2AvACIAAgATYC7AIgAEEhNgLoAiAAQagDaiAAQegCahCqgICAACAAQegCaiAAQagDahCrgICAACAAQagDaiAAQegCakEhEPSAgIAAGiAAQegBaiAAQagDahCsgICAACAAQegBakEMaiIBKAIAIQggACgC6AEhAiAAKALsASELIAAoAvABIQ4gAEGoA2ogAEGoAmpBIRD0gICAABogAEHoAWogAEGoA2oQrICAgAAgASgCACENIAAoAugBIQYgACgC7AEhCiAAKALwASEPIAAgCToAqAMgAEGoA2pBAXIgAEH4A2pBPxD0gICAABogAEHoAWogAEGoA2oQrYCAgAAgAEGoAWogAEHoAWoQn4CAgAAgACgCrAEhBCAAKAKwASERIAAoAqgBIRIgAEEwakEJEJWAgIAAIAAoAjAhASAAKAI0IgdFDQIgACABOgDoASAAIAFBGHY6AOsBIAAgAUEIdjsA6QFBACEBIABBADYC8AEgACAHNgLsAQJAIAAoAugBDQAgAEHoAWpBABCugICAACAAKALsASEHIAAoAvABIQELIABB6AFqQQhqIhMgAUEBajYCACAHIAFqQQE6AAAgAEEoakEIEJWAgIAAIAAoAighASAAKAIsIgdCsemfBDcAACAAIAFBGHY6AKsDIAAgAUEIdjsAqQMgAEEINgKwAyAAIAc2AqwDIAAgAToAqAMgAEHoAWogAEGoA2oQmICAgAAgAEGoAWpBCGogEygCADYCACAAIAApA+gBNwOoASAAKAKoAyAAKAKsAxCMgICAAAwDCyAOIAEQjICAgAALQQIQj4CAgAAACyAAQQA2AqwBIAAgAToAqAELIABBqANqIABBqAFqEJ+AgIAAIAAoAqgDIQEgAiALIAYgCiAEIBEgACgCrAMiByAAKAKwAxCDgICAABCLgICAACECIAEgBxCMgICAACASIAQQjICAgAAgDyANEIyAgIAAIA4gCBCMgICAACACEKiAgIAAQRghCCAAQegBakEYaiAAQdgAakEYaikDADcDACAAQegBakEQaiAAQdgAakEQaikDADcDACAAQegBakEIaiAAQdgAakEIaikDADcDACAAIAApA1g3A+gBIABBADYCoAEgAEKAgICAwAA3A5gBIABBIGpBIBCVgICAACAAQfgAakEIaikDACEQIABB+ABqQRBqKQMAIRQgAEH4AGpBGGopAwAhFSAAKAIgIQQgACgCJCIBIAApA3g3AAAgAUEYaiAVNwAAIAFBEGogFDcAACABQQhqIBA3AAAgAEEYakEFEJWAgIAAIAAgACgCHCIHNgKsAyAAIAAoAhg2AqgDIAdBBGpBAC0AmoDAgAA6AAAgB0EAKACWgMCAADYAACAAQccDaiIHIARBGHY6AAAgAEG3A2oiAkEAOgAAIAAgBEEIdjsAxQMgAEEAOwC1AyAAQSA2AswDIAAgATYCyAMgACAEOgDEAyAAQSA2ArgDIABBEDoAtAMgAEEFNgKwAyAAQZgBaiAAQagDahCggICAACAAQRg2AugCIABB6AJqEK+AgIAAIABB6AJqIAMgBRCXgICAACAMIAMQjICAgAAgAC0A6AIhAQJAAkAgACgC7AIiBUUNACAAQaoBaiIEIAAtAOsCOgAAIAAgAC8A6QI7AagBIAAoAvACIQMgAEEQakEIEJWAgIAAIAAgACgCFCILNgKsAyAAIAAoAhA2AqgDIAtC9N6tq+bt17TkADcAACACQQA6AAAgByAELQAAOgAAIABBqANqQRhqIABB6AJqQQhqKAAANgIAIABBADsAtQMgAEEKOgC0AyAAQQg2ArADIAAgAToAxAMgACAALwGoATsAxQMgACADNgLMAyAAIAU2AsgDIAAgACkA6AI3A7gDIABBmAFqIABBqANqEKCAgIAADAELIAAgAToArANBFyEICyAAIAg2AqgDIABBqANqEK+AgIAAIAAgCToAqAMgAEGoA2pBAXIgAEH4A2pBPxD0gICAABogAEGoAWogAEGoA2oQrYCAgAAgAC0AqAEhAQJAAkAgACgCrAEiBEUNACAAQb4EaiIDIAAtAKsBOgAAIAAgAC8AqQE7AbwEIAAoArABIQkgAEEIakEGEJWAgIAAIAAgACgCDCIFNgLsAiAAIAAoAgg2AugCIAVBBGpBAC8Ap4DAgAA7AAAgBUEAKACjgMCAADYAACAAQfcCakEAOgAAIABBhwNqIAMtAAA6AABBGCEFIABBCDoA9AIgAEHoAmpBGGogAEGoAWpBCGooAAA2AgAgAEEAOwD1AiAAQQY2AvACIAAgAToAhAMgACAALwG8BDsAhQMgACAJNgKMAyAAIAQ2AogDIAAgACkAqAE3A/gCIABBmAFqIABB6AJqEKCAgIAADAELIAAgAToA7AJBFyEFCyAAIAU2AugCIABB6AJqEK+AgIAAIABBqAFqQQhqIABBmAFqQQhqKAIANgIAIAAgACkDmAE3A6gBIABBqANqQRhqIABB6AFqQRhqKQMANwMAIABBqANqQRBqIABB6AFqQRBqKQMANwMAIABBqANqQQhqIABB6AFqQQhqKQMANwMAIAAgACkD6AE3A6gDIABB6AJqIABBqANqEKaAgIAAIABB6AJqQQxqKAIAIQcgACgC8AIhCCAAKALoAiEBIAAoAuwCIQUgAEGoA2pBuIDAgABBCBCngICAACAAQagDakEMaiIEKAIAIQIgACgCsAMhCyAAKAKsAyEDIAAoAqgDIQkgAEGoA2ogAEGoAWoQkoCAgAAgBCgCACEOIAAoArADIQ0gASAFIAkgAyAAKAKoAyAAKAKsAyAAQagDahCBgICAABCLgICAABCogICAAAJAAkAgACgCqAMiAQ0AQQEhBQwBCyAAQagDaiABEIqAgIAAIgUgARCpgICAACAALwGoAyAAKAGqAxCigICAAAsgAEGoA2ogBSABEI6AgIAAIAAoAqwDIQQgASAFEIyAgIAAIAAtAKgDIQECQAJAAkAgBEUNACAAKAKwAyEFIAAvAKkDIAAtAKsDQRB0ckEIdCABciAEEIyAgIAAIAVFDQFBAiEBDAILIAFBBUcNAQsgDSAOEIyAgIAAIAsgAhCMgICAACAIIAcQjICAgAAgAEHABGokgICAgAAPCyABELCAgIAAEI+AgIAAAAsmAAJAIAEgA0sNACAAIAE2AgQgACACNgIADwsgASADELqAgIAAAAsJABCRgICAAAALvwEBA38jgICAgABBMGsiAiSAgICAACACQQhqQSAQlYCAgAAgAigCCCEDIAIoAgwiBCABKQAANwAAIARBGGogAUEYaikAADcAACAEQRBqIAFBEGopAAA3AAAgBEEIaiABQQhqKQAANwAAIAJBIDYCKCACIAQ2AiQgAiADNgIgIAJBEGogAkEgahCfgICAACAAIAIpAxA3AgggAEEQaiACQRBqQQhqKAIANgIAIAAgAikCFDcCACACQTBqJICAgIAAC2ABAX8jgICAgABBIGsiAySAgICAACADQRBqIAEgAhCagICAACADIANBEGoQn4CAgAAgACADKQMANwIIIABBEGogA0EIaigCADYCACAAIAMpAgQ3AgAgA0EgaiSAgICAAAsZAAJAIABB/wFxQSxGDQAgABCPgICAAAALC2cBAX8jgICAgABBEGsiAySAgICAAAJAAkAgASACIANBDGoQhoCAgAAQi4CAgAAiAkH/AXFBLEcNACAAIAMoAgw2AgQgAEEAOwEADAELIABBATsBACAAIAI2AQILIANBEGokgICAgAALnAUCCH8CfiOAgICAAEHAAWsiAiSAgICAACABQQRqKAIAIQMCQAJAAkAgASgCCCIEQSBJDQAgAkHwAGpBEGoiBSADQRFqKQAANwMAIAJB8ABqQRdqIgYgA0EYaikAADcAACACQagBaiADQQlqKQAANwMAIAJBoAFqQRBqIAUpAwA3AwAgAkGgAWpBF2ogBikAADcAACACIAMpAAE3A6ABAkACQCAEQWBqIgQNAEEAIQZBACEEDAELIARBf2ohByADQSBqIgRBAWohBiAELQAAIQQLQQEgBCAEQf8BcUEHSyIIGyAEIAYbIQUgBkUNASAIDQEgAy0AACEEIAJB0ABqQRdqIgggAkGgAWpBF2opAAA3AAAgAkHQAGpBEGoiCSACQaABakEQaikDADcDACACQdAAakEIaiACQaABakEIaikDACIKNwMAIAIgAikDoAEiCzcDUCACQfkAaiAKNwAAIAJBgQFqIAkpAwA3AAAgAkGIAWogCCkAADcAACACIAQ6AHAgAiALNwBxIAIgBToAkAEgAkGUAWogBiAHEI6AgIAAIAItAHAhBSACQQpqIAJB8ABqQQFyQSMQ9ICAgAAaIAIoApwBIQYgAigCmAEhBCACKAKUASEIDAILQQAhBQtBACEECyABKAIAIAMQjICAgAACQAJAAkACQCAERQ0AIAJBLWogAkEKakEjEPSAgIAAGiAGRQ0BIABBAjoAAUEBIQMMAgsgAEEBOgAAIAAgBToAAQwCCyAAIAU6AAEgAEECaiACKQAtNwAAIABBGmogAkHFAGopAAA3AAAgAEESaiACQT1qKQAANwAAIABBCmogAkE1aikAADcAAEEAIQMLIAAgAzoAACAIIAQQjICAgAALIAJBwAFqJICAgIAACy8AAkAgAS0AAEUNACABLQABELCAgIAAEI+AgIAAAAsgACABQQFqQSEQ9ICAgAAaC5ADAQN/I4CAgIAAQcAAayICJICAgIAAIAJBCGpBIRCVgICAACACQQA2AiggAiACKQMINwMgIAJBIBCVgICAACACKAIAIQMgAigCBCIEIAEpAAA3AAAgBEEYaiABQRhqKQAANwAAIARBEGogAUEQaikAADcAACAEQQhqIAFBCGopAAA3AAAgAiADQRh2OgAzIAIgA0EIdjsAMSACQSA2AjggAiAENgI0IAIgAzoAMCACQSBqIAJBMGoQmICAgAAgAigCMCACKAI0EIyAgIAAAkBBAUEBELmAgIAAIgQNAAAACyAEIAEtACA6AAAgAkEAOgAzIAJBADsAMSACQQE2AjggAiAENgI0IAJBAToAMCACQSBqIAJBMGoQmICAgAAgAigCMCACKAI0EIyAgIAAIAJBEGpBCGogAkEgakEIaigCADYCACACIAIpAyA3AxAgAkEwaiACQRBqEJ+AgIAAIAAgAikDMDcCCCAAQRBqIAJBMGpBCGooAgA2AgAgACACKQI0NwIAIAJBwABqJICAgIAAC9YFAwN/AX4GfyOAgICAAEGwAWsiAiSAgICAAEEAIQMgAkEwakEAQcAAEPOAgIAAGgJAA0AgA0HAAEYNASACQTBqIANqIAEgA2opAwA3AAAgA0EIaiEDDAALC0EAIQMgAkEAOgCIASACIAJB8ABqNgKAASACIAJBMGo2AoQBIAJBKGogAkGAAWoQtYCAgAACQAJAAkAgAi0AKEEBcQ0AIAJBADYCeCACQoCAgIAQNwNwQQAhBAwBCyACLQApIQMgAkEgakEIEJWAgIAAIAIoAiAhASACKAIkIgQgAzoAACACQQE2ApgBIAIgBDYClAEgAiABNgKQASACQaABakEIaiACQYABakEIaigCADYCACACIAIpA4ABNwOgAUEBIQMDQCACQRhqIAJBoAFqELWAgIAAAkACQCACLQAYQQFxRQ0AIAItABkhASADIAIoApABRw0BIAJBkAFqQQEQtoCAgAAgAigClAEhBAwBCyACQfAAakEIaiACQZABakEIaigCACIDNgIAIAIgAikDkAEiBTcDcCADIQEgAyAFpyIERw0DDAILIAQgA2ogAToAACACIANBAWoiAzYCmAEMAAsLIAJB8ABqIAQQroCAgAAgAigCeCEBCyACKAJ0IgQgAWogAzoAACACIAFBAWoiATYCeCACQRBqIAFBAXYiAyAEIAMQpICAgAAgAigCFCEGIAIoAhAhByACQQhqIAMgBCABaiADayADEKSAgIAAIANBf2ohA0EAIQEgAigCDCEIIAIoAgghCQJAAkADQCADQX9GDQEgBiABRg0CAkAgAyAITw0AIAcgAWoiBC0AACEKIAQgCSADaiILLQAAOgAAIAsgCjoAACADQX9qIQMg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ZW50b2tlbl9pZGFtb3VudGdldF9vcmRlcl9wdXJzZWJ1eV9pdGVtY2FsbGVkIGBSZXN1bHQ6OnVud3JhcCgpYCBvbiBhbiBgRXJyYCB2YWx1ZUNMVHlwZU1pc21hdGNoZXhwZWN0ZWQAAAAGAAAAEAAAAAQAAAAHAAAAZm91bmQAAAAIAAAABAAAAAQAAAAJAAAAVHlwZQgAAAAEAAAABAAAAAoAAABTZXJpYWxpemF0aW9uAAAACAAAAAQAAAAEAAAACwAAAEV4Y2VlZGVkUmVjdXJzaW9uRGVwdGhPdXRPZk1lbW9yeUxlZnRPdmVyQnl0ZXNGb3JtYXR0aW5nRWFybHlFbmRPZlN0cmVhbUFueVR1cGxlMwAAAAgAAAAEAAAABAAAAAwAAABUdXBsZTIAAAgAAAAEAAAABAAAAA0AAABUdXBsZTEAAAgAAAAEAAAABAAAAA4AAABNYXBrZXkAAA8AAAAEAAAABAAAAAkAAAB2YWx1ZQAAAAgAAAAEAAAABAAAABAAAABSZXN1bHRva2VyckJ5dGVBcnJheQgAAAAEAAAABAAAABEAAABMaXN0T3B0aW9uUHVibGljS2V5VVJlZktleVN0cmluZ1VuaXRVNTEyVTI1NlUxMjhVNjRVMzJVOEk2NEkzMkJvb2wpWzogAAASAAAADAAAAAQAAAATAAAAFAAAABUAAAAgICAgIHsKLAosICB7IH0gfSgKKCwKXTB4MDAwMTAyMDMwNDA1MDYwNzA4MDkxMDExMTIxMzE0MTUxNjE3MTgxOTIwMjEyMjIzMjQyNTI2MjcyODI5MzAzMTMyMzMzNDM1MzYzNzM4Mzk0MDQxNDI0MzQ0NDU0NjQ3NDg0OTUwNTE1MjUzNTQ1NTU2NTc1ODU5NjA2MTYyNjM2NDY1NjY2NzY4Njk3MDcxNzI3Mzc0NzU3Njc3Nzg3OTgwODE4MjgzODQ4NTg2ODc4ODg5OTA5MTkyOTM5NDk1OTY5Nzk4OTkAAAASAAAABAAAAAQAAAAWAAAAFwAAABgAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMDAwMDAwMDAwMDAwMDAwMEBAQEBAAAAAAAAAAAAAAACAAAAAAAAAABAAAAGQAAABoAAAACAAAACAAAAAQAAAAEAAAAGwAAABwAAAABAAAACAAAAAAAAAABAAAAGQAAABoAAAACAAAAFgAAABAAAAAQAAAAEAAAABAAAAAKAAAADQAAAAsAAADgABAAGAEQABgBEAAYARAAGAEQAA4BEAABARAA9gAQABAAAAARAAAAEgAAABMAAAAmAAAA"; + const wasm = new Uint8Array(Buffer.from(base64, 'base64')); + export default wasm; diff --git a/packages/builder/src/wasm/list_item.wasm.ts b/packages/builder/src/wasm/list_item.wasm.ts new file mode 100644 index 0000000..16e9ef3 --- /dev/null +++ b/packages/builder/src/wasm/list_item.wasm.ts @@ -0,0 +1,9 @@ + +/* Autogenerated file. Do not edit manually. */ + /* eslint-disable eslint-comments/disable-enable-pair */ + /* eslint-disable eslint-comments/no-unlimited-disable */ + /* eslint-disable */ + /* prettier-ignore */ + const base64 = "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CSEAA0ACQCAAQQRqKAIAIgNBAUgNACAAKAIAIANBARCKgICAAAsgAEEMaiIDEI2AgIAAAkAgAEEgaigCACIBQQFIDQAgAEEcaigCACABQQEQioCAgAALIANBHGoiACACRw0ACwsCQCAKRQ0AIAqtQih+IhZCIIinDQAgFqciAEGDgICAeGpBhICAgHhJDQAgCSAAQQQQioCAgAALAkACQAJAAkACQCAPRQ0AIAVBICAHIAYgESAUIARBIGoQgICAgAAQkYCAgAAiAEH/AXFBLUcNAQJAIAQoAiAiAEUNACAAQX9MDQMgBCAANgFiIARBIGpBBGogBEHgAGpBBGovAQA7AQAgBCAEKAJgNgIgIAQgBCgBIkEBEIaAgIAAIgM2AiQgBCADRUGAgMwAcjYCICADRQ0EIAMgACAEQSBqEIGAgIAAEJGAgIAAIgRB/wFxQS1HDQUgAyAAIABBf3NBH3YQioCAgABBAhCOgICAABCPgICAAAALAkAgFUEBSA0AIBEgFUEBEIqAgIAACwJAIAhBAUgNACAHIAhBARCKgICAAAsgBUEAKAKMisCAADYCAEEAIAVBeGoiADYCjIrAgAAgACAAKAIAQX5xNgIAIARB8ABqJICAgIAADwsgDRCOgICAABCPgICAAAALIAAQj4CAgAAACyAEQSI2AmAgBEEgakEEaiAEQeAAakEEai8BADsBACAEQSI2AiBBIhCPgICAAAALIAQoASIQj4CAgAAACyAEEI+AgIAAAAu0AwEEfyOAgICAAEEQayICJICAgIAAIAFBASABGyEBAkACQCAADQAgASEADAELIABBA2oiA0ECdiEEAkAgAUEFTw0AIARBf2oiAEH/AUsNACACQeyJwIAANgIIIAIgAEECdEHwicCAAGoiAygCADYCDAJAIAQgASACQQxqIAJBCGpB6IjAgAAQnYCAgAAiAA0AIAIgAkEIaiAEIAEQwICAgABBACEAIAIoAgANACACKAIEIgAgAigCDDYCCCACIAA2AgwgBCABIAJBDGogAkEIakHoiMCAABCdgICAACEACyADIAIoAgw2AgAMAQsgAkEAKALsicCAADYCDAJAIAQgASACQQxqQYCJwIAAQYCJwIAAEJ2AgIAAIgANAEEAIQAgA0F8cSIDIAFBA3RBgIABaiIFIAMgBUsbQYeABGoiA0EQdkAAIgVB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ACADQQhqIAJBCGoiBSkDADcCACADIAIpAwA3AgBBEEEEEIaAgIAAIgRFDQEgAiABQQhqKAIAEIuAgIAAIARBCGogBSkDADcCACAEIAIpAwA3AgBBEEEEEIaAgIAAIgVFDQEgAiABQQxqKAIAEIuAgIAAIAVBCGogAkEIaikDADcCACAFIAIpAwA3AgAgAEEMaiAFNgIAIABBCGogBDYCACAAIAM2AgRBFSEDCyAAIAM2AgAgAkEQaiSAgICAAA8LAAALhQ0BBH8gAUEEaiECIAFBCGohAwNAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgACgCAA4XAAECAwQFBgcICQoLDA0ODxAREhMUFRYACwJAIAMoAgAiACACKAIARw0AIAEgABCbgICAACABKAIIIQALIAEoAgAgAGpBADoAACADIABBAWo2AgAPCwJAIAMoAgAiACACKAIARw0AIAEgABCbgICAACABKAIIIQALIAEoAgAgAGpBAToAACADIABBAWo2AgAPCwJAIAMoAgAiACACKAIARw0AIAEgABCbgICAACABKAIIIQALIAEoAgAgAGpBAjoAACADIABBAWo2AgAPCwJAIAMoAgAiACACKAIARw0AIAEgABCbgICAACABKAIIIQALIAEoAgAgAGpBAzoAACADIABBAWo2AgAPCwJAIAMoAgAiACACKAIARw0AIAEgABCbgICAACABKAIIIQALIAEoAgAgAGpBBDoAACADIABBAWo2AgAPCwJAIAMoAgAiACACKAIARw0AIAEgABCbgICAACABKAIIIQALIAEoAgAgAGpBBToAACADIABBAWo2AgAPCwJAIAMoAgAiACACKAIARw0AIAEgABCbgICAACABKAIIIQALIAEoAgAgAGpBBjoAACADIABBAWo2AgAPCwJAIAMoAgAiACACKAIARw0AIAEgABCbgICAACABKAIIIQALIAEoAgAgAGpBBzoAACADIABBAWo2AgAPCwJAIAMoAgAiACACKAIARw0AIAEgABCbgICAACABKAIIIQALIAEoAgAgAGpBCDoAACADIABBAWo2AgAPCwJAIAMoAgAiACACKAIARw0AIAEgABCbgICAACABKAIIIQALIAEoAgAgAGpBCToAACADIABBAWo2AgAPCwJAIAMoAgAiACACKAIARw0AIAEgABCbgICAACABKAIIIQALIAEoAgAgAGpBCjoAACADIABBAWo2AgAPCwJAIAMoAgAiACACKAIARw0AIAEgABCbgICAACABKAIIIQALIAEoAgAgAGpBCzoAACADIABBAWo2AgAPCwJAIAMoAgAiACACKAIARw0AIAEgABCbgICAACABKAIIIQALIAEoAgAgAGpBDDoAACADIABBAWo2AgAPCwJAIAMoAgAiACACKAIARw0AIAEgABCbgICAACABKAIIIQALIAEoAgAgAGpBFjoAACADIABBAWo2AgAPCyAAQQRqIQRBDSEFIAMoAgAiACACKAIARw0JDAgLIABBBGohBEEOIQUgAygCACIAIAIoAgBGDQcMCAsCQCADKAIAIgQgAigCAEcNACABIAQQm4CAgAAgASgCCCEECyABKAIAIARqQQ86AAAgASAEQQFqIgI2AgggACgCBCEAAkAgASgCBCACa0EDSw0AIAEgAkEEEImAgIAAIAEoAgghAgsgASgCACACaiAANgAAIAMgAkEEajYCAA8LIABBCGohBQJAIAMoAgAiBCACKAIARw0AIAEgBBCbgICAACABKAIIIQQLIAEgBEEBajYCCCABKAIAIARqQRA6AAAgACgCBCABEIyAgIAAIAUoAgAhAAwHCyAAQQhqIQUCQCADKAIAIgQgAigCAEcNACABIAQQm4CAgAAgASgCCCEECyABIARBAWo2AgggASgCACAEakEROgAAIAAoAgQgARCMgICAACAFKAIAIQAMBgsCQCADKAIAIgQgAigCAEcNACABIAQQm4CAgAAgASgCCCEECyABIARBAWo2AgggASgCACAEakESOgAAIABBBGooAgAhAAwFCwJAIAMoAgAiBCACKAIARw0AIAEgBBCbgICAACABKAIIIQQLIAEgBEEBajYCCCABKAIAIARqQRM6AAAgACgCBCABEIyAgIAAIABBCGooAgAhAAwECwJAIAMoAgAiBCACKAIARw0AIAEgBBCbgICAACABKAIIIQQLIAEgBEEBajYCCCABKAIAIARqQRQ6AAAgACgCBCABEIyAgIAAIABBCGooAgAgARCMgICAACAAQQxqKAIAIQAMAwsCQCADKAIAIgAgAigCAEcNACABIAAQm4CAgAAgASgCCCEACyABKAIAIABqQRU6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vAFqQQxqIAJBCGopAAA3AgAgA0G8AWpBFGogAkEQaikAADcCACADQbwBakEcaiACQRhqKQAANwIAIAMgAikAADcCwAEgA0H4AGpBDGogAykCvAE3AgAgA0H4AGpBFGogA0G8AWpBCGopAgA3AgAgA0H4AGpBHGogA0G8AWpBEGopAgA3AgAgA0GcAWogA0G8AWpBGGopAgA3AgAgA0GkAWogA0G8AWpBIGooAgA2AgAgA0G0AWogBEFfajYCACADQbABaiAFQSFqNgIAIANB+ABqQQhqQQE2AgAgA0EAOgB4DA4LQQAhBwJAIAZBIUkNAEEBIQcgBS0AISIBQQdLDQAgA0G8AWpBDGogAkEIaikAADcCACADQbwBakEUaiACQRBqKQAANwIAIANBvAFqQRxqIAJBGGopAAA3AgAgAyACKQAANwLAASADQfgAakEMaiADKQK8ATcCACADQfgAakEUaiADQbwBakEIaikCADcCACADQfgAakEcaiADQbwBakEQaikCADcCACADQZwBaiADQbwBakEYaikCADcCACADQaQBaiADQdwBaigCADYCACADQbQBaiAEQV5qNgIAIANBsAFqIAVBImo2AgAgA0GoAWogAToAACADQfgAakEIakECNgIAIANBADoAeAwOC0EBIQEgA0EBOgB4IAMgBzoAeQwTCyAGQSBJDQ0gA0G8AWpBDGogAkEIaikAADcCACADQbwBakEUaiACQRBqKQAANwIAIANBvAFqQRxqIAJBGGopAAA3AgAgAyACKQAANwLAASADQfgAakEMaiADKQK8ATcCACADQfgAakEUaiADQbwBakEIaikCADcCACADQfgAakEcaiADQbwBakEQaikCADcCACADQZwBaiADQbwBakEYaikCADcCACADQaQBaiADQbwBakEgaigCADYCACADQbQBaiAEQV9qNgIAIANBsAFqIAVBIWo2AgAgA0H4AGpBCGpBAzYCACADQQA6AHgMDAsgBkEgSQ0MIANBvAFqQQxqIAJBCGopAAA3AgAgA0G8AWpBFGogAkEQaikAADcCACADQbwBakEcaiACQRhqKQAANwIAIAMgAikAADcCwAEgA0H4AGpBDGogAykCvAE3AgAgA0H4AGpBFGogA0G8AWpBCGopAgA3AgAgA0H4AGpBHGogA0G8AWpBEGopAgA3AgAgA0GcAWogA0G8AWpBGGopAgA3AgAgA0GkAWogA0G8AWpBIGooAgA2AgAgA0G0AWogBEFfajYCACADQbABaiAFQSFqNgIAIANB+ABqQQhqQQQ2AgAgA0EAOgB4DAsLIAZBCEkNCyADQbQBaiAEQXdqNgIAIANBsAFqIAVBCWo2AgAgA0GIAWogBSkAATcDACADQfgAakEIakEFNgIAIANBADoAeAwKCyAGQSBJDQogA0G8AWpBDGogAkEIaikAADcCACADQbwBakEUaiACQRBqKQAANwIAIANBvAFqQRxqIAJBGGopAAA3AgAgAyACKQAANwLAASADQfgAakEMaiADKQK8ATcCACADQfgAakEUaiADQbwBakEIaikCADcCACADQfgAakEcaiADQbwBakEQaikCADcCACADQZwBaiADQbwBakEYaikCADcCACADQaQBaiADQbwBakEgaigCADYCACADQbQBaiAEQV9qNgIAIANBsAFqIAVBIWo2AgAgA0H4AGpBCGpBBjYCACADQQA6AHgMCQsgBkEgSQ0JIANBvAFqQQxqIAJBCGopAAA3AgAgA0G8AWpBFGogAkEQaikAADcCACADQbwBakEcaiACQRhqKQAANwIAIAMgAikAADcCwAEgA0H4AGpBDGogAykCvAE3AgAgA0H4AGpBFGogA0G8AWpBCGopAgA3AgAgA0H4AGpBHGogA0G8AWpBEGopAgA3AgAgA0GcAWogA0G8AWpBGGopAgA3AgAgA0GkAWogA0G8AWpBIGooAgA2AgAgA0G0AWogBEFfajYCACADQbABaiAFQSFqNgIAIANB+ABqQQhqQQc2AgAgA0EAOgB4DAgLIAZBIEkNCCADQbwBakEMaiACQQhqKQAANwIAIANBvAFqQRRqIAJBEGopAAA3AgAgA0G8AWpBHGogAkEYaikAADcCACADIAIpAAA3AsABIANB+ABqQQxqIAMpArwBNwIAIANB+ABqQRRqIANBvAFqQQhqKQIANwIAIANB+ABqQRxqIANBvAFqQRBqKQIANwIAIANBnAFqIANBvAFqQRhqKQIANwIAIANBpAFqIANBvAFqQSBqKAIANgIAIANBtAFqIARBX2o2AgAgA0GwAWogBUEhajYCACADQfgAakEIakEINgIAIANBADoAeAwHCyAGQSBJDQcgA0G8AWpBDGogAkEIaikAADcCACADQbwBakEUaiACQRBqKQAANwIAIANBvAFqQRxqIAJBGGopAAA3AgAgAyACKQAANwLAASADQfgAakEMaiADKQK8ATcCACADQfgAakEUaiADQbwBakEIaikCADcCACADQfgAakEcaiADQbwBakEQaikCADcCACADQZwBaiADQbwBakEYaikCADcCACADQaQBaiADQbwBakEgaigCADYCACADQbQBaiAEQV9qNgIAIANBsAFqIAVBIWo2AgAgA0H4AGpBCGpBCTYCACADQQA6AHgMBgsgBkEgSQ0GIANBtAFqIARBX2o2AgAgA0GwAWogBUEhajYCACADQYABakEKNgIAIANBADoAeAwFCyAGQSBJDQUgA0G0AWogBEFfajYCACADQbABaiAFQSFqNgIAIANBgAFqQQs2AgAgA0EAOgB4DAQLIAZBIEkNBCADQbwBakEMaiACQQhqKQAANwIAIANBvAFqQRRqIAJBEGopAAA3AgAgA0G8AWpBHGogAkEYaikAADcCACADIAIpAAA3AsABIANB+ABqQQxqIAMpArwBNwIAIANB+ABqQRRqIANBvAFqQQhqKQIANwIAIANB+ABqQRxqIANBvAFqQRBqKQIANwIAIANBnAFqIANBvAFqQRhqKQIANwIAIANBpAFqIANBvAFqQSBqKAIANgIAIANBtAFqIARBX2o2AgAgA0GwAWogBUEhajYCACADQfgAakEIakEMNgIAIANBADoAeAwDCyAGQSBJDQMgA0G0AWogBEFfajYCACADQbABaiAFQSFqNgIAIANBgAFqQQ02AgAgA0EAOgB4DAILIANBgQI7AXgMBwsgBkEgSQ0BIANBtAFqIARBX2o2AgAgA0GwAWogBUEhajYCACADQYABakEONgIAIANBADoAeAsgA0HAAGpBLmogA0GoAWopAwAiCDcBACADQcAAakEmaiADQaABaiICKQMAIgk3AQAgA0HAAGpBHmogA0GYAWoiBikDACIKNwEAIANBwABqQRZqIANBkAFqIgcpAwAiCzcBACADQcAAakEOaiADQYgBaiIMKQMAIg03AQAgAyADQYABaiIOKQMAIg83AUYgA0G0AWooAgAhECACIAg3AwAgBiAJNwMAIAcgCjcDACAMIAs3AwAgDiANNwMAIAMgDzcDeEEBIQEgEA0FIANBCmpBLmogAikDADcBACADQQpqQSZqIAYpAwA3AQAgA0EKakEeaiAHKQMANwEAIANBCmpBFmogDCkDADcBACADQQpqQQ5qIA4pAwA3AQAgAyADKQN4NwEQQQAhAQwFC0EBIQEgA0EBOwF4DAQLIAUgBEEBEIqAgIAAIAEQj4CAgAAACyAEEI+AgIAAAAsgA0EiNgJAIANB+ABqQQRqIANBwABqQQRqLwEAOwEAIANBIjYCeEEiEI+AgIAAAAsgAygBehCPgICAAAALIAUgBCAEQX9zQR92EIqAgIAAIANB+ABqQS5qIgUgA0EKakEuaikBADcBACADQfgAakEoaiADQQpqQShqKQEANwMAIANB+ABqQSBqIANBCmpBIGopAQA3AwAgA0H4AGpBGGogA0EKakEYaikBADcDACADQfgAakEQaiADQQpqQRBqKQEANwMAIANB+ABqQQhqIANBCmpBCGopAQA3AwAgAyADKQEKNwN4IAFFDQELQQIQj4CAgAAACyAAIAMpAX43AAAgAEEoaiAFKQEANwAAIABBIGogA0GeAWopAQA3AAAgAEEYaiADQZYBaikBADcAACAAQRBqIANBjgFqKQEANwAAIABBCGogA0GGAWopAQA3AAAgA0HgAWokgICAgAALIwACQCAALQAARQ0AIABBBGoQjYCAgAAgAEEUahCNgICAAAsLCgAgABCVgICAAAv/AgECfyAAQQh2IQFBASECAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABB/wFxDi0sAAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIjJCUmJygpKissC0ECDwtBAw8LQQQPC0EFDwtBBg8LQQcPC0EIDwtBCQ8LQQoPC0ELDwtBDA8LQQ0PC0EODwtBDw8LQRAPC0ERDwtBEg8LQRMPC0EUDwtBFQ8LQRYPC0EXDwtBGA8LQRkPC0EaDwtBGw8LQRwPC0EdDwtBHg8LQR8PC0EgDwtBIQ8LQSIPC0EjDwtBJA8LQSUPC0EmDwtBJw8LQSgPCyABQf8BcUGA+ANyDwsgAUH/AXFBgPoDcg8LIAFB/wFxQYD8A3IPCyABQf8BcUGA/gNyDwsgAEEQdkGAgARyIQILIAIL0AEBA38CQAJAAkACQAJAAkACQAJAAkAgAkUNAEEBIQQgAUEASA0BIAMoAghFDQMgAygCBCIFDQIgAQ0EIAIhAwwFCyAAIAE2AgRBASEEC0EAIQEMBgsgAygCACEGIAEgAhCGgICAACIDRQ0EIAMgBiAFEMqAgIAAGiAGIAUgAhCKgICAAAwDCyABDQAgAiEDDAELIAEgAhCGgICAACEDCyADRQ0BCyAAIAM2AgRBACEEDAELIAAgATYCBCACIQELIAAgBDYCACAAQQhqIAE2AgALiQICBX8BfiOAgICAAEEgayICJICAgIAAAkACQCABQQFqIgMgAUkNAEEAIQFBACAAKAIEIgRBAXQiBSADIAUgA0sbIgNBBCADQQRLGyIGrUIofiIHpyIDQf3///8HSUECdCAHQiCIpxshBQJAIARFDQAgAiAAKAIANgIQIAIgBK1CKH4iB6ciATYCFEEAIAFB/f///wdJQQJ0IAdCIIinGyEBCyACIAE2AhggAiADIAUgAkEQahCWgICAAAJAIAIoAgANACACKAIEIQEgACAGNgIEIAAgATYCAAwCCyACQQhqKAIAIgBBgYCAgHhGDQEgAEUNAAAACxCQgICAAAALIAJBIGokgICAgAAL4QEBAn8jgICAgABBIGsiAySAgICAAAJAAkAgASACaiICIAFJDQAgAEEEaigCACIBQQF0IgQgAiAEIAJLGyICQQggAkEISxsiAkF/c0EfdiEEAkACQCABDQBBACEBDAELIAMgACgCADYCECADIAE2AhQgAUF/c0EfdiEBCyADIAE2AhggAyACIAQgA0EQahCWgICAAAJAIAMoAgANACAAIAMoAgQ2AgAgAEEEaiACNgIADAILIANBCGooAgAiAEGBgICAeEYNASAARQ0AAAALEJCAgIAAAAsgA0EgaiSAgICAAAuEWwIUfwd+I4CAgIAAQaAFayIAJICAgIAAIABBoANqQYCAwIAAQREQkoCAgAACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAAoAqADQQFHDQAgAEHAAGpBCGogAEGgA2pBEGoiASkDADcDACAAQcAAakEQaiAAQaADakEYaiICKQMANwMAIABBwABqQRhqIABBwANqIgMpAwA3AwAgACAAQaADakEI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6ANqIA4gA2o2AgAgAEEAOgCgAyAAQdgCakE+aiIDIA8pAwA3AQAgAEHYAmpBNmoiBCALKQMANwEAIABB2AJqQS5qIg4gCSkDADcBACAAQdgCakEmaiIPIAopAwA3AQAgAEHYAmpBHmoiESAMKQMANwEAIABB2AJqQRZqIhIgBikDADcBACAAQdgCakEOaiITIA0pAwA3AQAgACAHKQMANwHeAiALIAMpAQA3AwAgCSAEKQEANwMAIAogDikBADcDACAMIA8pAQA3AwAgBiARKQEANwMAIA0gEikBADcDACAHIBMpAQA3AwAgACAAKQHeAjcDoANBASEEIBANBSAAQZACakE+aiALKQMANwEAIABBkAJqQTZqIAkpAwA3AQAgAEGQAmpBLmogCikDADcBACAAQZACakEmaiAMKQMANwEAIABBkAJqQR5qIAYpAwA3AQAgAEGQAmpBFmogDSkDADcBACAAQZACakEOaiAHKQMANwEAIAAgACkDoAM3AZYCQQAhBAwFC0ECEI+AgIAAAAsgAhCPgICAAAALIABBIjYC2AIgAEGgA2pBBGogAEHYAmpBBGovAQA7AQAgAEEiNgKgA0EiEI+AgIAAAAsgACgBogMQj4CAgAAACyAAQYECOwGgAwsgAiABIAFBf3NBH3YQioCAgAAgAEGgA2ogAEGQAmpBxgAQyoCAgAAaIAQNACAAQZADaiAAQd4DaikAADcDACAAQYgDaiAAQdYDaikAADcDACAAQYADaiAAQc4DaikAADcDACAAQdgCakEgaiAAQcYDaikAADcDACAAQfACaiAAQb4DaikAADcDACAAQegCaiAAQbYDaikAADcDACAAQdgCakEIaiAAQa4DaikAADcDACAAIAApAKYDNwPYAkEgQQgQhoCAgAAiCUUNBkEAIQFCACEUQgAhFUIAIRZCACEXAkACQAJAAkACQAJAAkADQCAFIAFGDQEgCCABai0AAEFQaiICQf8BcUEJSw0CIABBMGogFEIAQgpCABDGgICAACAAQSBqIBVCAEIKQgAQxoCAgAAgAEEQaiAWQgBCCkIAEMaAgIAAIAAgF0IAQgpCABDGgICAACAAQQhqKQMAIABBEGpBCGopAwAgAEEgakEIaikDACAAKQMgIhYgAEEwakEIaikDAHwiFSAWVK18IhcgACkDEHwiFiAXVK18IhQgACkDAHwiFyAUVK18QgBSDQIgACkDMCIYIAKtQv8Bg3wiFCAYVCIEIBVCAXwiGCAVVHEiAiAWIAKtfCIZIBZUcSIDIBcgA618IhogF1RxDQIgGiAXIAMbIRcgGSAWIAIbIRYgGCAVIAQbIRUgAUEBaiEBDAALCyAJIBc3AxggCSAWNwMQIAkgFTcDCCAJIBQ3AwAgAEHQBGpBGGogAEHAAGpBGGopAwA3AwAgAEHQBGpBEGogAEHAAGpBEGopAwA3AwAgAEHQBGpBCGogAEHAAGpBCGopAwA3AwAgACAAKQNANwPQBCAAQQA2AogCIABCBDcDgAIgAEH4AWotAAAhCyAAQdABakEIaikDACEVIAAoAtABIgNBAnRBsInAgABqKAIAIgJBARCGgICAACIBRQ0MIABB0AFqQRBqIQQgAEEANgKoAyAAIAI2AqQDIAAgATYCoAMgASADOgAAIABBATYCqAMCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCADDg8AAQIDBAUGBwgJCgoLCgoAC0EBIQMCQCACQX9qQR9LDQAgAEGgA2pBAUEgEImAgIAAIAAoAqADIQEgACgCqAMhAwsgASADaiIBIBU3AAAgASAEKQAANwAIIAFBEGogBEEIaikAADcAACABQRhqIARBEGopAAA3AAAgA0EgaiEBDAsLQQEhAwJAIAJBf2pBH0sNACAAQaADakEBQSAQiYCAgAAgACgCoAMhASAAKAKoAyEDCyABIANqIgEgFTcAACABIAQpAAA3AAggAUEQaiAEQQhqKQAANwAAIAFBGGogBEEQaikAADcAACADQSBqIQEMCgtBASEKAkAgAkF/akEfSw0AIABBoANqQQFBIBCJgICAACAAKAKgAyEBIAAoAqQDIQIgACgCqAMhCgsgASAKaiIDIAQpAAA3AAggAyAVNwAAIANBEGogBEEIaikAADcAACADQRhqIARBEGopAAA3AAAgACAKQSBqIgM2AqgDAkAgAyACRw0AIABBoANqIAIQm4CAgAAgACgCoAMhASAAKAKoAyEDCyABIANqIAs6AAAgA0EBaiEBDAkLQQEhAwJAIAJBf2pBH0sNACAAQaADakEBQSAQiYCAgAAgACgCoAMhASAAKAKoAyEDCyABIANqIgEgFTcAACABIAQpAAA3AAggAUEQaiAEQQhqKQAANwAAIAFBGGogBEEQaikAADcAACADQSBqIQEMCAtBASEDAkAgAkF/akEfSw0AIABBoANqQQFBIBCJgICAACAAKAKgAyEBIAAoAqgDIQMLIAEgA2oiASAVNwAAIAEgBCkAADcACCABQRBqIARBCGopAAA3AAAgAUEYaiAEQRBqKQAANwAAIANBIGohAQwHC0EBIQMCQCACQX9qQQdLDQAgAEGgA2pBAUEIEImAgIAAIAAoAqADIQEgACgCqAMhAwsgASADaiAVNwAAIANBCGohAQwGC0EBIQMCQCACQX9qQR9LDQAgAEGgA2pBAUEgEImAgIAAIAAoAqADIQEgACgCqAMhAwsgASADaiIBIBU3AAAgASAEKQAANwAIIAFBEGogBEEIaikAADcAACABQRhqIARBEGopAAA3AAAgA0EgaiEBDAULQQEhAwJAIAJBf2pBH0sNACAAQaADakEBQSAQiYCAgAAgACgCoAMhASAAKAKoAyEDCyABIANqIgEgFTcAACABIAQpAAA3AAggAUEQaiAEQQhqKQAANwAAIAFBGGogBEEQaikAADcAACADQSBqIQEMBAtBASEDAkAgAkF/akEfSw0AIABBoANqQQFBIBCJgICAACAAKAKgAyEBIAAoAqgDIQMLIAEgA2oiASAVNwAAIAEgBCkAADcACCABQRBqIARBCGopAAA3AAAgAUEYaiAEQRBqKQAANwAAIANBIGohAQwDC0EBIQMCQCACQX9qQR9LDQAgAEGgA2pBAUEgEImAgIAAIAAoAqADIQEgACgCqAMhAwsgASADaiIBIBU3AAAgASAEKQAANwAIIAFBEGogBEEIaikAADcAACABQRhqIARBEGopAAA3AAAgA0EgaiEBDAILQQEhAwJAIAJBf2pBH0sNACAAQaADakEBQSAQiYCAgAAgACgCoAMhASAAKAKoAyEDCyABIANqIgFCADcAACABQRhqQgA3AAAgAUEQakIANwAAIAFBCGpCADcAACADQSBqIQEMAQtBASEDAkAgAkF/akEfSw0AIABBoANqQQFBIBCJgICAACAAKAKgAyEBIAAoAqgDIQMLIAEgA2oiASAVNwAAIAEgBCkAADcACCABQRBqIARBCGopAAA3AAAgAUEYaiAEQRBqKQAANwAAIANBIGohAQsgAEGgBGpBCGogATYCACAAIAApA6ADIhU3A6AE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lAQgDWsgACgCmAUiAU8NACAAQZAEaiANIAEQmICAgAAgACgCmAQhDQsgACgCkAQgDWogAyABEMqAgIAAGiAAIA0gAWo2ApgEAkAgAkEBSA0AIAMgAkEBEIqAgIAACyAJQSBBCBCKgICAACAAQaAEakEIaiIBIABBkARqQQhqKAIANgIAIAAgACkDkAQiFTcBogMgACAVNwGSAiAAIBU3A6AEQRBBBBCGgICAACIDRQ0CIANBBzYCACAAQZACakEIaiAAKQOgBDcDACAAQZACakEQaiABKAIANgIAIAAgACkCoAM3A5ACQQlBARCGgICAACICRQ0CIAJBCGpBAC0A7IDAgAA6AAAgAkEAKQDkgMCAADcAAAJAIAYgACgChAJHDQAgAEGAAmogBhCXgICAACAAKAKIAiEGCyAAKAKAAiAGQShsaiIBQQ86AAwgAUKJgICAkAE3AgQgASACNgIAIAFBD2pBADoAACABQQ1qQQA7AAAgAUEQaiADNgAAIAFBFGogACkDkAI3AAAgAUEcaiAAQZACakEIaiICKQMANwAAIAFBJGogAEGQAmpBEGoiASgCADYAACAAQaADakEIaiAGQQFqNgIAIAAgACkDgAI3A6ADIABB0ARqQcyAwIAAQQcgAEGgA2oQhYCAgAAgAEGQAmpBGGogAEGIAWpBGGopAwA3AwAgASAAQYgBakEQaikDADcDACACIABBiAFqQQhqKQMANwMAIAAgACkDiAE3A5ACIABBADYCmAQgAEIENwOQBEEgQQEQhoCAgAAiAUUNAiABIAApA0A3AAAgAUEYaiAAQcAAakEYaikDADcAACABQRBqIABBwABqQRBqKQMANwAAIAFBCGogAEHAAGpBCGopAwA3AABBBUEBEIaAgIAAIgNFDQIgA0EEakEALQD6gMCAADoAACADQQAoAPaAwIAANgAAIABBkARqQQAQl4CAgAAgACgCkAQiDCAAKAKYBCIEQShsaiICQpCAgICABDcCDCACQoWAgIDQADcCBCACIAM2AgAgAkEgakKggICAgAQ3AgAgAkEcaiABNgIAIAAgBEEBaiICNgKYBCAAQaADaiAIIAUQh4CAgAACQCAFQQFIDQAgCCAFQQEQioCAgAALAkACQAJAIAAtAKADDQAgAEGQBWpBCGogAEGsA2ooAgAiATYCACAAIAApAqQDIhU3A5AFIABBtANqIAE2AgAgACAVNwKsAyAAQdAEakEIaiAAQaADakEIaikCADcDACAAQdAEakEQaiAAQaADakEQaikCADcDACAAIAApAqADNwPQBEEIQQEQhoCAgAAiA0UNBSADQvTeravm7de05AA3AAACQCACIAAoApQERw0AIABBkARqIAIQl4CAgAAgACgCkAQhDCAAKAKYBCECCyAMIAJBKGxqIgFBCjYCDCABQoiAgICAATcCBCABIAM2AgAgAUEQaiAAKQPQBDcAACABQRhqIABB0ARqQQhqKQMANwAAIAFBIGogAEHQBGpBEGopAwA3AAAgACACQQFqIgo2ApgEIABBoANqQThqIABB2AJqQThqKQMANwMAIABBoANqQTBqIABB2AJqQTBqKQMANwMAIABBoANqQShqIABB2AJqQShqKQMANwMAIABBoANqQSBqIABB2AJqQSBqKQMANwMAIABBoANqQRhqIABB2AJqQRhqKQMANwMAIABBoANqQRBqIABB2AJqQRBqKQMANwMAIABBoANqQQhqIABB2AJqQQhqKQMANwMAIAAgACkD2AI3A6ADAkAgAC0A3wMiAUUNACAAQd8DaiEDDAILAkAgAC0A3gMiAUUNACAAQd4DaiEDDAILAkAgAC0A3QMiAUUNACAAQd0DaiEDDAILAkAgAC0A3AMiAUUNACAAQdwDaiEDDAILAkAgAC0A2wMiAUUNACAAQdsDaiEDDAILAkAgAC0A2gMiAUUNACAAQdoDaiEDDAILAkAgAC0A2QMiAUUNACAAQdkDaiEDDAILAkAgAC0A2AMiAUUNACAAQdgDaiEDDAILAkAgAC0A1wMiAUUNACAAQdcDaiEDDAILAkAgAC0A1gMiAUUNACAAQdYDaiEDDAILAkAgAC0A1QMiAUUNACAAQdUDaiEDDAILAkAgAC0A1AMiAUUNACAAQdQDaiEDDAILAkAgAC0A0wMiAUUNACAAQdMDaiEDDAILAkAgAC0A0gMiAUUNACAAQdIDaiEDDAILAkAgAC0A0QMiAUUNACAAQdEDaiEDDAILAkAgAC0A0AMiAUUNACAAQdADaiEDDAILAkAgAC0AzwMiAUUNACAAQc8DaiEDDAILAkAgAC0AzgMiAUUNACAAQc4DaiEDDAILAkAgAC0AzQMiAUUNACAAQc0DaiEDDAILAkAgAC0AzAMiAUUNACAAQcwDaiEDDAILAkAgAC0AywMiAUUNACAAQcsDaiEDDAILAkAgAC0AygMiAUUNACAAQcoDaiEDDAILAkAgAC0AyQMiAUUNACAAQckDaiEDDAILAkAgAC0AyAMiAUUNACAAQcgDaiEDDAILAkAgAC0AxwMiAUUNACAAQccDaiEDDAILAkAgAC0AxgMiAUUNACAAQcYDaiEDDAILAkAgAC0AxQMiAUUNACAAQcUDaiEDDAILAkAgAC0AxAMiAUUNACAAQcQDaiEDDAILAkAgAC0AwwMiAUUNACAAQcMDaiEDDAILAkAgAC0AwgMiAUUNACAAQcIDaiEDDAILAkAgAC0AwQMiAUUNACAAQcEDaiEDDAILAkAgAC0AwAMiAUUNACAAQcADaiEDDAILAkAgAC0AvwMiAUUNACAAQb8DaiEDDAILAkAgAC0AvgMiAUUNACAAQb4DaiEDDAILAkAgAC0AvQMiAUUNACAAQb0DaiEDDAILAkAgAC0AvAMiAUUNACAAQbwDaiEDDAILAkAgAC0AuwMiAUUNACAAQbsDaiEDDAILAkAgAC0AugMiAUUNACAAQboDaiEDDAILAkAgAC0AuQMiAUUNACAAQbkDaiEDDAILAkAgAC0AuAMiAUUNACAAQbgDaiEDDAILAkAgAC0AtwMiAUUNACAAQbcDaiEDDAILAkAgAC0AtgMiAUUNACAAQbYDaiEDDAILAkAgAC0AtQMiAUUNACAAQbUDaiEDDAILAkAgAC0AtAMiAUUNACAAQbQDaiEDDAILAkAgAC0AswMiAUUNACAAQbMDaiEDDAILAkAgAC0AsgMiAUUNACAAQbIDaiEDDAILAkAgAC0AsQMiAUUNACAAQbEDaiEDDAILAkAgAC0AsAMiAUUNACAAQbADaiEDDAILAkAgAC0ArwMiAUUNACAAQa8DaiEDDAILAkAgAC0ArgMiAUUNACAAQa4DaiEDDAILAkAgAC0ArQMiAUUNACAAQa0DaiEDDAILAkAgAC0ArAMiAUUNACAAQawDaiEDDAILAkAgAC0AqwMiAUUNACAAQasDaiEDDAILAkAgAC0AqgMiAUUNACAAQaoDaiEDDAILAkAgAC0AqQMiAUUNACAAQakDaiEDDAILAkAgAC0AqAMiAUUNACAAQagDaiEDDAILAkAgAC0ApwMiAUUNACAAQaADakEHciEDDAILAkAgAC0ApgMiAUUNACAAQaADakEGciEDDAILAkAgAC0ApQMiAUUNACAAQaADakEFciEDDAILAkAgAC0ApAMiAUUNACAAQaADakEEciEDDAILAkAgAC0AowMiAUUNACAAQaADakEDciEDDAILAkAgAC0AogMiAUUNACAAQaADakECciEDDAILAkAgAC0AoQMiAUUNACAAQaADakEBciEDDAILIABBoANqIQMgAC0AoAMiAQ0BQQAhASAAQQA2AtgEIABCATcD0ARBACECDAILIABBoANqQdSAwIAAEJyAgIAAAAsgAEHsicCAADYCkAUgAEEAKAL0icCAADYCoAQCQAJAQQJBASAAQaAEaiAAQZAFakHoiMCAABCdgICAACIFRQ0AQQAgACgCoAQ2AvSJwIAADAELIAAgACgCkAUiBCgCADYC0AQCQAJAQYAQQQQgAEHQBGpBgInAgABBgInAgAAQnYCAgAAiAkUNACAEIAAoAtAENgIADAELAkACQEEBQAAiAkF/Rw0AIAQgACgC0AQ2AgAMAQsgAkEQdCICIAAoAtAENgIIIAJBADYCBCACIAJBgoAEajYCACAAIAI2AtAEQYAQQQQgAEHQBGpBgInAgABBgInAgAAQnYCAgAAhAiAEIAAoAtAENgIAIAINAQtBACAAKAKgBDYC9InAgAAAAAsgAkEANgIEIAIgACgCoAQ2AgggAiACQYDAAGpBAnI2AgAgACACNgKgBEECQQEgAEGgBGogAEGQBWpB6IjAgAAQnYCAgAAhBUEAIAAoAqAENgL0icCAACAFRQ0ECyAFIAE6AAACQCAAQaADaiADRw0AIABCiICAgBA3AtQEIAAgBTYC0ARBASEBQQEhAwwDC0EIIQJBASEBA0AgA0F/aiIDLQAAIQQCQCABIAJHDQAgAkEBaiIIIAJJDQMgAkEBdCILIAggCyAISxsiCEEIIAhBCEsbIghBf3NBH3YhCwJAAkAgAg0AQQAhCQwBCyAAIAU2AtAEIAAgAjYC1AQgAkF/c0EfdiEJCyAAIAk2AtgEIABBoARqIAggCyAAQdAEahCegICAAAJAIAAoAqAEDQAgACgCpAQhBSAIIQIMAQsgACgCqAQiCEGBgICAeEYNACAIDQUMAwsgBSABaiAEOgAAIAFBAWohASADIABBoANqRw0ACyAAIAE2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2oTAgABBASABQRxqKAIAKAIMEYGAgIAAACEBCyABQf8BcUEARyEBDAULIAIgAEEEajYCACACIABBCGo2AgQgASgCGEHAgsCAAEEDIAFBHGooAgAoAgwRgYCAgAAAIQAgAkEAOgANIAIgADoADCACIAE2AgggAkEIakGUgcCAAEEDIAJBhIHAgAAQooCAgABBl4HAgABBBSACQQRqQYSBwIAAEKKAgIAAGiACLQAMIQECQCACLQANRQ0AIAFB/wFxIQBBASEBIAANAAJAIAIoAggiAS0AAEEEcQ0AIAEoAhhB24TAgABBAiABQRxqKAIAKAIMEYGAgIAAACEBDAELIAEoAhhB2oTAgABBASABQRxqKAIAKAIMEYGAgIAAACEBCyABQf8BcUEARyEBDAQLIAIgAEEEajYCCCABQaiCwIAAQQYgAkEIakGwgsCAABChgICAACEBDAMLIAIgAEEEajYCCCABQZCCwIAAQQYgAkEIakGYgsCAABChgICAACEBDAILIAIgAEEEajYCCCABQfeBwIAAQQYgAkEIakGAgsCAABChgICAACEBDAELIAEoAhhB9IHAgABBAyABQRxqKAIAKAIMEYGAgIAAACEBCyACQRBqJICAgIAAIAEL4QIBBX8jgICAgABBwABrIgUkgICAgABBASEGAkAgACgCGCIHIAEgAiAAQRxqKAIAIggoAgwiCRGBgICAAAANAAJAAkAgACgCACIBQQRxDQBBASEGIAdB34TAgABBASAJEYGAgIAAAA0CIAMgACAEKAIMEYCAgIAAAEUNAQwCCyAHQd2EwIAAQQIgCRGBgICAAAANAUEBIQYgBUEBOgAXIAVBNGpBtITAgAA2AgAgBSAINgIMIAUgBzYCCCAFQRBqIAVBF2o2AgAgBSABNgIYIAUgAC0AIDoAOCAFIAAoAgQ2AhwgBSAAKQIQNwMoIAUgACkCCDcDICAFIAVBCGo2AjAgAyAFQRhqIAQoAgwRgICAgAAADQEgBSgCMEHThMCAAEECIAUoAjQoAgwRgYCAgAAADQELIAAoAhhBr4TAgABBASAAKAIcKAIMEYGAgIAAACEGCyAFQcAAaiSAgICAACAGC+sDAgV/An4jgICAgABBwABrIgUkgICAgABBASEGAkAgAC0ABA0AIAAtAAUhBwJAIAAoAgAiCCgCACIJQQRxDQBBASEGIAgoAhhB1YTAgABB14TAgAAgB0H/AXEiBxtBAkEDIAcbIAhBHGooAgAoAgwRgYCAgAAADQFBASEGIAgoAhggASACIAgoAhwoAgwRgYCAgAAADQFBASEGIAgoAhhBsITAgABBAiAIKAIcKAIMEYGAgIAAAA0BIAMgCCAEKAIMEYCAgIAAACEGDAELAkAgB0H/AXENAEEBIQYgCCgCGEHQhMCAAEEDIAhBHGooAgAoAgwRgYCAgAAADQEgCCgCACEJC0EBIQYgBUEBOgAXIAVBNGpBtITAgAA2AgAgBUEQaiAFQRdqNgIAIAUgCTYCGCAFIAgpAhg3AwggCCkCCCEKIAgpAhAhCyAFIAgtACA6ADggBSAIKAIENgIcIAUgCzcDKCAFIAo3AyAgBSAFQQhqNgIwIAVBCGogASACELaAgIAADQAgBUEIakGwhMCAAEECELaAgIAADQAgAyAFQRhqIAQoAgwRgICAgAAADQAgBSgCMEHThMCAAEECIAUoAjQoAgwRgYCAgAAAIQYLIABBAToABSAAIAY6AAQgBUHAAGokgICAgAAgAAvqAQEDfyOAgICAAEEQayICJICAgIAAIAAoAgAhAEEBIQMgASgCGEHhhMCAAEEBIAFBHGooAgAoAgwRgYCAgAAAIQQgAkEAOgAFIAIgBDoABCACIAE2AgAgAiAANgIMIAIgAkEMakGEgcCAABCkgICAACEBIAIgAEEEajYCDCABIAJBDGpBhIHAgAAQpICAgAAhASACIABBCGo2AgwgASACQQxqQYSBwIAAEKSAgIAAIQECQCACLQAEDQAgASgCACIBKAIYQeKEwIAAQQEgASgCHCgCDBGBgICAAAAhAwsgAkEQaiSAgICAACADC4YDAgR/An4jgICAgABBwABrIgMkgICAgABBASEEAkAgAC0ABA0AIAAtAAUhBAJAAkACQAJAIAAoAgAiBSgCACIGQQRxDQAgBEH/AXENAQwDCyAEQf8BcQ0BQQEhBCAFKAIYQeCEwIAAQQEgBUEcaigCACgCDBGBgICAAAANAyAFKAIAIQYMAQtBASEEIAUoAhhB1YTAgABBAiAFQRxqKAIAKAIMEYGAgIAAAEUNAQwCC0EBIQQgA0EBOgAXIANBNGpBtITAgAA2AgAgA0EQaiADQRdqNgIAIAMgBjYCGCADIAUpAhg3AwggBSkCCCEHIAUpAhAhCCADIAUtACA6ADggAyAFKAIENgIcIAMgCDcDKCADIAc3AyAgAyADQQhqNgIwIAEgA0EYaiACKAIMEYCAgIAAAA0BIAMoAjBB04TAgABBAiADKAI0KAIMEYGAgIAAACEEDAELIAEgBSACKAIMEYCAgIAAACEECyAAQQE6AAUgACAEOgAEIANBwABqJICAgIAAIAALywEBA38jgICAgABBEGsiAiSAgICAACAAKAIAIQBBASEDIAEoAhhB4YTAgABBASABQRxqKAIAKAIMEYGAgIAAACEEIAJBADoABSACIAQ6AAQgAiABNgIAIAIgADYCDCACIAJBDGpBhIHAgAAQpICAgAAhASACIABBBGo2AgwgASACQQxqQYSBwIAAEKSAgIAAIQECQCACLQAEDQAgASgCACIBKAIYQeKEwIAAQQEgASgCHCgCDBGBgICAAAAhAwsgAkEQaiSAgICAACADCwIAC6wBAQN/I4CAgIAAQRBrIgIkgICAgAAgACgCACEDQQEhACABKAIYQeGEwIAAQQEgAUEcaigCACgCDBGBgICAAAAhBCACQQA6AAUgAiAEOgAEIAIgATYCACACIAM2AgwgAiACQQxqQYSBwIAAEKSAgIAAIQECQCACLQAEDQAgASgCACIBKAIYQeKEwIAAQQEgASgCHCgCDBGBgICAAAAhAAsgAkEQaiSAgICAACAAC+ACAQN/I4CAgIAAQYABayICJICAgIAAIAAoAgAhAAJAAkACQAJAAkAgASgCACIDQRBxDQAgA0EgcQ0BIAA1AgAgARCpgICAACEADAILIAAoAgAhAEEAIQMDQCACIANqQf8AakEwQdcAIABBD3EiBEEKSRsgBGo6AAAgA0F/aiEDIABBD0shBCAAQQR2IQAgBA0ACyADQYABaiIAQYEBTw0CIAFB44TAgABBAiACIANqQYABakEAIANrEKqAgIAAIQAMAQsgACgCACEAQQAhAwNAIAIgA2pB/wBqQTBBNyAAQQ9xIgRBCkkbIARqOgAAIANBf2ohAyAAQQ9LIQQgAEEEdiEAIAQNAAsgA0GAAWoiAEGBAU8NAiABQeOEwIAAQQIgAiADakGAAWpBACADaxCqgICAACEACyACQYABaiSAgICAACAADwsgAEGAARCrgICAAAALIABBgAEQq4CAgAAAC+cCAwJ/AX4DfyOAgICAAEEwayICJICAgIAAQSchAwJAAkAgAEKQzgBaDQAgACEEDAELQSchAwNAIAJBCWogA2oiBUF8aiAAQpDOAIAiBELwsX9+IAB8pyIGQf//A3FB5ABuIgdBAXRB5YTAgABqLwAAOwAAIAVBfmogB0Gcf2wgBmpB//8DcUEBdEHlhMCAAGovAAA7AAAgA0F8aiEDIABC/8HXL1YhBSAEIQAgBQ0ACwsCQCAEpyIFQeMATQ0AIAJBCWogA0F+aiIDaiAEpyIGQf//A3FB5ABuIgVBnH9sIAZqQf//A3FBAXRB5YTAgABqLwAAOwAACwJAAkAgBUEKSQ0AIAJBCWogA0F+aiIDaiAFQQF0QeWEwIAAai8AADsAAAwBCyACQQlqIANBf2oiA2ogBUEwajoAAAsgAUGAicCAAEEAIAJBCWogA2pBJyADaxCqgICAACEDIAJBMGokgICAgAAgAwurBQEHfyAAKAIAIgVBAXEiBiAEaiEHAkACQCAFQQRxDQBBACEBDAELAkACQCACDQBBACEIDAELAkAgAkEDcSIJDQAMAQtBACEIIAEhCgNAIAggCiwAAEG/f0pqIQggCkEBaiEKIAlBf2oiCQ0ACwsgCCAHaiEHC0ErQYCAxAAgBhshBgJAAkAgACgCCA0AQQEhCiAAIAYgASACELKAgIAADQEgACgCGCADIAQgAEEcaigCACgCDBGBgICAAAAPCwJAAkACQAJAAkAgAEEMaigCACIIIAdNDQAgBUEIcQ0EQQAhCiAIIAdrIgkhBUEBIAAtACAiCCAIQQNGG0EDcQ4DAwECAwtBASEKIAAgBiABIAIQsoCAgAANBCAAKAIYIAMgBCAAQRxqKAIAKAIMEYGAgIAAAA8LQQAhBSAJIQoMAQsgCUEBdiEKIAlBAWpBAXYhBQsgCkEBaiEKIABBHGooAgAhCSAAKAIEIQggACgCGCEHAkADQCAKQX9qIgpFDQEgByAIIAkoAhARgICAgAAARQ0AC0EBDwtBASEKIAhBgIDEAEYNASAAIAYgASACELKAgIAADQEgByADIAQgCSgCDBGBgICAAAANAUEAIQoCQANAAkAgBSAKRw0AIAUhCgwCCyAKQQFqIQogByAIIAkoAhARgICAgAAARQ0ACyAKQX9qIQoLIAogBUkhCgwBCyAAKAIEIQUgAEEwNgIEIAAtACAhC0EBIQogAEEBOgAgIAAgBiABIAIQsoCAgAANACAIIAdrQQFqIQogAEEcaigCACEIIAAoAhghCQJAA0AgCkF/aiIKRQ0BIAlBMCAIKAIQEYCAgIAAAEUNAAtBAQ8LQQEhCiAJIAMgBCAIKAIMEYGAgIAAAA0AIAAgCzoAICAAIAU2AgRBAA8LIAoLDQAgACABELSAgIAAAAsSACAAKAIAKAIAIAEQoICAgAALDwAgACgCACABEKCAgIAAC38BAX8jgICAgABBEGsiAiSAgICAAAJAAkAgAC0AAA0AIAIgAEEBajYCCCABQeSDwIAAQQ0gAkEIakH0g8CAABChgICAACEADAELIAIgAEEEajYCDCABQc2DwIAAQQQgAkEMakHUg8CAABChgICAACEACyACQRBqJICAgIAAIAALogIBAX8jgICAgABBEGsiAiSAgICAACACIAAoAgAiADYCACACIABBEGo2AgQgASgCGEGhg8CAAEEOIAFBHGooAgAoAgwRgYCAgAAAIQAgAkEAOgANIAIgADoADCACIAE2AgggAkEIakGvg8CAAEEIIAJBuIPAgAAQooCAgABByIPAgABBBSACQQRqQbiDwIAAEKKAgIAAGiACLQAMIQECQCACLQANRQ0AIAFB/wFxIQBBASEBIAANAAJAIAIoAggiAS0AAEEEcQ0AIAEoAhhB24TAgABBAiABQRxqKAIAKAIMEYGAgIAAACEBDAELIAEoAhhB2oTAgABBASABQRxqKAIAKAIMEYGAgIAAACEBCyACQRBqJICAgIAAIAFB/wFxQQBHC+QBAAJAAkACQAJAAkACQCAAKAIALQAADgYAAQIDBAUACyABKAIYQeSBwIAAQRAgAUEcaigCACgCDBGBgICAAAAPCyABKAIYQdqBwIAAQQogAUEcaigCACgCDBGBgICAAAAPCyABKAIYQc2BwIAAQQ0gAUEcaigCACgCDBGBgICAAAAPCyABKAIYQcKBwIAAQQsgAUEcaigCACgCDBGBgICAAAAPCyABKAIYQbKBwIAAQRAgAUEcaigCACgCDBGBgICAAAAPCyABKAIYQZyBwIAAQRYgAUEcaigCACgCDBGBgICAAAALDQAgACgCABoDfwwACwtcAQF/AkACQAJAIAFBgIDEAEYNAEEBIQQgACgCGCABIABBHGooAgAoAhARgICAgAAADQEL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AMCEAAAsAAAAA3ANBekMAADXhAAABwAAAAMwGQbcDAAA14QAAAcAAAAF3gMSAAUDDQAA3oQAAAEAAAADLxoG9gwAAN6EAAABAAAABd4DEgAABTEPAADvhAAABwAAAAN1DwYkDwAA74QAAAcAAAAGbAMSAAUXDwAAUoQAAA0AAAADag8GCg8AAFKEAAANAAAABmwDEgAFagAAAPeEAAAtAAAAA3gFBUsPAAAVhQAABwAAAAMjEwY+DwAAFYUAAAcAAAAGbAMSAAUdDQAAHIUAAAEAAAADIhQGEA0AAByFAAABAAAABd4DEgAAAAAE/////6YCAAAH7QMAAAAAnzZGAACeBAAAASgBBxwMAAD/////EgAAAAIhFQinAAAAOAgAAAInDQVlDwAA/////wcAAAADxxMGWA8AAP////8HAAAABmwDEgAIxAAAAFgIAAADzQkI0w0AAHAIAAADgRoGxg0AAP////8JAAAABTQEEglwDAAA/////wUAAAAFNAQeBmMMAAD/////BQAAAAdABQ0AAAXtDQAA/////wEAAAADgxQG4A0AAP////8BAAAABTQEEgAABdAAAAD/////UQAAAAPXDQUHDgAA/////wEAAAADsxoG+g0AAP////8BAAAABTQEEgAABdwAAAD/////MgAAAAPVDQUhDgAA/////wEAAAADkBoGFA4AAP////8BAAAABTQEEgAABc0PAAD/////DQAAAAPPDwbADwAA/////w0AAAAGwgMSAAjoAAAAiAgAAAPdBQU7DgAA/////wEAAAADgxQGLg4AAP////8BAAAABTQEEgAABTcNAAD/////CwAAAAPGFAYqDQAA/////wsAAAAF3gMSAAAIswAAAKAIAAACJQ0FNgwAAP////8FAAAAA2chBikMAAD/////BQAAAARlBQ0ABXYAAAD/////NQAAAANoCQVRDQAA/////wUAAAADHxgGRA0AAP////8FAAAABd4DEgAFfw8AAP////8HAAAAAyMTBnIPAAD/////BwAAAAZsAxIABWsNAAD/////AQAAAAMiFAZeDQAA/////wEAAAAF3gMSAAAFggAAAP////9RAAAAA3INBYUNAAD/////AQAAAANSGgZ4DQAA/////wEAAAAF3gMSAAAFjgAAAP////8sAAAAA3ANBZ8NAAD/////BwAAAAMwGQaSDQAA/////wcAAAAF3gMSAAW5DQAA/////wEAAAADLxoGrA0AAP////8BAAAABd4DEgAABbMPAAD/////CQAAAAN1DwamDwAA/////wkAAAAGbAMSAAWZDwAA/////w0AAAADag8GjA8AAP////8NAAAABmwDEgAFmgAAAP////8rAAAAA3gFBecPAAD/////BwAAAAMjEwbaDwAA/////wcAAAAGbAMSAAVVDgAA/////wEAAAADIhQGSA4AAP////8BAAAABd4DEgAAAAAEK4UAALUAAAAH7QMAAAAAn7EbAAC9AQAAASgBBfUAAAA2hQAApQAAAAIvCQlQDAAARIUAAAUAAAADAAEcBkMMAABEhQAABQAAAARlBQ0ACQYBAABKhQAAJwAAAAMBAQkFbw4AAEqFAAAFAAAAA+QTBmIOAABKhQAABQAAAAXeAxIABYkOAABnhQAAAQAAAAPnEQZ8DgAAZ4UAAAEAAAAF3gMSAAAJEgEAAH2FAAA3AAAAAwYBCQWjDgAAfYUAAAsAAAAD9RMGlg4AAH2FAAALAAAABd4DEgAFvQ4AAKaFAAABAAAAA/kXBrAOAACmhQAAAQAAAAXeAxIAAAkeAQAAuIUAACMAAAADCgEFBdcOAADThQAAAQAAAAPnEQbKDgAA04UAAAEAAAAF3gMSAAAAAAr/////SgAAAAftAwAAAACfaTIAAIgDAAABKAEK/////w4AAAAH7QMAAAAAn2RJAACPAwAAASgBCv////8+AAAAB+0DAAAAAJ+5DAAAwAMAAAEoAQPAOQAA+1wAAAJXAQT/////uQAAAAftAwAAAACfrxIAAC1kAAABmwEFBQgAAP////+4AAAAApcJCAEQAAC4CAAAAlxHC/QPAADgCAAABmwDEgAAAANzIwAAqF0AAAJXAQT/////3AAAAAftAwAAAACfih8AALFjAAABmwEFWQgAAP/////bAAAAApsJCBsQAAAICQAAAlxHCw4QAAAwCQAABmwDEgAAAAMZSAAAsl4AAAJXAQT/////3AAAAAftAwAAAACfFSIAAGJiAAABmwEFrQgAAP/////bAAAAAp8JCDUQAABYCQAAAlxHCygQAACACQAABmwDEgAAAAO/SAAALV4AAAJXAQT/////3AAAAAftAwAAAACfoSgAAOZhAAABmwEFAQkAAP//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AAAAAAAAAAAA8HwAAPF8AAATfQAAFH0AADZ9AAA3fQAAWX0AAFp9AAAAAAAAAAAAAH19AAClfQAAN34AAEd+AAAAAAAAAAAAAH19AAClfQAAN34AAEd+AAAAAAAAAAAAAH19AACSfQAAl30AAKN9AAAAAAAAAAAAAIR9AACLfQAAl30AAJx9AAAAAAAAAAAAAIR9AACLfQAAl30AAJx9AAAAAAAAAAAAAKZ9AACtfQAAsn0AAAF+AAAAAAAAAAAAAKZ9AACtfQAAsn0AAAF+AAAAAAAAAAAAANZ9AADXfQAA4X0AAON9AADqfQAA9H0AAAAAAAAAAAAAAX4AAAR+AAApfgAANn4AAAAAAAAAAAAAyWcAAM5nAADuZwAA/GcAAAAAAAAAAAAAgmgAAIloAACZaAAA+2gAAAAAAAAAAAAAgmgAAIloAACZaAAA+2gAAAAAAAAAAAAAp2gAALBoAAC+aAAAwWgAAAAAAAAAAAAAp2gAALBoAAC+aAAAwWgAAAAAAAAAAAAA3GoAAOVqAAAeawAAgGsAAAAAAAAAAAAA3GoAAOVqAAAeawAAgGsAAAAAAAAAAAAALGsAADVrAABDawAARmsAAAAAAAAAAAAALGsAADVrAABDawAARmsAAAAAAAAAAAAAmHUAAKV1AACKYAAAjmAAAMhuAAAvcAAAMXAAANxyAACmdQAAAnYAAFtcAABkXAAABHYAAMF4AADdcgAA6nIAAMJ4AADPeAAA0HgAANl4AABIXQAAUV0AANt4AADcewAA3XsAAO57AADvewAAAHwAAAJ8AABHfgAAh2cAAHJpAABJfgAAT38AAFB/AADBfwAAwn8AANN/AADVfwAA4oAAAOOAAABXgQAAYGoAAOZrAAAkZgAAhWcAAAAAAAAAAAAADQAAADsAAABAAAAAagAAAAAAAAAAAAAADQAAADsAAABAAAAAagAAAAAAAAAAAAAAOgAAADsAAABWAAAAXgAAAAAAAAAAAAAAOgAAADsAAABWAAAAXgAAAAAAAAAAAAAA/v////7////+/////v////7////+////AAAAAAAAAAD+/////v////7////+////AAAAAAAAAAD+/////v////7////+////AAAAAAAAAAD+/////v////7////+////AAAAAAAAAAD+/////v////7////+////AAAAAAAAAAD+/////v////7////+/////v////7////+/////v///wAAAAAAAAAA/v////7////+/////v////7////+/////v////7///8AAAAAAAAAAP7////+/////v////7////+/////v////7////+////AAAAAAAAAAD+/////v////7////+/////v////7////+/////v///wAAAAAAAAAA/v////7////+/////v////7////+/////v////7///8AAAAAAAAAAP7////+/////v////7////+/////v////7////+////AAAAAAAAAAD+/////v////7////+/////v////7////+/////v///wAAAAAAAAAA/v////7////+/////v////7////+/////v////7///8AAAAAAAAAAP7////+/////v////7////+/////v////7////+////AAAAAAAAAAD+/////v////7////+/////v////7////+/////v///wAAAAAAAAAA/v////7////+/////v////7////+/////v////7///8AAAAAAAAAAP7////+/////v////7////+/////v////7////+////AAAAAAAAAAD+/////v////7////+/////v////7////+/////v///wAAAAAAAAAA/v////7////+/////v////7////+/////v////7///8AAAAAAAAAAP7////+/////v////7////+/////v///wAAAAAAAAAA/v////7////+/////v////7////+////AAAAAAAAAAD+/////v////7////+/////v////7////+/////v///wAAAAAAAAAA/v////7////+/////v////7////+/////v////7///8AAAAAAAAAAP7////+/////v////7////+/////v///wAAAAAAAAAA/v////7////+/////v////7////+////AAAAAAAAAAD+/////v////7////+/////v////7////+/////v///wAAAAAAAAAA/v////7////+/////v////7////+/////v////7///8AAAAAAAAAAP7////+/////v////7////+/////v///wAAAAAAAAAA/v////7////+/////v////7////+////AAAAAAAAAADtgwAAKYUAAP7////+////K4UAAOCFAAD+/////v////7////+/////v////7////+/////v////7////+/////v////7////+/////v////7////+/////v////7////+/////v////7////+/////v////7////+/////v////7////+/////v////7///8AAAAAAAAAAADqBw0uZGVidWdfYWJicmV2AREBJQ4TBQMOEBcbDrRCGREBEgYAAAI5AQMOAAADLgARARIGQBhuDgMOOgs7BT8ZhwEZAAAEEQElDhMFAw4QFxsOtEIZEQFVFwAABS4Abg4DDjoLOwUgCwAABi4BEQESBkAYbg4DDjoLOwsAAAcdADETVRdYC1kLVwsAAAgdADETEQESBlgLWQtXCwAACR0AMRNVF1gLWQVXCwAACh0AMRMRARIGWAtZBVcLAAALLgBuDgMOOgs7BT8ZIAsAAAwuAREBEgZAGG4OAw46CzsFPxkAAA0dATETEQESBlgLWQVXCwAADh0BMRMRARIGWAtZC1cLAAAPHQExE1UXWAtZBVcLAAAQLgBuDgMOOgs7Cz8ZIAsAABEuABEBEgZAGG4OAw46CzsFAAASLgERARIGQBhuDgMOOgs7Cz8ZAAATHQExE1UXWAtZC1cLAAAULgBuDgMOOgs7CyALAAAVLgERARIGQBgxEwAAFi4AEQESBkAYMRMAABcuABEBEgZAGG4OAw46CzsLAAAYLgARARIGQBhuDgMOOgs7C4cBGQAAGS4AEQESBkAYbg4DDjoLOws/GYcBGQAAGi4Abg4DDjoLOwWHARkgCwAAGy4BEQESBkAYbg4DDjoLOws/GYcBGQAAAAERASUOEwUDDhAXGw60QhkRARIGAAACOQEDDgAAAy4Abg4DDjoLOwU/GSALAAAELgBuDgMOOgs7CyALAAAFLgERARIGQBgDDjoLOwU/GQAABh0BMRNVF1gLWQVXCwAABx0BMRNVF1gLWQtXCwAACB0BMRMRARIGWAtZC1cLAAAJHQAxExEBEgZYC1kFVwsAAAodADETEQESBlgLWQtXCwAACx0AMRNVF1gLWQtXCwAADC4Abg4DDjoLOws/GSALAAANLgBuDgMOOgs7BSALAAAAAREBJQ4TBQMOEBcbDrRCGREBEgYAAAI5AQMOAAADLgARARIGQBgDDjoLOwU/GQAAAAERASUOEwUDDhAXGw60QhkRAVUXAAACOQEDDgAAAy4Abg4DDjoLOwsgCwAABC4BEQESBkAYbg4DDjoLOwU/GQAABR0BMRMRARIGWAtZC1cLAAAGHQAxExEBEgZYC1kFVwsAAAcdADETEQESBlgLWQtXCwAACB0BMRNVF1gLWQtXCwAACR0BMRMRARIGWAtZBVcLAAAKLgARARIGQBhuDgMOOgs7BT8ZAAALHQAxE1UXWAtZBVcLAAAMLgBuDgMOOgs7BSALAAAAAREBJQ4TBQMOEBcbDrRCGREBEgYAAAI5AQMOAAADLgARARIGQBgDDjoLOwU/GQAAAADxPgsuZGVidWdfbGluZU4AAAAEADQAAAABAQH7Dg0AAQEBAQAAAAEAAAFsaWJyYXJ5L2FsbG9jL3NyYwAAcmF3X3ZlYy5ycwABAAAAAAUCbBkAAAOEBAEFBQohAggAAQFVEwAABADzAgAAAQEB+w4NAAEBAQEAAAABAAABbGlicmFyeS9jb3JlL3NyYy9vcHMAbGlicmFyeS9jb3JlL3NyYy9mbXQAbGlicmFyeS9jb3JlL3NyYy9wdHIAbGlicmFyeS9jb3JlL3NyYwBsaWJyYXJ5L2NvcmUvc3JjL3NsaWNlL2l0ZXIAbGlicmFyeS9jb3JlL3NyYy9pdGVyL3RyYWl0cwBsaWJyYXJ5L2NvcmUvc3JjL3N0cgBsaWJyYXJ5L2NvcmUvc3JjL2l0ZXIAbGlicmFyeS9jb3JlL3NyYy9pdGVyL2FkYXB0ZXJzAGxpYnJhcnkvY29yZS9zcmMvbnVtAGxpYnJhcnkvY29yZS9zcmMvbWVtAGxpYnJhcnkvY29yZS9zcmMvc2xpY2UAbGlicmFyeS9jb3JlL3NyYy9jaGFyAABmdW5jdGlvbi5ycwABAABtb2QucnMAAgAAbW9kLnJzAAMAAHBhbmlja2luZy5ycwAEAABudW0ucnMAAgAAaW50cmluc2ljcy5ycwAEAABjb25zdF9wdHIucnMAAwAAbXV0X3B0ci5ycwADAABtYWNyb3MucnMABQAAaXRlcmF0b3IucnMABgAAY291bnQucnMABwAAYWNjdW0ucnMABgAAY21wLnJzAAQAAHJhbmdlLnJzAAgAAG1hcC5ycwAJAABmaWx0ZXIucnMA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gAHWBQ8DDZAGA/N+CIIDjQFKBQ0GCCEFDwJTEQUNkgUPHgYD8366A40BZgUNBksFD8cEAQUKA5AC1gIBAAEBAAUC/////wOaAwEEAgUPCgPyfVgGA/N+dAURBgOAAQg8BQ8DDZAGA/N+CIIDjQFKBQ0GCCEFDwJUEQUNkgUPHgYD8366A40BZgUNBksFD8cEAQUKA5AC1gIBAAEBQgAAAAQAJQAAAAEBAfsODQABAQEBAAAAAQAAAXNyYwAAbWFjcm9zLnJzAAEAAAAABQLhhQAAA68CAQURCiEFDrsCAQABAQD+zAEKLmRlYnVnX3N0cntpbXBsIzl9AHtpbXBsIzQ4fQB7aW1wbCMxOH0Ae2ltcGwjOH0Ae2ltcGwjMjd9AHtpbXBsIzd9AHtpbXBsIzI2fQB7aW1wbCM2fQB7aW1wbCMzNX0Ae2ltcGwjNX0Ae2ltcGwjMTc0fQB7aW1wbCM1NH0Ae2ltcGwjNH0Ae2ltcGwjMTczfQB7aW1wbCMzfQB7aW1wbCMyfQB7aW1wbCMxMX0Ae2ltcGwjMX0Ae2Nsb3N1cmUjMX0Ae2ltcGwjMH0Ae2Nsb3N1cmUjMH0AaXNfcHJldHR5AGVudHJ5AGlzX2NoYXJfYm91bmRhcnkAZmxvb3JfY2hhcl9ib3VuZGFyeQBpc191dGY4X2NoYXJfYm91bmRhcnkAbWVtY3B5AHdyaXRlX3ByZWZpeABpbmRleABjYXBhY2l0eV9vdmVyZmxvdwBkZWJ1Z190dXBsZV9uZXcAZW5jb2RlX3V0ZjhfcmF3AG5leHQAc2xpY2VfZXJyb3JfZmFpbF9ydABzbGljZV9pbmRleF9vcmRlcl9mYWlsX3J0AGdldGNvdW50AGludABwYW5pY19mbXQAcmVzdWx0AFJlc3VsdABtZW1zZXQAYWxpZ25fb2Zmc2V0AGdldABEZWJ1Z1NldABEZWJ1Z1N0cnVjdABzaWduX3BsdXMAdHJhaXRzAGFkYXB0ZXJzAGJ1aWxkZXJzAGNvdW50X2NoYXJzAG9wcwB2YWxpZGF0aW9ucwBjb21waWxlcl9idWlsdGlucwBpbXBscwBzZXRfYnl0ZXMAc2V0X2J5dGVzX2J5dGVzAGNvcHlfZm9yd2FyZF9ieXRlcwBjb3B5X2JhY2t3YXJkX2J5dGVzAHNldF9ieXRlc193b3JkcwBjb3B5X2ZvcndhcmRfbWlzYWxpZ25lZF93b3JkcwBjb3B5X2JhY2t3YXJkX21pc2FsaWduZWRfd29yZHMAY29weV9mb3J3YXJkX2FsaWduZWRfd29yZHMAY29weV9iYWNrd2FyZF9hbGlnbmVkX3dvcmRzAG1ldGhvZHMAaW50cmluc2ljcwB3cml0ZV9zdHIAbXV0X3B0cgBjb25zdF9wdHIAaXRlcmF0b3IASXRlcmF0b3IAbWVtY2hyAEZvcm1hdHRlcgBQYWRBZGFwdGVyAGZpbHRlcgBpdGVyAEl0ZXIARGVidWdJbm5lcgBjaGFyAGltcABtZW1jbXAAYmNtcAB3cmFwAG1hcABydW4AcGF0dGVybgBvcHRpb24AT3B0aW9uAGZ1bmN0aW9uAHN0cmxlbgB6ZXJvX3dpZGVuAHN1bQBudW0AYWNjdW0AbWVtAHplcm9fd2lkZW5fbXVsAHdyYXBwaW5nX211bABNdWwAc2xpY2VfZXJyb3JfZmFpbABzbGljZV9pbmRleF9vcmRlcl9mYWlsAHBhZF9pbnRlZ3JhbABoaQBkZWJ1Z190dXBsZV9maWVsZDFfZmluaXNoAG5leHRfbWF0Y2gAcGFuaWNraW5nAHBhZGRpbmcAUG9zdFBhZGRpbmcAd3JhcHBpbmdfbmVnAGFzX3VzaXplAHRvX3VzaXplAG1lbW1vdmUAUmFuZ2VJbmNsdXNpdmUAdXRmOF9pc19jb250X2J5dGUAdXRmOF9hY2NfY29udF9ieXRlAGNvbnRhaW5zX3plcm9fYnl0ZQB3cml0ZQBXcml0ZQBlbnVtZXJhdGUAYWx0ZXJuYXRlAGNoYXJfY291bnRfZ2VuZXJhbF9jYXNlAG1lbWNocl9nZW5lcmFsX2Nhc2UAY29yZQBEZWJ1Z1R1cGxlAGludG9fc2xpY2VfcmFuZ2UARm5PbmNlAHNsaWNlAGNvcHlfZm9yd2FyZABjb3B5X2JhY2t3YXJkAE9yZABtYXBfZm9sZABmaWVsZAB1bndyYXBfZmFpbGVkAGdldF91bmNoZWNrZWQAZm9yd2FyZF91bmNoZWNrZWQAd3JhcHBpbmdfYWRkAHVuY2hlY2tlZF9hZGQAc2lnbl9hd2FyZV96ZXJvX3BhZABhbGxvYwBwYW5pYwByYXdfdmVjAHNhdHVyYXRpbmdfc3ViAHdyYXBwaW5nX3N1YgBVU0laRV9NQVJLRVIAX1pOMTdjb21waWxlcl9idWlsdGluczNtZW00MF9fbGx2bV9tZW1zZXRfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljXzIxN2gyZjIyMjkyZGIwNTNkY2ZmRQBfWk40Y29yZTVzbGljZTNjbXA4MV8kTFQkaW1wbCR1MjAkY29yZS4uY21wLi5QYXJ0aWFsRXEkTFQkJHU1YiRCJHU1ZCQkR1QkJHUyMCRmb3IkdTIwJCR1NWIkQSR1NWQkJEdUJDJlcTE3aGE0ZTMwNTNjNThiNDIyZWZFAF9aTjRjb3JlNGl0ZXI2dHJhaXRzOGl0ZXJhdG9yOEl0ZXJhdG9yM3N1bTE3aGVhZmRlZDdkYWY5MjJhZGZFAF9aTjRjb3JlNXNsaWNlMjlfJExUJGltcGwkdTIwJCR1NWIkVCR1NWQkJEdUJDNnZXQxN2hkMWQ2NzE4OGI3OWMyMmRmRQBfWk4xMDZfJExUJGNvcmUuLm9wcy4ucmFuZ2UuLlJhbmdlJExUJHVzaXplJEdUJCR1MjAkYXMkdTIwJGNvcmUuLnNsaWNlLi5pbmRleC4uU2xpY2VJbmRleCRMVCQkdTViJFQkdTVkJCRHVCQkR1QkM2dldDE3aDhjYjkwZmVhYmFlNGExZGZFAF9aTjE3Y29tcGlsZXJfYnVpbHRpbnMzbWVtNWltcGxzMTJjb3B5X2ZvcndhcmQyOWNvcHlfZm9yd2FyZF9taXNhbGlnbmVkX3dvcmRzMTdoOWQyOGE0MzkwZDdhZmFjZkUAX1pOMTEwXyRMVCRjb3JlLi5vcHMuLnJhbmdlLi5SYW5nZUZyb20kTFQkdXNpemUkR1QkJHUyMCRhcyR1MjAkY29yZS4uc2xpY2UuLmluZGV4Li5TbGljZUluZGV4JExUJCR1NWIkVCR1NWQkJEdUJCRHVCQ1aW5kZXgxN2hlZGM3OGQ1ZjRhMDRjOWJmRQBfWk40Y29yZTNmbXQ5Rm9ybWF0dGVyM25ldzE3aDViOGU3OWNkODkxN2ZlOGZFAF9aTjE3Y29tcGlsZXJfYnVpbHRpbnMzbWVtNDFfX2xsdm1fbWVtbW92ZV9lbGVtZW50X3Vub3JkZXJlZF9hdG9taWNfODE3aDFiNmNiNjU3ODRhOGE1N2ZFAF9aTjRjb3JlM3N0cjZ0cmFpdHMxMTJfJExUJGltcGwkdTIwJGNvcmUuLnNsaWNlLi5pbmRleC4uU2xpY2VJbmRleCRMVCRzdHIkR1QkJHUyMCRmb3IkdTIwJGNvcmUuLm9wcy4ucmFuZ2UuLlJhbmdlRnJvbSRMVCR1c2l6ZSRHVCQkR1QkM2dldDE3aDJhNzI1MmRiMTgxYTUwM2ZFAF9aTjRjb3JlNGl0ZXI1cmFuZ2UxMDFfJExUJGltcGwkdTIwJGNvcmUuLml0ZXIuLnRyYWl0cy4uaXRlcmF0b3IuLkl0ZXJhdG9yJHUyMCRmb3IkdTIwJGNvcmUuLm9wcy4ucmFuZ2UuLlJhbmdlJExUJEEkR1QkJEdUJDRuZXh0MTdoODFiNmM5NTk2OTgxNmMyZkUAX1pONGNvcmUxMGludHJpbnNpY3MxN2NvbnN0X2V2YWxfc2VsZWN0MTdoYmQwZjZlOTRhNjZjMDUyZkUAX1pONTJfJExUJGk2NCR1MjAkYXMkdTIwJGNvbXBpbGVyX2J1aWx0aW5zLi5pbnQuLkRJbnQkR1QkMmhpMTdoNGYzYzI0MDJjZGQ1NTgwZkUAX1pONGNvcmUzZm10OGJ1aWxkZXJzMTBEZWJ1Z1R1cGxlNWZpZWxkMTdoY2I3ZmVjYmEyMGE0NGVmZUUAX1pONzVfJExUJHVzaXplJHUyMCRhcyR1MjAkY29yZS4uc2xpY2UuLmluZGV4Li5TbGljZUluZGV4JExUJCR1NWIkVCR1NWQkJEdUJCRHVCQzZ2V0MTdoM2NhM2RhZjYwZTg2YzBmZUUAX1pONGNvcmUzb3BzOGZ1bmN0aW9uNkZuT25jZTljYWxsX29uY2UxN2gxOTJmMzdkNWUxMzg2ZGJlRQBfWk4xN2NvbXBpbGVyX2J1aWx0aW5zM21lbTVpbXBsczEyY29weV9mb3J3YXJkMThjb3B5X2ZvcndhcmRfYnl0ZXMxN2g5ZTQ4MjQ2ZDI5OTYxZWFlRQBfWk40Y29yZTNzdHI1Y291bnQxMWNvdW50X2NoYXJzMTdoMmRjMTVmODdiYzdlYWM4ZUUAX1pOMTdjb21waWxlcl9idWlsdGluczNtZW02c3RybGVuMTdoZjg0OTU2MzU0ZmQxNWE3ZUUAX1pONGNvcmUzcHRyN211dF9wdHIzMV8kTFQkaW1wbCR1MjAkJEJQJG11dCR1MjAkVCRHVCQ2b2Zmc2V0MTdoODJiMTcwNDhkNGMxNDY0ZUUAX1pONGNvcmUzcHRyMTNyZWFkX3ZvbGF0aWxlMTdoNDcxMzc5OWMzNWY2YTlmZEUAX1pONGNvcmU1c2xpY2U2bWVtY2hyMTltZW1jaHJfZ2VuZXJhbF9jYXNlMjhfJHU3YiQkdTdiJGNsb3N1cmUkdTdkJCR1N2QkMTdoZmMwNDZhZDUzMGI0ODdmZEUAX1pONGNvcmUzbnVtMjNfJExUJGltcGwkdTIwJHVzaXplJEdUJDEyd3JhcHBpbmdfc3ViMTdoYzk2YWZmZGI4YTljOWVlZEUAX1pONGNvcmUzc3RyNnRyYWl0czExMl8kTFQkaW1wbCR1MjAkY29yZS4uc2xpY2UuLmluZGV4Li5TbGljZUluZGV4JExUJHN0ciRHVCQkdTIwJGZvciR1MjAkY29yZS4ub3BzLi5yYW5nZS4uUmFuZ2VGcm9tJExUJHVzaXplJEdUJCRHVCQ1aW5kZXgxN2hlZThiZWU2YTkzMTI5ZGVkRQBfWk40Y29yZTNzdHI2dHJhaXRzNjZfJExUJGltcGwkdTIwJGNvcmUuLm9wcy4uaW5kZXguLkluZGV4JExUJEkkR1QkJHUyMCRmb3IkdTIwJHN0ciRHVCQ1aW5kZXgxN2gzZmE4ZTMzZjI2OTRhZGRkRQBfWk44OV8kTFQkY29yZS4ub3BzLi5yYW5nZS4uUmFuZ2UkTFQkVCRHVCQkdTIwJGFzJHUyMCRjb3JlLi5pdGVyLi5yYW5nZS4uUmFuZ2VJdGVyYXRvckltcGwkR1QkOXNwZWNfbmV4dDE3aDg2MWJlN2RhNjUwZDg4ZGRFAF9aTjE3Y29tcGlsZXJfYnVpbHRpbnMzbWVtMzFtZW1zZXRfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljMTdoZTZkOWYxNjMyMWNhOTJhZEUAX1pOMTdjb21waWxlcl9idWlsdGluczNtZW00MV9fbGx2bV9tZW1tb3ZlX2VsZW1lbnRfdW5vcmRlcmVkX2F0b21pY18yMTdoZjNmODI2M2NmN2M3NjBhZEUAX1pOMTdjb21waWxlcl9idWlsdGluczNtZW02bWVtY3B5MTdoZmUwYmJmYWRkOWNiMDBhZEUAX1pOMTdjb21waWxlcl9idWlsdGluczNtZW01aW1wbHMxM2NvcHlfYmFja3dhcmQxN2g3OGE2M2M0OTA0MDEyYzlkRQBfWk41MF8kTFQkJFJGJG11dCR1MjAkVyR1MjAkYXMkdTIwJGNvcmUuLmZtdC4uV3JpdGUkR1QkMTB3cml0ZV9jaGFyMTdoZDEyZjg3M2U5YjczNmM4ZEUAX1pONGNvcmUzZm10OGJ1aWxkZXJzOERlYnVnU2V0NWVudHJ5MTdoZjcxMTQwZTZkYmE1Zjk4ZEUAX1pONTJfJExUJGkzMiR1MjAkYXMkdTIwJGNvbXBpbGVyX2J1aWx0aW5zLi5pbnQuLkhJbnQkR1QkMTR6ZXJvX3dpZGVuX211bDE3aDdlNjIzYjJiZjQwNWU0OGRFAF9aTjRjb3JlNXNsaWNlNm1lbWNocjE5bWVtY2hyX2dlbmVyYWxfY2FzZTE3aGUzOWU3N2JkOTAxMjExOGRFAF9aTjY4XyRMVCRjb3JlLi5mbXQuLmJ1aWxkZXJzLi5QYWRBZGFwdGVyJHUyMCRhcyR1MjAkY29yZS4uZm10Li5Xcml0ZSRHVCQ5d3JpdGVfc3RyMTdoZDA1NmI2NTgzODFkNjk3ZEUAX1pOMTdjb21waWxlcl9idWlsdGluczNtZW01aW1wbHM5c2V0X2J5dGVzMTVzZXRfYnl0ZXNfd29yZHMxN2gyZjA1ZTQ5ZDFhMTQwODdkRQBfWk4xN2NvbXBpbGVyX2J1aWx0aW5zM21lbTQwX19sbHZtX21lbWNweV9lbGVtZW50X3Vub3JkZXJlZF9hdG9taWNfMTE3aGYyOWY5NTlhMWRiZWU0NmRFAF9aTjRjb3JlNXNsaWNlNm1lbWNocjZtZW1jaHIyOF8kdTdiJCR1N2IkY2xvc3VyZSR1N2QkJHU3ZCQxN2gwODRhNGYzNDE5YTJkYTJkRQBfWk40Y29yZTZyZXN1bHQxOVJlc3VsdCRMVCRUJEMkRSRHVCQ4YW5kX3RoZW4xN2hmOTIxNjYyN2VkOWQzNzFkRQBfWk40Y29yZTVzbGljZTVpbmRleDIyc2xpY2VfaW5kZXhfb3JkZXJfZmFpbDE3aDNlMTIxMTVkNjFkYjg3MGRFAF9aTjRjb3JlM3B0cjV3cml0ZTE3aDA5YjQ0YTJlY2U1MzhhZmNFAF9aTjRjb3JlM251bTIzXyRMVCRpbXBsJHUyMCR1c2l6ZSRHVCQxNHNhdHVyYXRpbmdfc3ViMTdoZDM0ZDZmZTAxMDM3NTBkY0UAX1pOMTA2XyRMVCRjb3JlLi5vcHMuLnJhbmdlLi5SYW5nZSRMVCR1c2l6ZSRHVCQkdTIwJGFzJHUyMCRjb3JlLi5zbGljZS4uaW5kZXguLlNsaWNlSW5kZXgkTFQkJHU1YiRUJHU1ZCQkR1QkJEdUJDVpbmRleDE3aGZmNWUzYzJlZTk0ZDI5OWNFAF9aTjE3Y29tcGlsZXJfYnVpbHRpbnMzbWVtNWltcGxzOXNldF9ieXRlczE1c2V0X2J5dGVzX2J5dGVzMTdoNzNjNzVhNzc5ZDI1NDE4Y0UAX1pONGNvcmU2cmVzdWx0MTN1bndyYXBfZmFpbGVkMTdoNDZkZTIwOTNhYWJmYmI3Y0UAX1pONGNvcmUzZm10M3J1bjE3aDg3ZjNjNDdhZGRkMTI3N2NFAF9aTjE3Y29tcGlsZXJfYnVpbHRpbnMzbWVtMzJtZW1tb3ZlX2VsZW1lbnRfdW5vcmRlcmVkX2F0b21pYzE3aGZhMzY1ODQ2ZTViNGZmNmNFAF9aTjRjb3JlM3B0cjdtdXRfcHRyMzFfJExUJGltcGwkdTIwJCRCUCRtdXQkdTIwJFQkR1QkNm9mZnNldDE3aDAxMmIyNWY5OTgzNzZjMmNFAF9aTjRjb3JlNXNsaWNlMjlfJExUJGltcGwkdTIwJCR1NWIkVCR1NWQkJEdUJDNnZXQxN2g2MTBkYzExNzE4MGMxYTJjRQBfWk4xMDhfJExUJGNvcmUuLml0ZXIuLmFkYXB0ZXJzLi5maWx0ZXIuLkZpbHRlciRMVCRJJEMkUCRHVCQkdTIwJGFzJHUyMCRjb3JlLi5pdGVyLi50cmFpdHMuLml0ZXJhdG9yLi5JdGVyYXRvciRHVCQ1Y291bnQxN2hiNWM0NGY2NWY3NTc1ODBjRQBfWk4xN2NvbXBpbGVyX2J1aWx0aW5zM21lbTQwX19sbHZtX21lbXNldF9lbGVtZW50X3Vub3JkZXJlZF9hdG9taWNfMTE3aGM4YWQxZDMyNGM3NjY2MGNFAF9aTjRjb3JlM3N0cjIxXyRMVCRpbXBsJHUyMCRzdHIkR1QkNGZpbmQxN2g4ZWQxZWFlMDgxMDgyZWRiRQBfWk41Nl8kTFQkdXNpemUkdTIwJGFzJHUyMCRjb3JlLi5pdGVyLi50cmFpdHMuLmFjY3VtLi5TdW0kR1QkM3N1bTE3aGEyYmQzN2RiOWE2YWNkZGJFAF9aTjRjb3JlM3B0cjljb25zdF9wdHIzM18kTFQkaW1wbCR1MjAkJEJQJGNvbnN0JHUyMCRUJEdUJDEyYWxpZ25fb2Zmc2V0MTdoMWU0NDVhNTRiNjgwNmNkYkUAX1pONGNvcmU1c2xpY2U0aXRlcjEzSXRlciRMVCRUJEdUJDExcHJlX2RlY19lbmQxN2gwZWYzMzJiZjhkNjQyODliRQBfWk40Y29yZTNjbXA1aW1wbHM1N18kTFQkaW1wbCR1MjAkY29yZS4uY21wLi5QYXJ0aWFsT3JkJHUyMCRmb3IkdTIwJHVzaXplJEdUJDJsdDE3aDFjNjQ2MzAzN2YwYjQ0OGJFAF9aTjRjb3JlM2ZtdDhidWlsZGVyczEwRGVidWdJbm5lcjVlbnRyeTI4XyR1N2IkJHU3YiRjbG9zdXJlJHU3ZCQkdTdkJDE3aDMyYWI3M2E2ZmZhYjA1NmJFAF9aTjE3Y29tcGlsZXJfYnVpbHRpbnMzbWVtNDBfX2xsdm1fbWVtc2V0X2VsZW1lbnRfdW5vcmRlcmVkX2F0b21pY180MTdoZDQ0MGY5ZjI1ZDI3ODg1YkUAX1pONGNvcmUzcHRyNXdyaXRlMTdoMDRiN2M3NjhkNDc3ZGU0YkUAX1pONGNvcmUzZm10NVdyaXRlMTB3cml0ZV9jaGFyMTdoY2U0ZTVjOTdjMDA1MmI0YkUAX1pONGNvcmUzZm10OUZvcm1hdHRlcjdwYWRkaW5nMTdoNzA3MjJlNzRhMDc2MDE0YkUAX1pOOTFfJExUJGNvcmUuLnNsaWNlLi5pdGVyLi5JdGVyJExUJFQkR1QkJHUyMCRhcyR1MjAkY29yZS4uaXRlci4udHJhaXRzLi5pdGVyYXRvci4uSXRlcmF0b3IkR1QkNG5leHQxN2hlMWRhMGI0M2ViM2UxYzNiRQBfWk45MV8kTFQkY29yZS4uc2xpY2UuLml0ZXIuLkl0ZXIkTFQkVCRHVCQkdTIwJGFzJHUyMCRjb3JlLi5pdGVyLi50cmFpdHMuLml0ZXJhdG9yLi5JdGVyYXRvciRHVCQ4cG9zaXRpb24xN2hmYmM5YjM4MWU3ZjY0MWZhRQBfWk40Y29yZTRjaGFyN21ldGhvZHMxNWVuY29kZV91dGY4X3JhdzE3aDNmZDg2M2VkMGNiNzY3ZWFFAF9aTjUyXyRMVCRpMzIkdTIwJGFzJHUyMCRjb21waWxlcl9idWlsdGlucy4uaW50Li5ISW50JEdUJDEwemVyb193aWRlbjE3aGJlNGIzNDY0ZThkNjc3YmFFAF9aTjE3Y29tcGlsZXJfYnVpbHRpbnMzbWVtNm1lbXNldDE3aGNhM2VlYjllOTE3YjY1YmFFAF9aTjc1XyRMVCR1c2l6ZSR1MjAkYXMkdTIwJGNvcmUuLnNsaWNlLi5pbmRleC4uU2xpY2VJbmRleCRMVCQkdTViJFQkdTVkJCRHVCQkR1QkMTNnZXRfdW5jaGVja2VkMTdoMzk5MzJjZGEzZmY3MWNhYUUAX1pONGNvcmUzc3RyMTF2YWxpZGF0aW9uczE3dXRmOF9pc19jb250X2J5dGUxN2gwMDJkMzc4NmU0ZGM4NmFhRQBfWk40Y29yZTNzdHI2dHJhaXRzMTEwXyRMVCRpbXBsJHUyMCRjb3JlLi5zbGljZS4uaW5kZXguLlNsaWNlSW5kZXgkTFQkc3RyJEdUJCR1MjAkZm9yJHUyMCRjb3JlLi5vcHMuLnJhbmdlLi5SYW5nZVRvJExUJHVzaXplJEdUJCRHVCQ1aW5kZXgxN2hmYzZlMzQ3NmIwYjRiMDhhRQBfWk40Y29yZTNzdHI2dHJhaXRzMTEwXyRMVCRpbXBsJHUyMCRjb3JlLi5zbGljZS4uaW5kZXguLlNsaWNlSW5kZXgkTFQkc3RyJEdUJCR1MjAkZm9yJHUyMCRjb3JlLi5vcHMuLnJhbmdlLi5SYW5nZVRvJExUJHVzaXplJEdUJCRHVCQzZ2V0MTdoNGZmNWE5YTQ4OGFhOTM2YUUAX1pONGNvcmUzY21wM21pbjE3aDk4MGQ1OTllM2NhMjlhMWFFAF9aTjExNV8kTFQkY29yZS4ub3BzLi5yYW5nZS4uUmFuZ2VJbmNsdXNpdmUkTFQkdXNpemUkR1QkJHUyMCRhcyR1MjAkY29yZS4uc2xpY2UuLmluZGV4Li5TbGljZUluZGV4JExUJCR1NWIkVCR1NWQkJEdUJCRHVCQ1aW5kZXgxN2g1ZTlhY2I3YTM1ZjZmNDFhRQBfWk40Y29yZTVzbGljZTI5XyRMVCRpbXBsJHUyMCQkdTViJFQkdTVkJCRHVCQxM2dldF91bmNoZWNrZWQxN2gwNTY5MDIxZTIwZTkwNmY5RQBfWk40Y29yZTRjaGFyN21ldGhvZHMyMl8kTFQkaW1wbCR1MjAkY2hhciRHVCQxMWVuY29kZV91dGY4MTdoMTlhMWYzYTg3M2UzNGVlOUUAX1pOMTdjb21waWxlcl9idWlsdGluczNtZW01aW1wbHMxM2NvcHlfYmFja3dhcmQxOWNvcHlfYmFja3dhcmRfYnl0ZXMxN2g3NWQ5ZDFkODkxOWM3YWQ5RQBfWk4xN2NvbXBpbGVyX2J1aWx0aW5zM21lbTQwX19sbHZtX21lbWNweV9lbGVtZW50X3Vub3JkZXJlZF9hdG9taWNfMjE3aGM2MTI1Yzc3N2E4ZmM1YzlFAF9aTjRjb3JlM3N0cjZ0cmFpdHM2Nl8kTFQkaW1wbCR1MjAkY29yZS4ub3BzLi5pbmRleC4uSW5kZXgkTFQkSSRHVCQkdTIwJGZvciR1MjAkc3RyJEdUJDVpbmRleDE3aDc2Njg4YTQ4N2EzMDk4YjlFAF9aTjRjb3JlM3N0cjExdmFsaWRhdGlvbnMxNW5leHRfY29kZV9wb2ludDE3aDdhYzY4MjU0NGMxNjNkOTlFAF9aTjRjb3JlM2ZtdDlGb3JtYXR0ZXI5YWx0ZXJuYXRlMTdoZjdlZTVjNmI0ZDU3Y2M4OUUAX1pONGNvcmUzc3RyNWNvdW50MjNjaGFyX2NvdW50X2dlbmVyYWxfY2FzZTE3aGVmN2EyMWMyNjYwYzgzODlFAF9aTjRjb3JlM3N0cjExdmFsaWRhdGlvbnMxOHV0ZjhfYWNjX2NvbnRfYnl0ZTE3aDJlNTUxZDJjNDI3NTQ3NzlFAF9aTjE3Y29tcGlsZXJfYnVpbHRpbnMzbWVtMzFtZW1zZXRfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljMTdoYzU0NzQ3OTEzOWNiMWU2OUUAX1pONGNvcmUzbWVtN3JlcGxhY2UxN2hkZTQ2MmJlZDdmM2I4ZjI5RQBfWk4xN2NvbXBpbGVyX2J1aWx0aW5zM21lbTMybWVtbW92ZV9lbGVtZW50X3Vub3JkZXJlZF9hdG9taWMxN2gyYjE5OTBiYTBkOWZjYTI5RQBfWk4xN2NvbXBpbGVyX2J1aWx0aW5zM21lbTQwX19sbHZtX21lbWNweV9lbGVtZW50X3Vub3JkZXJlZF9hdG9taWNfNDE3aDU4N2ZmZDk1M2I2ODhhMjlFAF9aTjRjb3JlM251bTIzXyRMVCRpbXBsJHUyMCR1c2l6ZSRHVCQxM3VuY2hlY2tlZF9hZGQxN2hlOWU1NmYzYzkzNWI0ODI5RQBfWk4xN2NvbXBpbGVyX2J1aWx0aW5zM21lbTMybWVtbW92ZV9lbGVtZW50X3Vub3JkZXJlZF9hdG9taWMxN2gwNzBlOTdhYzA3MTFiYzE5RQBfWk40Y29yZTNzdHIyMV8kTFQkaW1wbCR1MjAkc3RyJEdUJDE5Zmxvb3JfY2hhcl9ib3VuZGFyeTI4XyR1N2IkJHU3YiRjbG9zdXJlJHU3ZCQkdTdkJDE3aDk5YTg2ZjViY2I0NTE3MDlFAF9aTjE3Y29tcGlsZXJfYnVpbHRpbnMzbWVtMzFtZW1jcHlfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljMTdoYTM3NjFlOWIwZjAxNWZlOEUAX1pONGNvcmUzbWVtN3JlcGxhY2UxN2gwMGRhZWI0MDBlNGY2M2Q4RQBfWk4xMTBfJExUJGNvcmUuLml0ZXIuLmFkYXB0ZXJzLi5lbnVtZXJhdGUuLkVudW1lcmF0ZSRMVCRJJEdUJCR1MjAkYXMkdTIwJGNvcmUuLml0ZXIuLnRyYWl0cy4uaXRlcmF0b3IuLkl0ZXJhdG9yJEdUJDRuZXh0MTdoODgyMDgwOWMxMDQyYTBjOEUAX1pOMTA2XyRMVCRjb3JlLi5zbGljZS4uaXRlci4uSXRlciRMVCRUJEdUJCR1MjAkYXMkdTIwJGNvcmUuLml0ZXIuLnRyYWl0cy4uZG91YmxlX2VuZGVkLi5Eb3VibGVFbmRlZEl0ZXJhdG9yJEdUJDluZXh0X2JhY2sxN2hiZDM0NDVlNTQ1MmI1YmI4RQBfWk45MV8kTFQkY29yZS4uc2xpY2UuLml0ZXIuLkl0ZXIkTFQkVCRHVCQkdTIwJGFzJHUyMCRjb3JlLi5pdGVyLi50cmFpdHMuLml0ZXJhdG9yLi5JdGVyYXRvciRHVCQ5cnBvc2l0aW9uMTdoM2QxOTRkZWMyMGRmMjhhOEUAX1pOODFfJExUJGNvcmUuLnN0ci4uaXRlci4uQ2hhcnMkdTIwJGFzJHUyMCRjb3JlLi5pdGVyLi50cmFpdHMuLml0ZXJhdG9yLi5JdGVyYXRvciRHVCQ1Y291bnQxN2g3NDE5ZGJiNDU5ZmM2Nzk4RQBfWk41MF8kTFQkJFJGJG11dCR1MjAkVyR1MjAkYXMkdTIwJGNvcmUuLmZtdC4uV3JpdGUkR1QkOXdyaXRlX2ZtdDE3aDVlZWFiMDg2OGVlZTllNzhFAF9aTjRjb3JlM3B0cjljb25zdF9wdHIzM18kTFQkaW1wbCR1MjAkJEJQJGNvbnN0JHUyMCRUJEdUJDZvZmZzZXQxN2g0OWZiOTZkMDI5YzZiYjc4RQBfWk40Y29yZTNmbXQ5Rm9ybWF0dGVyMTlzaWduX2F3YXJlX3plcm9fcGFkMTdoYmQ2ZTdkMzZjYzI1NTQ3OEUAX1pONGNvcmUzcHRyOWNvbnN0X3B0cjMzXyRMVCRpbXBsJHUyMCQkQlAkY29uc3QkdTIwJFQkR1QkNm9mZnNldDE3aGRiYWE4Yjk4ZGViNTM5NjhFAF9aTjRjb3JlNGNoYXI3bWV0aG9kczhsZW5fdXRmODE3aGEyMTMzZmZjYjAyMzAxNjhFAF9aTjRjb3JlM2ZtdDhidWlsZGVyczEwRGVidWdUdXBsZTlpc19wcmV0dHkxN2hjZTYwNjg0ODUwMjM0NTQ4RQBfWk45MV8kTFQkY29yZS4uc2xpY2UuLml0ZXIuLkl0ZXIkTFQkVCRHVCQkdTIwJGFzJHUyMCRjb3JlLi5pdGVyLi50cmFpdHMuLml0ZXJhdG9yLi5JdGVyYXRvciRHVCQ0bmV4dDE3aDFlNmJiN2IyZDQ3ZmQwNDhFAF9aTjRjb3JlNXNsaWNlNWluZGV4NzRfJExUJGltcGwkdTIwJGNvcmUuLm9wcy4uaW5kZXguLkluZGV4JExUJEkkR1QkJHUyMCRmb3IkdTIwJCR1NWIkVCR1NWQkJEdUJDVpbmRleDE3aDA4YjFmYTZhN2IxZDFmMzhFAF9aTjE3Y29tcGlsZXJfYnVpbHRpbnMzbWVtNDBfX2xsdm1fbWVtY3B5X2VsZW1lbnRfdW5vcmRlcmVkX2F0b21pY184MTdoMzYwMGI5NTVlNzJkYjEzOEUAX1pOMTdjb21waWxlcl9idWlsdGluczNpbnQzbXVsM011bDNtdWwxN2g2YTllNmI2NDYwZmY4OTE4RQBfWk40Y29yZTNmbXQxMVBvc3RQYWRkaW5nNXdyaXRlMTdoNWNiZjkyZWZiNzMzODkxOEUAX1pONGNvcmUzZm10OGdldGNvdW50MTdoY2NlMGVmOGQ2MDBjZjgxOEUAX1pONGNvcmUzbnVtMjJfJExUJGltcGwkdTIwJGkxMjgkR1QkMTJ3cmFwcGluZ19hZGQxN2gwMjNjNzA1ODY5ZGViNTA4RQBfWk44MV8kTFQkY29yZS4uc3RyLi5wYXR0ZXJuLi5DaGFyU2VhcmNoZXIkdTIwJGFzJHUyMCRjb3JlLi5zdHIuLnBhdHRlcm4uLlNlYXJjaGVyJEdUJDEwbmV4dF9tYXRjaDE3aGUxNjBjYzkzNTliYzdhYjdFAF9aTjRjb3JlMTBpbnRyaW5zaWNzMTljb3B5X25vbm92ZXJsYXBwaW5nMTdoOTg0ZWM2OTFiNGRmYzRiN0UAX1pONGNvcmU2b3B0aW9uMTVPcHRpb24kTFQkVCRHVCQ2dW53cmFwMTdoNDgyNzFhMGYyNThhODJhN0UAX1pONGNvcmUzcHRyOWNvbnN0X3B0cjMzXyRMVCRpbXBsJHUyMCQkQlAkY29uc3QkdTIwJFQkR1QkM2FkZDE3aGI1ODFiZmEyMGZkMjZhOTdFAF9aTjVhbGxvYzdyYXdfdmVjMTdjYXBhY2l0eV9vdmVyZmxvdzE3aDA4MzEyYjZkYjNhZmU4ODdFAF9aTjRjb3JlM3B0cjdtdXRfcHRyMzFfJExUJGltcGwkdTIwJCRCUCRtdXQkdTIwJFQkR1QkNm9mZnNldDE3aGFjOTk4NWJkZGI0Y2FiNzdFAF9aTjE3Y29tcGlsZXJfYnVpbHRpbnMzbWVtMzFtZW1zZXRfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljMTdoYTI5Njg0NzE2NmFmZTg2N0UAX1pOOTFfJExUJGNvcmUuLnNsaWNlLi5pdGVyLi5JdGVyJExUJFQkR1QkJHUyMCRhcyR1MjAkY29yZS4uaXRlci4udHJhaXRzLi5pdGVyYXRvci4uSXRlcmF0b3IkR1QkOHBvc2l0aW9uMTdoNzMxNDFhYTE4MTE5N2U1N0UAX1pONGNvcmUzcHRyOWNvbnN0X3B0cjMzXyRMVCRpbXBsJHUyMCQkQlAkY29uc3QkdTIwJFQkR1QkNm9mZnNldDE3aGE0OGZmNTNhZjQwYzYxNTdFAF9aTjRjb3JlNXNsaWNlNWluZGV4MjVzbGljZV9pbmRleF9vcmRlcl9mYWlsX3J0MTdoOWFkN2VkYTkwMTY2NGYzN0UAX1pOMTdjb21waWxlcl9idWlsdGluczNtZW01aW1wbHMxMmNvcHlfZm9yd2FyZDI2Y29weV9mb3J3YXJkX2FsaWduZWRfd29yZHMxN2hkNzE3NGI3N2Y3YjVmZDI3RQBfWk40Y29yZTZvcHRpb24xNU9wdGlvbiRMVCRUJEdUJDNtYXAxN2hhNjcyZWE3MTcyN2Y1YTA3RQBfWk4xN2NvbXBpbGVyX2J1aWx0aW5zM21lbTVpbXBsczEyY29weV9mb3J3YXJkMTdoZTA1MmI4MjgzYmEwZDAwN0UAX1pONGNvcmUzcHRyN211dF9wdHIzMV8kTFQkaW1wbCR1MjAkJEJQJG11dCR1MjAkVCRHVCQzc3ViMTdoZGEzNjAzMzI0NGRkYWVmNkUAX1pONGNvcmU5cGFuaWNraW5nOXBhbmljX2ZtdDE3aGY4MDRhZGE3MmFhZDA2ZTZFAF9aTjRjb3JlM2NtcDNPcmQzbWluMTdoYmQ0YzRjNWM1YzkxYmNkNkUAX1pONTZfJExUJHVzaXplJHUyMCRhcyR1MjAkY29yZS4uaXRlci4udHJhaXRzLi5hY2N1bS4uU3VtJEdUJDNzdW0yOF8kdTdiJCR1N2IkY2xvc3VyZSR1N2QkJHU3ZCQxN2hhNjU3NWVjNDU1NTAzY2Q2RQBfWk40Y29yZTNzdHIxNnNsaWNlX2Vycm9yX2ZhaWwxN2gyMzI2NWZmOWMwOGViZWE2RQBfWk40Y29yZTNudW0yMF8kTFQkaW1wbCR1MjAkdTgkR1QkMjFpc191dGY4X2NoYXJfYm91bmRhcnkxN2hjYjFiZDcwYjM2NGE1Njg2RQBfWk40Y29yZTNmbXQ5Rm9ybWF0dGVyOXdyaXRlX3N0cjE3aDhmMDJmMDU4ZmI2NjQxNzZFAF9aTjRjb3JlM3B0cjEyYWxpZ25fb2Zmc2V0MTdoMGI5ODFjNmYwMzY1YTc2NkUAX1pONTJfJExUJGkxMjgkdTIwJGFzJHUyMCRjb21waWxlcl9idWlsdGlucy4uaW50Li5JbnQkR1QkMTJ3cmFwcGluZ19hZGQxN2hjYjE0ODZlMTJhYmE2MDY2RQBfWk40Y29yZTNmbXQ4YnVpbGRlcnMxMERlYnVnVHVwbGU1ZmllbGQyOF8kdTdiJCR1N2IkY2xvc3VyZSR1N2QkJHU3ZCQxN2hjMTgwZjY2NWE0YmU1NjU2RQBfWk44MV8kTFQkY29yZS4uc3RyLi5pdGVyLi5DaGFycyR1MjAkYXMkdTIwJGNvcmUuLml0ZXIuLnRyYWl0cy4uaXRlcmF0b3IuLkl0ZXJhdG9yJEdUJDRuZXh0MTdoOGFkM2UxN2Y0Y2NhMzI0NkUAX1pONGNvcmUzZm10OUZvcm1hdHRlcjEycGFkX2ludGVncmFsMTJ3cml0ZV9wcmVmaXgxN2hkMmNhMWZiNDc1NDRiZTM2RQBfWk40Y29yZTNwdHI3bXV0X3B0cjMxXyRMVCRpbXBsJHUyMCQkQlAkbXV0JHUyMCRUJEdUJDNhZGQxN2hhYTZlMTZjNzBmMDY2MDM2RQBfWk40Y29yZTNvcHM4ZnVuY3Rpb242Rm5PbmNlOWNhbGxfb25jZTE3aGMyMGNiYWQ1YzAwMDk3MjZFAF9aTjRjb3JlM2ZtdDEyVVNJWkVfTUFSS0VSMjhfJHU3YiQkdTdiJGNsb3N1cmUkdTdkJCR1N2QkMTdoNzI0ZDVlM2E0Y2ZiNjMxNkUAX1pONGNvcmUxMGludHJpbnNpY3MxN2NvbnN0X2V2YWxfc2VsZWN0MTdoZGEwNDkxYjhiZDAxMTMxNkUAX1pOMTdjb21waWxlcl9idWlsdGluczNtZW02bWVtY21wMTdoODBhNmNhZDAyZmQ3ZGUwNkUAX1pONGNvcmU2cmVzdWx0MTlSZXN1bHQkTFQkVCRDJEUkR1QkOGFuZF90aGVuMTdoNWI5YTE0Yjc4MjViZjRlNUUAX1pOMTAyXyRMVCRjb3JlLi5pdGVyLi5hZGFwdGVycy4ubWFwLi5NYXAkTFQkSSRDJEYkR1QkJHUyMCRhcyR1MjAkY29yZS4uaXRlci4udHJhaXRzLi5pdGVyYXRvci4uSXRlcmF0b3IkR1QkNGZvbGQxN2hiNTA1ZjBhOWJmMzZlMWU1RQBfWk40Y29yZTNmbXQ4YnVpbGRlcnMxMERlYnVnVHVwbGU2ZmluaXNoMjhfJHU3YiQkdTdiJGNsb3N1cmUkdTdkJCR1N2QkMTdoM2E4OWJkNDBiYmRhNWRjNUUAX1pONzlfJExUJGNvcmUuLnJlc3VsdC4uUmVzdWx0JExUJFQkQyRFJEdUJCR1MjAkYXMkdTIwJGNvcmUuLm9wcy4udHJ5X3RyYWl0Li5UcnkkR1QkNmJyYW5jaDE3aDY5NDNlYWIzYThlMTliYzVFAF9aTjc1XyRMVCR1c2l6ZSR1MjAkYXMkdTIwJGNvcmUuLnNsaWNlLi5pbmRleC4uU2xpY2VJbmRleCRMVCQkdTViJFQkdTVkJCRHVCQkR1QkM2dldDE3aDkxZjQ0Y2IxMmFjNjUzYjVFAF9aTjRjb3JlM29wczhmdW5jdGlvbjZGbk9uY2U5Y2FsbF9vbmNlMTdoNDJmMmJiZjU2OTcxNmNhNUUAX1pONGNvcmUzc3RyMjFfJExUJGltcGwkdTIwJHN0ciRHVCQxNmlzX2NoYXJfYm91bmRhcnkxN2hkYjUyYTdhYTZiODdhOTg1RQBfWk40Y29yZTVzbGljZTVpbmRleDc0XyRMVCRpbXBsJHUyMCRjb3JlLi5vcHMuLmluZGV4Li5JbmRleCRMVCRJJEdUJCR1MjAkZm9yJHUyMCQkdTViJFQkdTVkJCRHVCQ1aW5kZXgxN2g5NDgwZjk1ZGRlOTA1NjU1RQBfWk40Y29yZTNwdHI3bXV0X3B0cjMxXyRMVCRpbXBsJHUyMCQkQlAkbXV0JHUyMCRUJEdUJDNzdWIxN2hmNjI4N2Q1ZjRlZDQ1NzQ1RQBfWk40Y29yZTNwdHI5Y29uc3RfcHRyMzNfJExUJGltcGwkdTIwJCRCUCRjb25zdCR1MjAkVCRHVCQzYWRkMTdoODdkYTY3ODZhYTQ5YTkzNUUAX1pONTFfJExUJGk2NCR1MjAkYXMkdTIwJGNvbXBpbGVyX2J1aWx0aW5zLi5pbnQuLkludCRHVCQxMndyYXBwaW5nX211bDE3aDdmMmEzOTcxMjk2YzNhMDVFAF9aTjRjb3JlM2ZtdDhidWlsZGVyczExRGVidWdTdHJ1Y3Q1ZmllbGQxN2hkOTQ3MDM4M2Y4ZWI1ZWQ0RQBfWk43M18kTFQkJHU1YiRBJHU1ZCQkdTIwJGFzJHUyMCRjb3JlLi5zbGljZS4uY21wLi5TbGljZVBhcnRpYWxFcSRMVCRCJEdUJCRHVCQ1ZXF1YWwxN2gyMTEyNzY3ZmM5MTMyYWM0RQBfWk40Y29yZTNwdHI3bXV0X3B0cjMxXyRMVCRpbXBsJHUyMCQkQlAkbXV0JHUyMCRUJEdUJDNhZGQxN2g0OTA0YjMwODgzNjg5ZmI0RQBfWk40Y29yZTNwdHI5Y29uc3RfcHRyMzNfJExUJGltcGwkdTIwJCRCUCRjb25zdCR1MjAkVCRHVCQxMmFsaWduX29mZnNldDdydF9pbXBsMTdoNGQzMmM1M2YzODMxMmFiNEUAX1pONGNvcmUzcHRyNHJlYWQxN2hiMDE3N2Q0OWY2Y2FjYTk0RQBfWk40Y29yZTNmbXQ4YnVpbGRlcnMxNWRlYnVnX3R1cGxlX25ldzE3aDIxNGY1YzMwOTQyMzVmODRFAF9aTjRjb3JlM2ZtdDEwQXJndW1lbnRWMThhc191c2l6ZTE3aGY0ZTBmNGVjYmFkMmNjODRFAF9aTjE3Y29tcGlsZXJfYnVpbHRpbnMzbWVtNDFfX2xsdm1fbWVtbW92ZV9lbGVtZW50X3Vub3JkZXJlZF9hdG9taWNfNDE3aDA3YmMxYmVjZWM5NTk1ODRFAF9aTjRjb3JlOXBhbmlja2luZzVwYW5pYzE3aGZhY2M4MGYyZGE4MmY2NzRFAF9aTjEwOF8kTFQkY29yZS4uaXRlci4uYWRhcHRlcnMuLmZpbHRlci4uRmlsdGVyJExUJEkkQyRQJEdUJCR1MjAkYXMkdTIwJGNvcmUuLml0ZXIuLnRyYWl0cy4uaXRlcmF0b3IuLkl0ZXJhdG9yJEdUJDVjb3VudDh0b191c2l6ZTI4XyR1N2IkJHU3YiRjbG9zdXJlJHU3ZCQkdTdkJDE3aGFkZGJhNmJlNjJiMTc5NjRFAF9aTjE3Y29tcGlsZXJfYnVpbHRpbnMzbWVtMzFtZW1jcHlfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljMTdoMzNkZjdjNzkwNWI2MmI1NEUAX1pOMTdjb21waWxlcl9idWlsdGluczNtZW01aW1wbHM5c2V0X2J5dGVzMTdoYmQ3ZDgzNjJjZWM0MWEzNEUAX1pONGNvcmU1c2xpY2U2bWVtY2hyMThjb250YWluc196ZXJvX2J5dGUxN2gwY2E0MGMxZDkxMjdiYzE0RQBfWk40Y29yZTNmbXQ4YnVpbGRlcnMxMURlYnVnU3RydWN0OWlzX3ByZXR0eTE3aGI3MmNjYWJmMTFmN2IyMTRFAF9aTjE3Y29tcGlsZXJfYnVpbHRpbnMzbWVtNDBfX2xsdm1fbWVtc2V0X2VsZW1lbnRfdW5vcmRlcmVkX2F0b21pY184MTdoMWJjNGE0MjZjMzE1MTIxNEUAX1pONGNvcmUzcHRyNHJlYWQxN2g1NGM0Mjc3MjJhNGJhYmYzRQBfWk40Y29yZTNmbXQ4YnVpbGRlcnMxMERlYnVnSW5uZXI5aXNfcHJldHR5MTdoZjgxNzM1YzMxYmZjNzJmM0UAX1pONGNvcmUzcHRyOWNvbnN0X3B0cjMzXyRMVCRpbXBsJHUyMCQkQlAkY29uc3QkdTIwJFQkR1QkM3N1YjE3aGFhNzI0YjkxOWM5YzViZTNFAF9aTjRjb3JlM3B0cjljb25zdF9wdHIzM18kTFQkaW1wbCR1MjAkJEJQJGNvbnN0JHUyMCRUJEdUJDNhZGQxN2gwZTQxMjgzZDc4ZTNhY2EzRQBfWk4xMTBfJExUJGNvcmUuLml0ZXIuLmFkYXB0ZXJzLi5lbnVtZXJhdGUuLkVudW1lcmF0ZSRMVCRJJEdUJCR1MjAkYXMkdTIwJGNvcmUuLml0ZXIuLnRyYWl0cy4uaXRlcmF0b3IuLkl0ZXJhdG9yJEdUJDRuZXh0MTdoZDIyYjVkNGMwZDVkYzg5M0UAX1pONGNvcmUxMGludHJpbnNpY3MxN2NvbnN0X2V2YWxfc2VsZWN0MTdoNGYxZTcyMjYwZjljOTU2M0UAX1pONGNvcmU1c2xpY2U2bWVtY2hyNm1lbWNocjE3aDVlMGE4Y2ZhYWFhZjVmNTNFAF9aTjRjb3JlM2ZtdDV3cml0ZTE3aDJiNGY3MWY3MGQzNmRjNTNFAF9aTjRjb3JlM2ZtdDlGb3JtYXR0ZXIxMnBhZF9pbnRlZ3JhbDE3aGJjZTE5NGUxZmIwNDc5NDNFAF9aTjRjb3JlM251bTIxXyRMVCRpbXBsJHUyMCRpNjQkR1QkMTJ3cmFwcGluZ19tdWwxN2hlM2JkMzVhNWFmNTgwOTQzRQBfWk40Y29yZTNmbXQ5Rm9ybWF0dGVyOXNpZ25fcGx1czE3aGU0ZTYyMWRhZmIyODI5MjNFAF9aTjE3Y29tcGlsZXJfYnVpbHRpbnMzbWVtMzJtZW1tb3ZlX2VsZW1lbnRfdW5vcmRlcmVkX2F0b21pYzE3aGU0YjU3YzAxZjVjMjA4MjNFAF9aTjRjb3JlNXNsaWNlMjlfJExUJGltcGwkdTIwJCR1NWIkVCR1NWQkJEdUJDNnZXQxN2g5YzQyNDgyZGIxMWQ1ZTEzRQBfWk40Y29yZTVzbGljZTRpdGVyMTNJdGVyJExUJFQkR1QkMTRwb3N0X2luY19zdGFydDE3aDdhOWRiYzhhM2ZmM2VhZTJFAF9aTjRjb3JlM3B0cjljb25zdF9wdHIzM18kTFQkaW1wbCR1MjAkJEJQJGNvbnN0JHUyMCRUJEdUJDNhZGQxN2hlM2NhOTBkNTRiZTFkMmUyRQBfWk40Y29yZTVzbGljZTZtZW1jaHIxOW1lbWNocl9nZW5lcmFsX2Nhc2UyOF8kdTdiJCR1N2IkY2xvc3VyZSR1N2QkJHU3ZCQxN2hhYmViMmQyMzM1MGE3MWEyRQBfWk40Y29yZTNvcHM1cmFuZ2UyN1JhbmdlSW5jbHVzaXZlJExUJHVzaXplJEdUJDE2aW50b19zbGljZV9yYW5nZTE3aDg5ZGQ3NTZmMTdmNGY5OTJFAF9aTjE3Y29tcGlsZXJfYnVpbHRpbnMzbWVtNDFfX2xsdm1fbWVtbW92ZV9lbGVtZW50X3Vub3JkZXJlZF9hdG9taWNfMTE3aGUwZjA0Y2RhMGZkY2EyOTJFAF9aTjRjb3JlM3B0cjljb25zdF9wdHIzM18kTFQkaW1wbCR1MjAkJEJQJGNvbnN0JHUyMCRUJEdUJDZvZmZzZXQxN2gwYjI3YmM0YzNkZDIwMjkyRQBfWk40Y29yZTNudW0yM18kTFQkaW1wbCR1MjAkaXNpemUkR1QkMTJ3cmFwcGluZ19uZWcxN2g0ODI0MDU1OGY4OGFkZTcyRQBfWk40Y29yZTNmbXQ4YnVpbGRlcnMxMURlYnVnU3RydWN0NWZpZWxkMjhfJHU3YiQkdTdiJGNsb3N1cmUkdTdkJCR1N2QkMTdoMDRiMmZkNmMxZjJhYzA3MkUAX1pONGNvcmUzZm10OGJ1aWxkZXJzMTBEZWJ1Z1R1cGxlNmZpbmlzaDE3aDA4ZTdmNGQ1MzE3MjFlNjJFAF9aTjRjb3JlNGl0ZXI4YWRhcHRlcnMzbWFwOG1hcF9mb2xkMjhfJHU3YiQkdTdiJGNsb3N1cmUkdTdkJCR1N2QkMTdoZDAzZjM3YjBhNDMyNjE2MkUAX1pONGNvcmU2cmVzdWx0MTlSZXN1bHQkTFQkVCRDJEUkR1QkOGFuZF90aGVuMTdoOGQ2NDNkNTU2NWU3Zjk1MkUAX1pONGNvcmU2cmVzdWx0MTlSZXN1bHQkTFQkVCRDJEUkR1QkOGFuZF90aGVuMTdoMjdlNGQxMWM1NTIwNTU1MkUAX1pONGNvcmUzc3RyNnRyYWl0czExMl8kTFQkaW1wbCR1MjAkY29yZS4uc2xpY2UuLmluZGV4Li5TbGljZUluZGV4JExUJHN0ciRHVCQkdTIwJGZvciR1MjAkY29yZS4ub3BzLi5yYW5nZS4uUmFuZ2VGcm9tJExUJHVzaXplJEdUJCRHVCQxM2dldF91bmNoZWNrZWQxN2gzNjA1ODkzNzZlY2I3MDUyRQBfWk40Y29yZTNudW0yM18kTFQkaW1wbCR1MjAkdXNpemUkR1QkMTJ3cmFwcGluZ19uZWcxN2hkOTg4NzJiYzY0OGUxNjMyRQBfWk40Y29yZTNudW0yM18kTFQkaW1wbCR1MjAkaXNpemUkR1QkMTJ3cmFwcGluZ19zdWIxN2g5MGY0NGM3ODlhMjI2YjIyRQBfWk40Y29yZTNjbXA1aW1wbHM2OV8kTFQkaW1wbCR1MjAkY29yZS4uY21wLi5QYXJ0aWFsRXEkTFQkJFJGJEIkR1QkJHUyMCRmb3IkdTIwJCRSRiRBJEdUJDJlcTE3aDAyY2FkOTlmMmI0OTc4ZTFFAF9aTjRjb3JlM2ZtdDVXcml0ZTl3cml0ZV9mbXQxN2g3MjdiNDM1NjYwNTgzZWMxRQBfWk40OV8kTFQkdXNpemUkdTIwJGFzJHUyMCRjb3JlLi5pdGVyLi5yYW5nZS4uU3RlcCRHVCQxN2ZvcndhcmRfdW5jaGVja2VkMTdoZmYzMGIwNWQzZjVkYTFjMUUAX1pONGNvcmUzZm10M251bTNpbXA3Zm10X3U2NDE3aGU0YzgwZDdmOGZhNmNjYjFFAF9aTjRjb3JlM2ZtdDhidWlsZGVyczEwUGFkQWRhcHRlcjR3cmFwMjhfJHU3YiQkdTdiJGNsb3N1cmUkdTdkJCR1N2QkMTdoNDJlYjhiMTYzY2JhN2NiMUUAX1pONGNvcmUzb3BzOGZ1bmN0aW9uNkZuT25jZTljYWxsX29uY2UxN2hjNmZlZTJiYWI1NmY5NTkxRQBfWk40Y29yZTNwdHI5Y29uc3RfcHRyMzNfJExUJGltcGwkdTIwJCRCUCRjb25zdCR1MjAkVCRHVCQzYWRkMTdoNTcwYzQ3MjllYTlmMTQ5MUUAX1pONGNvcmUzc3RyNWNvdW50MjNjaGFyX2NvdW50X2dlbmVyYWxfY2FzZTI4XyR1N2IkJHU3YiRjbG9zdXJlJHU3ZCQkdTdkJDE3aDVmYmEyYWZjZTc1NDAxNzFFAF9aTjRjb3JlM2ZtdDlGb3JtYXR0ZXI4d3JhcF9idWYxN2gxNjRiYmExNTVmMmVlYjUxRQBfWk4xN2NvbXBpbGVyX2J1aWx0aW5zM21lbTdtZW1tb3ZlMTdoZmQyY2E4MzdjMDQ3NzAzMUUAX1pOMTdjb21waWxlcl9idWlsdGluczNtZW0zMW1lbXNldF9lbGVtZW50X3Vub3JkZXJlZF9hdG9taWMxN2gxZTc1YWZmOWEzZThkZTExRQBfWk40Y29yZTNzdHIyMV8kTFQkaW1wbCR1MjAkc3RyJEdUJDE5Zmxvb3JfY2hhcl9ib3VuZGFyeTE3aDIzMWY2Zjk4YWM0NzlkMTFFAF9aTjRjb3JlM2ZtdDhidWlsZGVyczEwRGVidWdJbm5lcjVlbnRyeTE3aGI1YzcxZmE3ZjRkYzc2MDFFAF9aTjE3Y29tcGlsZXJfYnVpbHRpbnMzbWVtNWltcGxzMTNjb3B5X2JhY2t3YXJkMjdjb3B5X2JhY2t3YXJkX2FsaWduZWRfd29yZHMxN2hhMWE0ZGJmNzMzYjcxMDAxRQBfWk40Y29yZTZvcHRpb24xNU9wdGlvbiRMVCRUJEdUJDZpbnNlcnQxN2gwNmViODc3NDZmZWE0ZmUwRQBfWk40Y29yZTNzdHIxOXNsaWNlX2Vycm9yX2ZhaWxfcnQxN2gyYjRkN2ViZDVhMzhiYmMwRQBfWk4xN2NvbXBpbGVyX2J1aWx0aW5zM21lbTMxbWVtY3B5X2VsZW1lbnRfdW5vcmRlcmVkX2F0b21pYzE3aDVlNTc4OGY1MGFkYTllYTBFAF9aTjUwXyRMVCQkUkYkbXV0JHUyMCRXJHUyMCRhcyR1MjAkY29yZS4uZm10Li5Xcml0ZSRHVCQ5d3JpdGVfc3RyMTdoNmI4MGE2MGU1MjQ2MzFhMEUAX1pOMTdjb21waWxlcl9idWlsdGluczNtZW0zMW1lbWNweV9lbGVtZW50X3Vub3JkZXJlZF9hdG9taWMxN2g0NDgwZWQ0OThiZWFmZDkwRQBfWk40Y29yZTNwdHI5Y29uc3RfcHRyMzNfJExUJGltcGwkdTIwJCRCUCRjb25zdCR1MjAkVCRHVCQ2b2Zmc2V0MTdoNTdjYWViOTVhZjU4MzY5MEUAX1pOMTdjb21waWxlcl9idWlsdGluczNtZW00YmNtcDE3aDUzYjBlMzE2OGM1OGRiODBFAF9aTjRjb3JlM3B0cjljb25zdF9wdHIzM18kTFQkaW1wbCR1MjAkJEJQJGNvbnN0JHUyMCRUJEdUJDNhZGQxN2g2MjliODgzNGM5ZGJhYTgwRQBfWk4xN2NvbXBpbGVyX2J1aWx0aW5zM2ludDNtdWw4X19tdWx0aTMxN2hmNjM4Yzk1ZDNlMWRiMjgwRQBfWk4xN2NvbXBpbGVyX2J1aWx0aW5zM21lbTVpbXBsczEzY29weV9iYWNrd2FyZDMwY29weV9iYWNrd2FyZF9taXNhbGlnbmVkX3dvcmRzMTdoMTA5NDZhMmFmMGExMjI4MEUAX1pONGNvcmUzZm10OGJ1aWxkZXJzMTBQYWRBZGFwdGVyNHdyYXAxN2hmYzY3YzYzYmI0OWRlNjYwRQBfWk45MV8kTFQkY29yZS4uc2xpY2UuLml0ZXIuLkl0ZXIkTFQkVCRHVCQkdTIwJGFzJHUyMCRjb3JlLi5pdGVyLi50cmFpdHMuLml0ZXJhdG9yLi5JdGVyYXRvciRHVCQ4cG9zaXRpb24xN2g3YzMyZDZkNjRkNDFkYTUwRQBfWk40Y29yZTNmbXQ5Rm9ybWF0dGVyMjVkZWJ1Z190dXBsZV9maWVsZDFfZmluaXNoMTdoZTQzZjFlMmZhYzg1ODI0MEUAX1pONGNvcmU0aXRlcjZ0cmFpdHM4aXRlcmF0b3I4SXRlcmF0b3I0Zm9sZDE3aGJlMDYyNTgwZGY1YTVjMzBFAF9aTjRjb3JlM3B0cjljb25zdF9wdHIzM18kTFQkaW1wbCR1MjAkJEJQJGNvbnN0JHUyMCRUJEdUJDZvZmZzZXQxN2g5OGM0YjE5MDMwNWUwMTMwRQBfWk45MV8kTFQkY29yZS4uc2xpY2UuLml0ZXIuLkl0ZXIkTFQkVCRHVCQkdTIwJGFzJHUyMCRjb3JlLi5pdGVyLi50cmFpdHMuLml0ZXJhdG9yLi5JdGVyYXRvciRHVCQ0bmV4dDE3aDg4OWQzYjMxMTRjOGEyMjBFAG1hcDx1c2l6ZSwgdXNpemUsIGNvcmU6OnNsaWNlOjptZW1jaHI6Om1lbWNocl9nZW5lcmFsX2Nhc2U6OntjbG9zdXJlX2VudiMyfT4AcG9zaXRpb248dTgsIGNvcmU6OnNsaWNlOjptZW1jaHI6Om1lbWNocl9nZW5lcmFsX2Nhc2U6OntjbG9zdXJlX2VudiMxfT4AYW5kX3RoZW48KCksIGNvcmU6OmZtdDo6RXJyb3IsICgpLCBjb3JlOjpmbXQ6OmJ1aWxkZXJzOjp7aW1wbCM1fTo6ZW50cnk6OntjbG9zdXJlX2VudiMwfT4AcnBvc2l0aW9uPHU4LCBjb3JlOjpzdHI6OntpbXBsIzB9OjpmbG9vcl9jaGFyX2JvdW5kYXJ5Ojp7Y2xvc3VyZV9lbnYjMH0+AHBvc2l0aW9uPHU4LCBjb3JlOjpzbGljZTo6bWVtY2hyOjptZW1jaHI6OntjbG9zdXJlX2VudiMwfT4Ad3JhcF9idWY8Y29yZTo6Zm10OjpidWlsZGVyczo6e2ltcGwjMX06OndyYXA6OntjbG9zdXJlX2VudiMwfT4AYW5kX3RoZW48KCksIGNvcmU6OmZtdDo6RXJyb3IsICgpLCBjb3JlOjpmbXQ6OmJ1aWxkZXJzOjp7aW1wbCM0fTo6ZmluaXNoOjp7Y2xvc3VyZV9lbnYjMH0+AGNvdW50PGNvcmU6OnNsaWNlOjppdGVyOjpJdGVyPHU4PiwgY29yZTo6c3RyOjpjb3VudDo6Y2hhcl9jb3VudF9nZW5lcmFsX2Nhc2U6OntjbG9zdXJlX2VudiMwfT4Ae2Nsb3N1cmUjMH08JnU4LCBjb3JlOjpzdHI6OmNvdW50OjpjaGFyX2NvdW50X2dlbmVyYWxfY2FzZTo6e2Nsb3N1cmVfZW52IzB9PgBwb3NpdGlvbjx1OCwgY29yZTo6c2xpY2U6Om1lbWNocjo6bWVtY2hyX2dlbmVyYWxfY2FzZTo6e2Nsb3N1cmVfZW52IzB9PgBhbmRfdGhlbjwoKSwgY29yZTo6Zm10OjpFcnJvciwgKCksIGNvcmU6OmZtdDo6YnVpbGRlcnM6OntpbXBsIzR9OjpmaWVsZDo6e2Nsb3N1cmVfZW52IzB9PgBhbmRfdGhlbjwoKSwgY29yZTo6Zm10OjpFcnJvciwgKCksIGNvcmU6OmZtdDo6YnVpbGRlcnM6OntpbXBsIzN9OjpmaWVsZDo6e2Nsb3N1cmVfZW52IzB9PgBuZXh0PGNvcmU6OmZtdDo6cnQ6OnYxOjpBcmd1bWVudD4Ad3JpdGU8Y29yZTo6Zm10OjpydDo6djE6OkFsaWdubWVudD4AcmVwbGFjZTxjb3JlOjpmbXQ6OnJ0Ojp2MTo6QWxpZ25tZW50PgByZWFkPGNvcmU6OmZtdDo6cnQ6OnYxOjpBbGlnbm1lbnQ+AGdldDwmc3RyPgBicmFuY2g8Y29yZTo6Zm10OjpQb3N0UGFkZGluZywgY29yZTo6Zm10OjpFcnJvcj4AaW5zZXJ0PGNvcmU6OmZtdDo6YnVpbGRlcnM6OlBhZEFkYXB0ZXI+AHdyaXRlX2ZtdDxjb3JlOjpmbXQ6OmJ1aWxkZXJzOjpQYWRBZGFwdGVyPgB3cml0ZV9zdHI8Y29yZTo6Zm10OjpidWlsZGVyczo6UGFkQWRhcHRlcj4Ad3JpdGVfY2hhcjxjb3JlOjpmbXQ6OmJ1aWxkZXJzOjpQYWRBZGFwdGVyPgB1bndyYXA8Y2hhcj4Ad3JpdGU8Y2hhcj4AcmVwbGFjZTxjaGFyPgBmaW5kPGNoYXI+AHJlYWQ8Y2hhcj4Ac3BlY19uZXh0PHVzaXplPgBvZmZzZXQ8dXNpemU+AG1pbjx1c2l6ZT4AcmVhZF92b2xhdGlsZTx1c2l6ZT4AYWRkPHVzaXplPgBzdWI8dXNpemU+AGdldDwmc3RyLCB1c2l6ZT4AY29uc3RfZXZhbF9zZWxlY3Q8KCpjb25zdCB1OCwgdXNpemUpLCBmbigqY29uc3QgdTgsIHVzaXplKSAtPiB1c2l6ZSwgZm4oKmNvbnN0IHU4LCB1c2l6ZSkgLT4gdXNpemUsIHVzaXplPgBzdW08Y29yZTo6aXRlcjo6YWRhcHRlcnM6Om1hcDo6TWFwPGNvcmU6OnNsaWNlOjppdGVyOjpJdGVyPHU4PiwgY29yZTo6aXRlcjo6YWRhcHRlcnM6OmZpbHRlcjo6e2ltcGwjMn06OmNvdW50Ojp0b191c2l6ZTo6e2Nsb3N1cmVfZW52IzB9PCZ1OCwgY29yZTo6c3RyOjpjb3VudDo6Y2hhcl9jb3VudF9nZW5lcmFsX2Nhc2U6OntjbG9zdXJlX2VudiMwfT4+LCB1c2l6ZT4AZ2V0PHU4LCB1c2l6ZT4AZ2V0X3VuY2hlY2tlZDxjb3JlOjpmbXQ6OkFyZ3VtZW50VjEsIHVzaXplPgBlcTxbdThdLCBbdThdPgBuZXh0PGNvcmU6OnNsaWNlOjppdGVyOjpJdGVyPGNvcmU6OmZtdDo6cnQ6OnYxOjpBcmd1bWVudD4+AGluZGV4PGNvcmU6Om9wczo6cmFuZ2U6OlJhbmdlVG88dXNpemU+PgBpbmRleDxjb3JlOjpvcHM6OnJhbmdlOjpSYW5nZUZyb208dXNpemU+PgBpbmRleDx1OCwgY29yZTo6b3BzOjpyYW5nZTo6UmFuZ2VGcm9tPHVzaXplPj4AaW5kZXg8dTgsIGNvcmU6Om9wczo6cmFuZ2U6OlJhbmdlSW5jbHVzaXZlPHVzaXplPj4AZ2V0PHU4LCBjb3JlOjpvcHM6OnJhbmdlOjpSYW5nZTx1c2l6ZT4+AHtjbG9zdXJlIzB9PGNvcmU6Oml0ZXI6OmFkYXB0ZXJzOjptYXA6Ok1hcDxjb3JlOjpzbGljZTo6aXRlcjo6SXRlcjx1OD4sIGNvcmU6Oml0ZXI6OmFkYXB0ZXJzOjpmaWx0ZXI6OntpbXBsIzJ9Ojpjb3VudDo6dG9fdXNpemU6OntjbG9zdXJlX2VudiMwfTwmdTgsIGNvcmU6OnN0cjo6Y291bnQ6OmNoYXJfY291bnRfZ2VuZXJhbF9jYXNlOjp7Y2xvc3VyZV9lbnYjMH0+Pj4Ac3VtPGNvcmU6Oml0ZXI6OmFkYXB0ZXJzOjptYXA6Ok1hcDxjb3JlOjpzbGljZTo6aXRlcjo6SXRlcjx1OD4sIGNvcmU6Oml0ZXI6OmFkYXB0ZXJzOjpmaWx0ZXI6OntpbXBsIzJ9Ojpjb3VudDo6dG9fdXNpemU6OntjbG9zdXJlX2VudiMwfTwmdTgsIGNvcmU6OnN0cjo6Y291bnQ6OmNoYXJfY291bnRfZ2VuZXJhbF9jYXNlOjp7Y2xvc3VyZV9lbnYjMH0+Pj4AZm9sZDx1c2l6ZSwgY29yZTo6c2xpY2U6Oml0ZXI6Okl0ZXI8dTg+LCBjb3JlOjppdGVyOjphZGFwdGVyczo6ZmlsdGVyOjp7aW1wbCMyfTo6Y291bnQ6OnRvX3VzaXplOjp7Y2xvc3VyZV9lbnYjMH08JnU4LCBjb3JlOjpzdHI6OmNvdW50OjpjaGFyX2NvdW50X2dlbmVyYWxfY2FzZTo6e2Nsb3N1cmVfZW52IzB9PiwgdXNpemUsIGNvcmU6Oml0ZXI6OnRyYWl0czo6YWNjdW06OntpbXBsIzQ4fTo6c3VtOjp7Y2xvc3VyZV9lbnYjMH08Y29yZTo6aXRlcjo6YWRhcHRlcnM6Om1hcDo6TWFwPGNvcmU6OnNsaWNlOjppdGVyOjpJdGVyPHU4PiwgY29yZTo6aXRlcjo6YWRhcHRlcnM6OmZpbHRlcjo6e2ltcGwjMn06OmNvdW50Ojp0b191c2l6ZTo6e2Nsb3N1cmVfZW52IzB9PCZ1OCwgY29yZTo6c3RyOjpjb3VudDo6Y2hhcl9jb3VudF9nZW5lcmFsX2Nhc2U6OntjbG9zdXJlX2VudiMwfT4+Pj4Ae2Nsb3N1cmUjMH08JnU4LCB1c2l6ZSwgdXNpemUsIGNvcmU6Oml0ZXI6OmFkYXB0ZXJzOjpmaWx0ZXI6OntpbXBsIzJ9Ojpjb3VudDo6dG9fdXNpemU6OntjbG9zdXJlX2VudiMwfTwmdTgsIGNvcmU6OnN0cjo6Y291bnQ6OmNoYXJfY291bnRfZ2VuZXJhbF9jYXNlOjp7Y2xvc3VyZV9lbnYjMH0+LCBjb3JlOjppdGVyOjp0cmFpdHM6OmFjY3VtOjp7aW1wbCM0OH06OnN1bTo6e2Nsb3N1cmVfZW52IzB9PGNvcmU6Oml0ZXI6OmFkYXB0ZXJzOjptYXA6Ok1hcDxjb3JlOjpzbGljZTo6aXRlcjo6SXRlcjx1OD4sIGNvcmU6Oml0ZXI6OmFkYXB0ZXJzOjpmaWx0ZXI6OntpbXBsIzJ9Ojpjb3VudDo6dG9fdXNpemU6OntjbG9zdXJlX2VudiMwfTwmdTgsIGNvcmU6OnN0cjo6Y291bnQ6OmNoYXJfY291bnRfZ2VuZXJhbF9jYXNlOjp7Y2xvc3VyZV9lbnYjMH0+Pj4+AGZvbGQ8Y29yZTo6c2xpY2U6Oml0ZXI6Okl0ZXI8dTg+LCB1c2l6ZSwgY29yZTo6aXRlcjo6YWRhcHRlcnM6Om1hcDo6bWFwX2ZvbGQ6OntjbG9zdXJlX2VudiMwfTwmdTgsIHVzaXplLCB1c2l6ZSwgY29yZTo6aXRlcjo6YWRhcHRlcnM6OmZpbHRlcjo6e2ltcGwjMn06OmNvdW50Ojp0b191c2l6ZTo6e2Nsb3N1cmVfZW52IzB9PCZ1OCwgY29yZTo6c3RyOjpjb3VudDo6Y2hhcl9jb3VudF9nZW5lcmFsX2Nhc2U6OntjbG9zdXJlX2VudiMwfT4sIGNvcmU6Oml0ZXI6OnRyYWl0czo6YWNjdW06OntpbXBsIzQ4fTo6c3VtOjp7Y2xvc3VyZV9lbnYjMH08Y29yZTo6aXRlcjo6YWRhcHRlcnM6Om1hcDo6TWFwPGNvcmU6OnNsaWNlOjppdGVyOjpJdGVyPHU4PiwgY29yZTo6aXRlcjo6YWRhcHRlcnM6OmZpbHRlcjo6e2ltcGwjMn06OmNvdW50Ojp0b191c2l6ZTo6e2Nsb3N1cmVfZW52IzB9PCZ1OCwgY29yZTo6c3RyOjpjb3VudDo6Y2hhcl9jb3VudF9nZW5lcmFsX2Nhc2U6OntjbG9zdXJlX2VudiMwfT4+Pj4+AG5leHRfY29kZV9wb2ludDxjb3JlOjpzbGljZTo6aXRlcjo6SXRlcjx1OD4+AG5leHQ8Y29yZTo6c2xpY2U6Oml0ZXI6Okl0ZXI8Y29yZTo6Zm10OjpBcmd1bWVudFYxPj4AaW5kZXg8dTg+AG5leHQ8dTg+AHBvc3RfaW5jX3N0YXJ0PHU4PgBhbGlnbl9vZmZzZXQ8dTg+AGdldDx1OD4AcnRfaW1wbDx1OD4AbmV4dF9iYWNrPHU4PgBjb3B5X25vbm92ZXJsYXBwaW5nPHU4PgBwcmVfZGVjX2VuZDx1OD4AYWRkPHU4PgBtZW1jcHlfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljPHU4PgBtZW1zZXRfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljPHU4PgBtZW1tb3ZlX2VsZW1lbnRfdW5vcmRlcmVkX2F0b21pYzx1OD4Ac3ViPHU4PgBlcTx1OCwgdTg+AGVxdWFsPHU4LCB1OD4AbXVsPGkxMjg+AG9mZnNldDx1MTY+AGFkZDx1MTY+AG1lbWNweV9lbGVtZW50X3Vub3JkZXJlZF9hdG9taWM8dTE2PgBtZW1zZXRfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljPHUxNj4AbWVtbW92ZV9lbGVtZW50X3Vub3JkZXJlZF9hdG9taWM8dTE2PgBvZmZzZXQ8dTY0PgBhZGQ8dTY0PgBtZW1jcHlfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljPHU2ND4AbWVtc2V0X2VsZW1lbnRfdW5vcmRlcmVkX2F0b21pYzx1NjQ+AG1lbW1vdmVfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljPHU2ND4Ab2Zmc2V0PHUzMj4AYWRkPHUzMj4AbWVtY3B5X2VsZW1lbnRfdW5vcmRlcmVkX2F0b21pYzx1MzI+AG1lbXNldF9lbGVtZW50X3Vub3JkZXJlZF9hdG9taWM8dTMyPgBtZW1tb3ZlX2VsZW1lbnRfdW5vcmRlcmVkX2F0b21pYzx1MzI+AG5leHQ8Y29yZTo6Zm10OjpBcmd1bWVudFYxPgBvZmZzZXQ8Y29yZTo6Zm10OjpBcmd1bWVudFYxPgBnZXRfdW5jaGVja2VkPGNvcmU6OmZtdDo6QXJndW1lbnRWMT4AYWRkPGNvcmU6OmZtdDo6QXJndW1lbnRWMT4AY2FsbF9vbmNlPGNvcmU6OmZtdDo6VVNJWkVfTUFSS0VSOjp7Y2xvc3VyZV9lbnYjMH0sICgmdXNpemUsICZtdXQgY29yZTo6Zm10OjpGb3JtYXR0ZXIpPgBjYWxsX29uY2U8Zm4odXNpemUsIHVzaXplKSAtPiAhLCAodXNpemUsIHVzaXplKT4AY2FsbF9vbmNlPGZuKCZzdHIsIHVzaXplLCB1c2l6ZSkgLT4gISwgKCZzdHIsIHVzaXplLCB1c2l6ZSk+AGNhbGxfb25jZTxmbigqY29uc3QgdTgsIHVzaXplKSAtPiB1c2l6ZSwgKCpjb25zdCB1OCwgdXNpemUpPgBjb25zdF9ldmFsX3NlbGVjdDwodXNpemUsIHVzaXplKSwgZm4odXNpemUsIHVzaXplKSAtPiAhLCBmbih1c2l6ZSwgdXNpemUpIC0+ICEsICE+AGNvbnN0X2V2YWxfc2VsZWN0PCgmc3RyLCB1c2l6ZSwgdXNpemUpLCBmbigmc3RyLCB1c2l6ZSwgdXNpemUpIC0+ICEsIGZuKCZzdHIsIHVzaXplLCB1c2l6ZSkgLT4gISwgIT4AL2NhcmdvL3JlZ2lzdHJ5L3NyYy9naXRodWIuY29tLTFlY2M2Mjk5ZGI5ZWM4MjMvY29tcGlsZXJfYnVpbHRpbnMtMC4xLjczL3NyYy9saWIucnMvQC9jb21waWxlcl9idWlsdGlucy4zNjk4YjFjOC1jZ3UuMjU5AGxlbl91dGY4AGVuY29kZV91dGY4AF9fbGx2bV9tZW1jcHlfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljXzgAX19sbHZtX21lbXNldF9lbGVtZW50X3Vub3JkZXJlZF9hdG9taWNfOABfX2xsdm1fbWVtbW92ZV9lbGVtZW50X3Vub3JkZXJlZF9hdG9taWNfOABfX2xsdm1fbWVtY3B5X2VsZW1lbnRfdW5vcmRlcmVkX2F0b21pY180AF9fbGx2bV9tZW1zZXRfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljXzQAX19sbHZtX21lbW1vdmVfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljXzQAZm10X3U2NAAvY2FyZ28vcmVnaXN0cnkvc3JjL2dpdGh1Yi5jb20tMWVjYzYyOTlkYjllYzgyMy9jb21waWxlcl9idWlsdGlucy0wLjEuNzMvc3JjL2xpYi5ycy9AL2NvbXBpbGVyX2J1aWx0aW5zLjM2OThiMWM4LWNndS4xNTQAX19tdWx0aTMAL2NhcmdvL3JlZ2lzdHJ5L3NyYy9naXRodWIuY29tLTFlY2M2Mjk5ZGI5ZWM4MjMvY29tcGlsZXJfYnVpbHRpbnMtMC4xLjczAF9fbGx2bV9tZW1jcHlfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljXzIAX19sbHZtX21lbXNldF9lbGVtZW50X3Vub3JkZXJlZF9hdG9taWNfMgBfX2xsdm1fbWVtbW92ZV9lbGVtZW50X3Vub3JkZXJlZF9hdG9taWNfMgBfX2xsdm1fbWVtY3B5X2VsZW1lbnRfdW5vcmRlcmVkX2F0b21pY18xAF9fbGx2bV9tZW1zZXRfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljXzEAX19sbHZtX21lbW1vdmVfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljXzEAQXJndW1lbnRWMQAvY2FyZ28vcmVnaXN0cnkvc3JjL2dpdGh1Yi5jb20tMWVjYzYyOTlkYjllYzgyMy9jb21waWxlcl9idWlsdGlucy0wLjEuNzMvc3JjL2xpYi5ycy9AL2NvbXBpbGVyX2J1aWx0aW5zLjM2OThiMWM4LWNndS4xAC9ydXN0Yy80NDkzYTBmNDcyNGMwYmFlMTQzNjI0MmQ3NmNjY2M5YzBhMjg3YjgwAC9jYXJnby9yZWdpc3RyeS9zcmMvZ2l0aHViLmNvbS0xZWNjNjI5OWRiOWVjODIzL2NvbXBpbGVyX2J1aWx0aW5zLTAuMS43My9zcmMvbGliLnJzL0AvY29tcGlsZXJfYnVpbHRpbnMuMzY5OGIxYzgtY2d1LjEyMABsaWJyYXJ5L2NvcmUvc3JjL2xpYi5ycy9AL2NvcmUuZjJhZjA2ZjUtY2d1LjAAbGlicmFyeS9hbGxvYy9zcmMvbGliLnJzL0AvYWxsb2MuOTFiNTE0MjMtY2d1LjAAY2xhbmcgTExWTSAocnVzdGMgdmVyc2lvbiAxLjY0LjAtbmlnaHRseSAoNDQ5M2EwZjQ3IDIwMjItMDgtMDIpKQAAvEYPLmRlYnVnX3B1Ym5hbWVzOgAAAAIAAAAAAE8AAAAwAAAAY2FwYWNpdHlfb3ZlcmZsb3cAKwAAAHJhd192ZWMAJgAAAGFsbG9jAAAAAACtGgAAAgBPAAAAaBoAAG8VAABmbG9vcl9jaGFyX2JvdW5kYXJ5ADgBAAB3cml0ZTxjaGFyPgD9FQAAZ2V0X3VuY2hlY2tlZADeAAAAbXV0X3B0cgAeGgAAaW5zZXJ0PGNvcmU6OmZtdDo6YnVpbGRlcnM6OlBhZEFkYXB0ZXI+AEsRAABwb3NpdGlvbjx1OCwgY29yZTo6c2xpY2U6Om1lbWNocjo6bWVtY2hyX2dlbmVyYWxfY2FzZTo6e2Nsb3N1cmVfZW52IzB9PgCEGQAAdW5jaGVja2VkX2FkZADjEAAAY29weV9ub25vdmVybGFwcGluZzx1OD4AWwIAAEZvcm1hdHRlcgBOFAAAc3BlY19uZXh0PHVzaXplPgBqDQAARGVidWdTZXQAPxkAAFJlc3VsdAD6FAAAbmV4dF9jb2RlX3BvaW50PGNvcmU6OnNsaWNlOjppdGVyOjpJdGVyPHU4Pj4AMAAAAHJlYWRfdm9sYXRpbGU8dXNpemU+AA8UAAB7Y2xvc3VyZSMwfTwmdTgsIGNvcmU6OnN0cjo6Y291bnQ6OmNoYXJfY291bnRfZ2VuZXJhbF9jYXNlOjp7Y2xvc3VyZV9lbnYjMH0+AN8ZAAByZXBsYWNlPGNoYXI+AJ8SAABnZXQ8JnN0ciwgdXNpemU+AFYVAABpc19jaGFyX2JvdW5kYXJ5AAsZAAByZXN1bHQA8BAAAGNvbnN0X2V2YWxfc2VsZWN0PCh1c2l6ZSwgdXNpemUpLCBmbih1c2l6ZSwgdXNpemUpIC0+ICEsIGZuKHVzaXplLCB1c2l6ZSkgLT4gISwgIT4A1Q8AAGZ1bmN0aW9uAAUUAABjb3VudACUAgAAcGFkX2ludGVncmFsAMIAAABhZGQ8dTg+AJ4ZAAB3cmFwcGluZ19zdWIAZREAAHBvc2l0aW9uPHU4LCBjb3JlOjpzbGljZTo6bWVtY2hyOjptZW1jaHJfZ2VuZXJhbF9jYXNlOjp7Y2xvc3VyZV9lbnYjMX0+AHsQAABwYW5pY2tpbmcAfBQAAHtpbXBsIzM1fQAQGQAAe2ltcGwjMjd9AEQQAABjYWxsX29uY2U8Zm4oJnN0ciwgdXNpemUsIHVzaXplKSAtPiAhLCAoJnN0ciwgdXNpemUsIHVzaXplKT4AqAAAAGFsaWduX29mZnNldDx1OD4AERoAAHVud3JhcDxjaGFyPgBtAgAAYWx0ZXJuYXRlAMgYAABsdADcEwAAbWFwX2ZvbGQAbQEAAGZtdAA/EQAAbmV4dDxjb3JlOjpmbXQ6OnJ0Ojp2MTo6QXJndW1lbnQ+ABYHAABBcmd1bWVudFYxAC0TAABjb250YWluc196ZXJvX2J5dGUACQcAAHJ1bgDrBgAAd3JpdGVfcHJlZml4ANoPAABGbk9uY2UAyBEAAGdldDwmc3RyPgA9AAAAY29uc3RfcHRyAJoAAABydF9pbXBsPHU4PgA1FQAAbmV4dF9tYXRjaAC5EgAAZ2V0PHU4LCBjb3JlOjpvcHM6OnJhbmdlOjpSYW5nZTx1c2l6ZT4+AFIBAAB3cml0ZTxjb3JlOjpmbXQ6OnJ0Ojp2MTo6QWxpZ25tZW50PgCAEQAASXRlcgCQFAAAc3RyAMUTAABtYXAAKxUAAHBhdHRlcm4AIxkAAHVud3JhcF9mYWlsZWQAnQ4AAGZpbmlzaABrGQAAYW5kX3RoZW48KCksIGNvcmU6OmZtdDo6RXJyb3IsICgpLCBjb3JlOjpmbXQ6OmJ1aWxkZXJzOjp7aW1wbCM0fTo6ZmluaXNoOjp7Y2xvc3VyZV9lbnYjMH0+AIgAAABhZGQ8Y29yZTo6Zm10OjpBcmd1bWVudFYxPgAnEQAAbmV4dDx1OD4ARBkAAGFuZF90aGVuPCgpLCBjb3JlOjpmbXQ6OkVycm9yLCAoKSwgY29yZTo6Zm10OjpidWlsZGVyczo6e2ltcGwjM306OmZpZWxkOjp7Y2xvc3VyZV9lbnYjMH0+ABgRAABzbGljZQDFFQAAaW5kZXg8Y29yZTo6b3BzOjpyYW5nZTo6UmFuZ2VUbzx1c2l6ZT4+AAoUAAB0b191c2l6ZQCFEQAAcG9zdF9pbmNfc3RhcnQ8dTg+AMUUAABpdGVyAKsTAABzdW0AwxgAAHtpbXBsIzU0fQBYDgAARGVidWdUdXBsZQBRGQAAYW5kX3RoZW48KCksIGNvcmU6OmZtdDo6RXJyb3IsICgpLCBjb3JlOjpmbXQ6OmJ1aWxkZXJzOjp7aW1wbCM1fTo6ZW50cnk6OntjbG9zdXJlX2VudiMwfT4AKA8AAHtpbXBsIzB9ALIUAABjaGFyX2NvdW50X2dlbmVyYWxfY2FzZQB4BQAAZGVidWdfdHVwbGVfZmllbGQxX2ZpbmlzaADPEwAAZm9sZDx1c2l6ZSwgY29yZTo6c2xpY2U6Oml0ZXI6Okl0ZXI8dTg+LCBjb3JlOjppdGVyOjphZGFwdGVyczo6ZmlsdGVyOjp7aW1wbCMyfTo6Y291bnQ6OnRvX3VzaXplOjp7Y2xvc3VyZV9lbnYjMH08JnU4LCBjb3JlOjpzdHI6OmNvdW50OjpjaGFyX2NvdW50X2dlbmVyYWxfY2FzZTo6e2Nsb3N1cmVfZW52IzB9PiwgdXNpemUsIGNvcmU6Oml0ZXI6OnRyYWl0czo6YWNjdW06OntpbXBsIzQ4fTo6c3VtOjp7Y2xvc3VyZV9lbnYjMH08Y29yZTo6aXRlcjo6YWRhcHRlcnM6Om1hcDo6TWFwPGNvcmU6OnNsaWNlOjppdGVyOjpJdGVyPHU4PiwgY29yZTo6aXRlcjo6YWRhcHRlcnM6OmZpbHRlcjo6e2ltcGwjMn06OmNvdW50Ojp0b191c2l6ZTo6e2Nsb3N1cmVfZW52IzB9PCZ1OCwgY29yZTo6c3RyOjpjb3VudDo6Y2hhcl9jb3VudF9nZW5lcmFsX2Nhc2U6OntjbG9zdXJlX2VudiMwfT4+Pj4AawUAAHdyYXBfYnVmPGNvcmU6OmZtdDo6YnVpbGRlcnM6OntpbXBsIzF9Ojp3cmFwOjp7Y2xvc3VyZV9lbnYjMH0+AKUPAAB3cml0ZV9mbXQ8Y29yZTo6Zm10OjpidWlsZGVyczo6UGFkQWRhcHRlcj4AvBEAAGdldF91bmNoZWNrZWQ8Y29yZTo6Zm10OjpBcmd1bWVudFYxPgAmAAAAY29yZQAVGQAAYnJhbmNoPGNvcmU6OmZtdDo6UG9zdFBhZGRpbmcsIGNvcmU6OmZtdDo6RXJyb3I+AKsZAABzYXR1cmF0aW5nX3N1YgCPAQAAZm10X3U2NAByAQAAVVNJWkVfTUFSS0VSAMATAABhZGFwdGVycwDxEgAAbWVtY2hyX2dlbmVyYWxfY2FzZQCjEQAAbmV4dF9iYWNrPHU4PgCwEwAAe2Nsb3N1cmUjMH08Y29yZTo6aXRlcjo6YWRhcHRlcnM6Om1hcDo6TWFwPGNvcmU6OnNsaWNlOjppdGVyOjpJdGVyPHU4PiwgY29yZTo6aXRlcjo6YWRhcHRlcnM6OmZpbHRlcjo6e2ltcGwjMn06OmNvdW50Ojp0b191c2l6ZTo6e2Nsb3N1cmVfZW52IzB9PCZ1OCwgY29yZTo6c3RyOjpjb3VudDo6Y2hhcl9jb3VudF9nZW5lcmFsX2Nhc2U6OntjbG9zdXJlX2VudiMwfT4+PgByEQAAcnBvc2l0aW9uPHU4LCBjb3JlOjpzdHI6OntpbXBsIzB9OjpmbG9vcl9jaGFyX2JvdW5kYXJ5Ojp7Y2xvc3VyZV9lbnYjMH0+APkTAABjb3VudDxjb3JlOjpzbGljZTo6aXRlcjo6SXRlcjx1OD4sIGNvcmU6OnN0cjo6Y291bnQ6OmNoYXJfY291bnRfZ2VuZXJhbF9jYXNlOjp7Y2xvc3VyZV9lbnYjMH0+ABkNAAB7aW1wbCMxfQB5EwAAZm9sZDxjb3JlOjpzbGljZTo6aXRlcjo6SXRlcjx1OD4sIHVzaXplLCBjb3JlOjppdGVyOjphZGFwdGVyczo6bWFwOjptYXBfZm9sZDo6e2Nsb3N1cmVfZW52IzB9PCZ1OCwgdXNpemUsIHVzaXplLCBjb3JlOjppdGVyOjphZGFwdGVyczo6ZmlsdGVyOjp7aW1wbCMyfTo6Y291bnQ6OnRvX3VzaXplOjp7Y2xvc3VyZV9lbnYjMH08JnU4LCBjb3JlOjpzdHI6OmNvdW50OjpjaGFyX2NvdW50X2dlbmVyYWxfY2FzZTo6e2Nsb3N1cmVfZW52IzB9PiwgY29yZTo6aXRlcjo6dHJhaXRzOjphY2N1bTo6e2ltcGwjNDh9OjpzdW06OntjbG9zdXJlX2VudiMwfTxjb3JlOjppdGVyOjphZGFwdGVyczo6bWFwOjpNYXA8Y29yZTo6c2xpY2U6Oml0ZXI6Okl0ZXI8dTg+LCBjb3JlOjppdGVyOjphZGFwdGVyczo6ZmlsdGVyOjp7aW1wbCMyfTo6Y291bnQ6OnRvX3VzaXplOjp7Y2xvc3VyZV9lbnYjMH08JnU4LCBjb3JlOjpzdHI6OmNvdW50OjpjaGFyX2NvdW50X2dlbmVyYWxfY2FzZTo6e2Nsb3N1cmVfZW52IzB9Pj4+Pj4ALRoAAGNoYXIARQEAAHJlYWQ8Y29yZTo6Zm10OjpydDo6djE6OkFsaWdubWVudD4A7xMAAGZpbHRlcgAfFAAAZW51bWVyYXRlAPgLAABEZWJ1Z1N0cnVjdACREQAAcHJlX2RlY19lbmQ8dTg+AIAQAABwYW5pY19mbXQADBYAAHNsaWNlX2Vycm9yX2ZhaWwAhwIAAHBhZGRpbmcAmhMAAHtpbXBsIzQ4fQAeDQAAd3JhcAAEGgAAbWFwPHVzaXplLCB1c2l6ZSwgY29yZTo6c2xpY2U6Om1lbWNocjo6bWVtY2hyX2dlbmVyYWxfY2FzZTo6e2Nsb3N1cmVfZW52IzJ9PgBLDgAAZGVidWdfdHVwbGVfbmV3AFcIAAB7aW1wbCMyfQA1FAAAbmV4dDxjb3JlOjpzbGljZTo6aXRlcjo6SXRlcjxjb3JlOjpmbXQ6OnJ0Ojp2MTo6QXJndW1lbnQ+PgCSEgAAZ2V0X3VuY2hlY2tlZDxjb3JlOjpmbXQ6OkFyZ3VtZW50VjEsIHVzaXplPgAbBwAAYXNfdXNpemUAnxMAAHN1bTxjb3JlOjppdGVyOjphZGFwdGVyczo6bWFwOjpNYXA8Y29yZTo6c2xpY2U6Oml0ZXI6Okl0ZXI8dTg+LCBjb3JlOjppdGVyOjphZGFwdGVyczo6ZmlsdGVyOjp7aW1wbCMyfTo6Y291bnQ6OnRvX3VzaXplOjp7Y2xvc3VyZV9lbnYjMH08JnU4LCBjb3JlOjpzdHI6OmNvdW50OjpjaGFyX2NvdW50X2dlbmVyYWxfY2FzZTo6e2Nsb3N1cmVfZW52IzB9Pj4+AL4YAABpbXBscwCVEwAAYWNjdW0Asg4AAFdyaXRlAJsQAABwYW5pYwDQDwAAb3BzADIaAABtZXRob2RzAFYTAABlcTx1OCwgdTg+AFgRAABwb3NpdGlvbjx1OCwgY29yZTo6c2xpY2U6Om1lbWNocjo6bWVtY2hyOjp7Y2xvc3VyZV9lbnYjMH0+ANoZAABtZW0A4AsAAHtpbXBsIzN9AGoOAABpc19wcmV0dHkACQwAAGZpZWxkAOoYAABPcmQAigEAAGltcABuFAAAbmV4dDx1c2l6ZT4ANgcAAHdyaXRlADENAABEZWJ1Z0lubmVyAG8NAABlbnRyeQCDFQAAdHJhaXRzAEkVAABmaW5kPGNoYXI+AC0PAAB3cml0ZV9zdHI8Y29yZTo6Zm10OjpidWlsZGVyczo6UGFkQWRhcHRlcj4AMxEAAG5leHQ8Y29yZTo6Zm10OjpBcmd1bWVudFYxPgDhEQAAc2xpY2VfaW5kZXhfb3JkZXJfZmFpbADbFAAAbmV4dACGEwAAc3VtPGNvcmU6Oml0ZXI6OmFkYXB0ZXJzOjptYXA6Ok1hcDxjb3JlOjpzbGljZTo6aXRlcjo6SXRlcjx1OD4sIGNvcmU6Oml0ZXI6OmFkYXB0ZXJzOjpmaWx0ZXI6OntpbXBsIzJ9Ojpjb3VudDo6dG9fdXNpemU6OntjbG9zdXJlX2VudiMwfTwmdTgsIGNvcmU6OnN0cjo6Y291bnQ6OmNoYXJfY291bnRfZ2VuZXJhbF9jYXNlOjp7Y2xvc3VyZV9lbnYjMH0+PiwgdXNpemU+AIUOAAB7aW1wbCM0fQBcCAAAd3JpdGVfc3RyAMsZAABpc191dGY4X2NoYXJfYm91bmRhcnkA2xgAAGVxPFt1OF0sIFt1OF0+ADcaAABsZW5fdXRmOAA4EAAAY2FsbF9vbmNlPGZuKCpjb25zdCB1OCwgdXNpemUpIC0+IHVzaXplLCAoKmNvbnN0IHU4LCB1c2l6ZSk+AH8ZAAB7aW1wbCMxMX0AKRQAAG5leHQ8Y29yZTo6c2xpY2U6Oml0ZXI6Okl0ZXI8Y29yZTo6Zm10OjpBcmd1bWVudFYxPj4AKwEAAHJlYWQ8Y2hhcj4AaxAAAGludG9fc2xpY2VfcmFuZ2UA4RMAAHtjbG9zdXJlIzB9PCZ1OCwgdXNpemUsIHVzaXplLCBjb3JlOjppdGVyOjphZGFwdGVyczo6ZmlsdGVyOjp7aW1wbCMyfTo6Y291bnQ6OnRvX3VzaXplOjp7Y2xvc3VyZV9lbnYjMH08JnU4LCBjb3JlOjpzdHI6OmNvdW50OjpjaGFyX2NvdW50X2dlbmVyYWxfY2FzZTo6e2Nsb3N1cmVfZW52IzB9PiwgY29yZTo6aXRlcjo6dHJhaXRzOjphY2N1bTo6e2ltcGwjNDh9OjpzdW06OntjbG9zdXJlX2VudiMwfTxjb3JlOjppdGVyOjphZGFwdGVyczo6bWFwOjpNYXA8Y29yZTo6c2xpY2U6Oml0ZXI6Okl0ZXI8dTg+LCBjb3JlOjppdGVyOjphZGFwdGVyczo6ZmlsdGVyOjp7aW1wbCMyfTo6Y291bnQ6OnRvX3VzaXplOjp7Y2xvc3VyZV9lbnYjMH08JnU4LCBjb3JlOjpzdHI6OmNvdW50OjpjaGFyX2NvdW50X2dlbmVyYWxfY2FzZTo6e2Nsb3N1cmVfZW52IzB9Pj4+PgBIDwAAd3JpdGVfY2hhcjxjb3JlOjpmbXQ6OmJ1aWxkZXJzOjpQYWRBZGFwdGVyPgA6EgAAaW5kZXg8dTg+AFENAAB7aW1wbCM1fQANEgAAc2xpY2VfaW5kZXhfb3JkZXJfZmFpbF9ydABSBQAAbmV3AN8PAABjYWxsX29uY2U8Y29yZTo6Zm10OjpVU0laRV9NQVJLRVI6OntjbG9zdXJlX2VudiMwfSwgKCZ1c2l6ZSwgJm11dCBjb3JlOjpmbXQ6OkZvcm1hdHRlcik+AHoZAABudW0A8BUAAGluZGV4AP8ZAABPcHRpb24AUggAAGJ1aWxkZXJzAGwSAABpbmRleDx1OCwgY29yZTo6b3BzOjpyYW5nZTo6UmFuZ2VJbmNsdXNpdmU8dXNpemU+PgB7AAAAb2Zmc2V0PGNvcmU6OmZtdDo6QXJndW1lbnRWMT4AxhIAAGdldDx1OCwgdXNpemU+ALkZAAB7aW1wbCM2fQDUEQAAZ2V0PHU4PgCiDgAAe2Nsb3N1cmUjMH0A7hQAAHV0ZjhfaXNfY29udF9ieXRlAHQTAABJdGVyYXRvcgD6GQAAb3B0aW9uAGASAABpbmRleDx1OCwgY29yZTo6b3BzOjpyYW5nZTo6UmFuZ2VGcm9tPHVzaXplPj4ARBoAAGVuY29kZV91dGY4X3JhdwDpFAAAdmFsaWRhdGlvbnMAgRQAAGZvcndhcmRfdW5jaGVja2VkADoTAABjbXAA4xUAAGdldABmEAAAUmFuZ2VJbmNsdXNpdmUAeRIAAHtpbXBsIzd9ACIRAAB7aW1wbCMxNzN9AAITAAB7Y2xvc3VyZSMxfQBvEwAAaXRlcmF0b3IAVhoAAGVuY29kZV91dGY4AAcNAABQYWRBZGFwdGVyADgWAABzbGljZV9lcnJvcl9mYWlsX3J0AP0QAABjb25zdF9ldmFsX3NlbGVjdDwoKmNvbnN0IHU4LCB1c2l6ZSksIGZuKCpjb25zdCB1OCwgdXNpemUpIC0+IHVzaXplLCBmbigqY29uc3QgdTgsIHVzaXplKSAtPiB1c2l6ZSwgdXNpemU+AA8TAABtZW1jaHIA7BkAAHJlcGxhY2U8Y29yZTo6Zm10OjpydDo6djE6OkFsaWdubWVudD4AiBUAAHtpbXBsIzh9ALcQAABpbnRyaW5zaWNzAJ4RAAB7aW1wbCMxNzR9AGEQAAByYW5nZQB6AgAAc2lnbl9hd2FyZV96ZXJvX3BhZABgAgAAc2lnbl9wbHVzACsAAABwdHIAphQAAGNvdW50X2NoYXJzAM4GAABQb3N0UGFkZGluZwAdEAAAY2FsbF9vbmNlPGZuKHVzaXplLCB1c2l6ZSkgLT4gISwgKHVzaXplLCB1c2l6ZSk+ANEVAABpbmRleDxjb3JlOjpvcHM6OnJhbmdlOjpSYW5nZUZyb208dXNpemU+PgAeFQAAdXRmOF9hY2NfY29udF9ieXRlAAoRAABjb25zdF9ldmFsX3NlbGVjdDwoJnN0ciwgdXNpemUsIHVzaXplKSwgZm4oJnN0ciwgdXNpemUsIHVzaXplKSAtPiAhLCBmbigmc3RyLCB1c2l6ZSwgdXNpemUpIC0+ICEsICE+AN4VAAB7aW1wbCM5fQBeGQAAYW5kX3RoZW48KCksIGNvcmU6OmZtdDo6RXJyb3IsICgpLCBjb3JlOjpmbXQ6OmJ1aWxkZXJzOjp7aW1wbCM0fTo6ZmllbGQ6OntjbG9zdXJlX2VudiMwfT4AKQcAAGdldGNvdW50AM8AAABvZmZzZXQ8dTg+AP0YAABtaW48dXNpemU+AJUAAABhbGlnbl9vZmZzZXQARBMAAGVxdWFsPHU4LCB1OD4AAAAAAAQBAAACALcaAABuAgAAOAIAAHtpbXBsIzN9AFgCAAB7aW1wbCM0fQBCAAAAemVyb193aWRlbl9tdWwAJgAAAGNvbXBpbGVyX2J1aWx0aW5zABoCAAB7aW1wbCM5fQAuAgAAY29yZQArAAAAaW50AFoAAABtdWw8aTEyOD4AUAAAAG11bABVAAAATXVsADMCAABudW0A+gEAAGhpAAgCAAB7aW1wbCMxMX0ADQIAAHdyYXBwaW5nX2FkZAAwAAAAe2ltcGwjMjZ9ADUAAAB6ZXJvX3dpZGVuAPUBAAB7aW1wbCMxOH0AHwIAAHdyYXBwaW5nX211bAB5AAAAX19tdWx0aTMAAAAAADcAAAACACUdAABRAAAAJgAAAGNvbXBpbGVyX2J1aWx0aW5zADUAAABtZW1zZXQAKwAAAG1lbQAAAAAAuwYAAAIAdh0AADERAABQDAAAd3JhcHBpbmdfbmVnADAAAABpbXBscwCEDAAAbXV0X3B0cgCtCAAAbWVtY3B5X2VsZW1lbnRfdW5vcmRlcmVkX2F0b21pYzx1MzI+AFkIAABtZW1jcHlfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljPHUxNj4AswAAAGNvcHlfZm9yd2FyZAABCQAAbWVtY3B5X2VsZW1lbnRfdW5vcmRlcmVkX2F0b21pYzx1NjQ+ADsOAABzdWI8dTg+AAEBAABzZXRfYnl0ZXMAvQ4AAGFkZDx1c2l6ZT4AvwAAAGNvcHlfYmFja3dhcmQA3hAAAG9mZnNldDx1MzI+AKoQAABvZmZzZXQ8dTE2PgArAAAAbWVtABIBAABzZXRfYnl0ZXNfd29yZHMAEhEAAG9mZnNldDx1NjQ+ACYAAABjb21waWxlcl9idWlsdGlucwBVCQAAbWVtbW92ZV9lbGVtZW50X3Vub3JkZXJlZF9hdG9taWM8dTg+AH8LAABtZW1zZXRfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljPHUzMj4ARgsAAG1lbXNldF9lbGVtZW50X3Vub3JkZXJlZF9hdG9taWM8dTE2PgC4CwAAbWVtc2V0X2VsZW1lbnRfdW5vcmRlcmVkX2F0b21pYzx1NjQ+ACEOAABzdWI8dXNpemU+AJoAAABjb3B5X2ZvcndhcmRfYnl0ZXMAMQoAAG1lbW1vdmVfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljPHUzMj4AFAMAAG1lbW1vdmUAwwkAAG1lbW1vdmVfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljPHUxNj4AnwoAAG1lbW1vdmVfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljPHU2ND4A6w4AAHtpbXBsIzB9AOsQAABhZGQ8dTMyPgC3EAAAYWRkPHUxNj4A6AAAAGNvcHlfYmFja3dhcmRfYnl0ZXMAZQgAAF9fbGx2bV9tZW1jcHlfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljXzIAHxEAAGFkZDx1NjQ+ANAAAABjb3B5X2JhY2t3YXJkX21pc2FsaWduZWRfd29yZHMAzQcAAGJjbXAADQkAAF9fbGx2bV9tZW1jcHlfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljXzgAuQgAAF9fbGx2bV9tZW1jcHlfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljXzQA8wsAAGNvcmUAYQkAAF9fbGx2bV9tZW1tb3ZlX2VsZW1lbnRfdW5vcmRlcmVkX2F0b21pY18xACwBAABtZW1jcHkAzwkAAF9fbGx2bV9tZW1tb3ZlX2VsZW1lbnRfdW5vcmRlcmVkX2F0b21pY18yAD0KAABfX2xsdm1fbWVtbW92ZV9lbGVtZW50X3Vub3JkZXJlZF9hdG9taWNfNAARCAAAX19sbHZtX21lbWNweV9lbGVtZW50X3Vub3JkZXJlZF9hdG9taWNfMQD9CwAAe2ltcGwjMTF9AIMQAABhZGQ8dTg+AEMMAAB3cmFwcGluZ19zdWIAqwoAAF9fbGx2bV9tZW1tb3ZlX2VsZW1lbnRfdW5vcmRlcmVkX2F0b21pY184AH8MAABwdHIA6QcAAHN0cmxlbgAFCAAAbWVtY3B5X2VsZW1lbnRfdW5vcmRlcmVkX2F0b21pYzx1OD4AsQcAAG1lbWNtcAAZCwAAX19sbHZtX21lbXNldF9lbGVtZW50X3Vub3JkZXJlZF9hdG9taWNfMQBSCwAAX19sbHZtX21lbXNldF9lbGVtZW50X3Vub3JkZXJlZF9hdG9taWNfMgBeDAAAe2ltcGwjNX0AiwsAAF9fbGx2bV9tZW1zZXRfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljXzQAxAsAAF9fbGx2bV9tZW1zZXRfZWxlbWVudF91bm9yZGVyZWRfYXRvbWljXzgAgAYAAG1lbXNldAB2EAAAb2Zmc2V0PHU4PgD4CwAAbnVtALAOAABvZmZzZXQ8dXNpemU+AI4AAABjb3B5X2ZvcndhcmRfYWxpZ25lZF93b3JkcwAeAQAAc2V0X2J5dGVzX2J5dGVzAIIAAABjb3B5X2ZvcndhcmRfbWlzYWxpZ25lZF93b3JkcwDcAAAAY29weV9iYWNrd2FyZF9hbGlnbmVkX3dvcmRzAOYOAABjb25zdF9wdHIADQsAAG1lbXNldF9lbGVtZW50X3Vub3JkZXJlZF9hdG9taWM8dTg+AAAAAAA3AAAAAgCnLgAAUQAAACYAAABjb21waWxlcl9idWlsdGlucwA1AAAAbWVtY3B5ACsAAABtZW0AAAAAAACeKgRuYW1lAfYpSwAUY2FzcGVyX2NhbGxfY29udHJhY3QBF2Nhc3Blcl9yZWFkX2hvc3RfYnVmZmVyAhljYXNwZXJfZ2V0X25hbWVkX2FyZ19zaXplAxRjYXNwZXJfZ2V0X25hbWVkX2FyZwQNY2FzcGVyX3JldmVydAVNX1pOMTVjYXNwZXJfY29udHJhY3QxMmNvbnRyYWN0X2FwaTdydW50aW1lMTNjYWxsX2NvbnRyYWN0MTdoNDYxZmE4ZmI4N2E5ZTY0ZkUGZ19aTjcyXyRMVCR3ZWVfYWxsb2MuLldlZUFsbG9jJHUyMCRhcyR1MjAkY29yZS4uYWxsb2MuLmdsb2JhbC4uR2xvYmFsQWxsb2MkR1QkNWFsbG9jMTdoNjAwMDRmODE5YTczYzQ1ZUUHQl9aTjEyY2FzcGVyX3R5cGVzOWJ5dGVzcmVwcjE3dThfc2xpY2VfdG9fYnl0ZXMxN2gyYzBmMmI3MTZlNzRkODUxRQhHX1pOMTJjYXNwZXJfdHlwZXM3Y2xfdHlwZTZDTFR5cGUxN3NlcmlhbGl6ZWRfbGVuZ3RoMTdoZTZiYmIzOWYyMDIzMDY1OEUJWV9aTjVhbGxvYzdyYXdfdmVjMTlSYXdWZWMkTFQkVCRDJEEkR1QkN3Jlc2VydmUyMWRvX3Jlc2VydmVfYW5kX2hhbmRsZTE3aDM0YzNjZmM3NTgyZjYwODdFCmlfWk43Ml8kTFQkd2VlX2FsbG9jLi5XZWVBbGxvYyR1MjAkYXMkdTIwJGNvcmUuLmFsbG9jLi5nbG9iYWwuLkdsb2JhbEFsbG9jJEdUJDdkZWFsbG9jMTdoN2Y3ZTcwMThhN2EzZDIzMUULY19aTjY4XyRMVCRjYXNwZXJfdHlwZXMuLmNsX3R5cGUuLkNMVHlwZSR1MjAkYXMkdTIwJGNvcmUuLmNsb25lLi5DbG9uZSRHVCQ1Y2xvbmUxN2hhNDg0OThmNzZmN2U3YWY2RQxCX1pOMTJjYXNwZXJfdHlwZXM3Y2xfdHlwZTZDTFR5cGUxMmFwcGVuZF9ieXRlczE3aDIwYmQ0ZTZiOTk1MDJkYWJFDVRfWk40Y29yZTNwdHI1MGRyb3BfaW5fcGxhY2UkTFQkY2FzcGVyX3R5cGVzLi5jbF90eXBlLi5DTFR5cGUkR1QkMTdoNzI3Yzg2ZTRmMzE2MjIxOUUOUF9aTjUwXyRMVCRUJHUyMCRhcyR1MjAkY29yZS4uY29udmVydC4uSW50byRMVCRVJEdUJCRHVCQ0aW50bzE3aDI2OTAyZmYwNWJhNWM3YzhFD0VfWk4xNWNhc3Blcl9jb250cmFjdDEyY29udHJhY3RfYXBpN3J1bnRpbWU2cmV2ZXJ0MTdoNmRiOGEyNmZkNGY4ZDcyZkUQOF9aTjVhbGxvYzdyYXdfdmVjMTdjYXBhY2l0eV9vdmVyZmxvdzE3aDA4MzEyYjZkYjNhZmU4ODdFETxfWk4xMmNhc3Blcl90eXBlczlhcGlfZXJyb3IxMXJlc3VsdF9mcm9tMTdoZTdkM2U2OTk2NWRiNTQ2NEUSTV9aTjE1Y2FzcGVyX2NvbnRyYWN0MTJjb250cmFjdF9hcGk3cnVudGltZTEzZ2V0X25hbWVkX2FyZzE3aDBlOWI0NmFkZTE2NTAwMTlFE1tfWk40Y29yZTNwdHI1N2Ryb3BfaW5fcGxhY2UkTFQkY2FzcGVyX3R5cGVzLi5jbF92YWx1ZS4uQ0xWYWx1ZUVycm9yJEdUJDE3aDkyYjE0MmIyY2JhOWU3MDlFFFBfWk41MF8kTFQkVCR1MjAkYXMkdTIwJGNvcmUuLmNvbnZlcnQuLkludG8kTFQkVSRHVCQkR1QkNGludG8xN2g0M2YwOTlmNGUyMTBiNjQ5RRWUAV9aTjEyY2FzcGVyX3R5cGVzOWFwaV9lcnJvcjk0XyRMVCRpbXBsJHUyMCRjb3JlLi5jb252ZXJ0Li5Gcm9tJExUJGNhc3Blcl90eXBlcy4uYXBpX2Vycm9yLi5BcGlFcnJvciRHVCQkdTIwJGZvciR1MjAkdTMyJEdUJDRmcm9tMTdoYjRjNWVmNmMwYTMyZjRmZkUWMl9aTjVhbGxvYzdyYXdfdmVjMTFmaW5pc2hfZ3JvdzE3aDFjZDljOWQ5ZTU2OWVhODNFF0xfWk41YWxsb2M3cmF3X3ZlYzE5UmF3VmVjJExUJFQkQyRBJEdUJDE2cmVzZXJ2ZV9mb3JfcHVzaDE3aGJjODZkZDViOWU2YWY3ZDVFGFlfWk41YWxsb2M3cmF3X3ZlYzE5UmF3VmVjJExUJFQkQyRBJEdUJDdyZXNlcnZlMjFkb19yZXNlcnZlX2FuZF9oYW5kbGUxN2hiYzE5YWYwODA2MGUwZWZkRRkEY2FsbBosX1pONGNvcmU5cGFuaWNraW5nNXBhbmljMTdoZmFjYzgwZjJkYTgyZjY3NEUbTF9aTjVhbGxvYzdyYXdfdmVjMTlSYXdWZWMkTFQkVCRDJEEkR1QkMTZyZXNlcnZlX2Zvcl9wdXNoMTdoODQzMjlhMzNkMjNlYWM3OUUcMl9aTjRjb3JlNnJlc3VsdDEzdW53cmFwX2ZhaWxlZDE3aDQ2ZGUyMDkzYWFiZmJiN2NFHTJfWk45d2VlX2FsbG9jMTVhbGxvY19maXJzdF9maXQxN2g4MWZmMjIxMDJkNWY2NzRiRR4yX1pONWFsbG9jN3Jhd192ZWMxMWZpbmlzaF9ncm93MTdoN2NjZjcyZGZlM2NjMjQ4MUUfMF9aTjRjb3JlOXBhbmlja2luZzlwYW5pY19mbXQxN2hmODA0YWRhNzJhYWQwNmU2RSBfX1pONjZfJExUJGNhc3Blcl90eXBlcy4uY2xfdHlwZS4uQ0xUeXBlJHUyMCRhcyR1MjAkY29yZS4uZm10Li5EZWJ1ZyRHVCQzZm10MTdoMWNkOGZjZGNmNmU5MDQxZEUhRV9aTjRjb3JlM2ZtdDlGb3JtYXR0ZXIyNWRlYnVnX3R1cGxlX2ZpZWxkMV9maW5pc2gxN2hlNDNmMWUyZmFjODU4MjQwRSI8X1pONGNvcmUzZm10OGJ1aWxkZXJzMTFEZWJ1Z1N0cnVjdDVmaWVsZDE3aGQ5NDcwMzgzZjhlYjVlZDRFI0dfWk40Ml8kTFQkJFJGJFQkdTIwJGFzJHUyMCRjb3JlLi5mbXQuLkRlYnVnJEdUJDNmbXQxN2hjOTAwNGI1YWJmYzQxYWUwRSQ4X1pONGNvcmUzZm10OGJ1aWxkZXJzOERlYnVnU2V0NWVudHJ5MTdoZjcxMTQwZTZkYmE1Zjk4ZEUlR19aTjQyXyRMVCQkUkYkVCR1MjAkYXMkdTIwJGNvcmUuLmZtdC4uRGVidWckR1QkM2ZtdDE3aGIzOTg3ZjlmMDllZjY4MTJFJocBX1pONGNvcmUzcHRyMTAwZHJvcF9pbl9wbGFjZSRMVCQkUkYkJHU1YiRhbGxvYy4uYm94ZWQuLkJveCRMVCRjYXNwZXJfdHlwZXMuLmNsX3R5cGUuLkNMVHlwZSRHVCQkdTNiJCR1MjAkMSR1NWQkJEdUJDE3aDc0MTUxZjgzY2FjOTllZTNFJ0dfWk40Ml8kTFQkJFJGJFQkdTIwJGFzJHUyMCRjb3JlLi5mbXQuLkRlYnVnJEdUJDNmbXQxN2hiNWM3ODg1YWYzYjAzYTZhRShHX1pONDJfJExUJCRSRiRUJHUyMCRhcyR1MjAkY29yZS4uZm10Li5EZWJ1ZyRHVCQzZm10MTdoNGJlOGUwNDVhM2RkYjIyNEUpMF9aTjRjb3JlM2ZtdDNudW0zaW1wN2ZtdF91NjQxN2hlNGM4MGQ3ZjhmYTZjY2IxRSo4X1pONGNvcmUzZm10OUZvcm1hdHRlcjEycGFkX2ludGVncmFsMTdoYmNlMTk0ZTFmYjA0Nzk0M0UrQF9aTjRjb3JlNXNsaWNlNWluZGV4MjJzbGljZV9pbmRleF9vcmRlcl9mYWlsMTdoM2UxMjExNWQ2MWRiODcwZEUsR19aTjQyXyRMVCQkUkYkVCR1MjAkYXMkdTIwJGNvcmUuLmZtdC4uRGVidWckR1QkM2ZtdDE3aGZlYjc1M2MyMjU2OWQxMmZFLUdfWk40Ml8kTFQkJFJGJFQkdTIwJGFzJHUyMCRjb3JlLi5mbXQuLkRlYnVnJEdUJDNmbXQxN2g2NTdkZGYyMjkxNTdhYzlkRS5mX1pONzNfJExUJGNhc3Blcl90eXBlcy4uY2xfdmFsdWUuLkNMVmFsdWVFcnJvciR1MjAkYXMkdTIwJGNvcmUuLmZtdC4uRGVidWckR1QkM2ZtdDE3aGY2NWYyYWI2N2Q2YzRhODVFL0dfWk40Ml8kTFQkJFJGJFQkdTIwJGFzJHUyMCRjb3JlLi5mbXQuLkRlYnVnJEdUJDNmbXQxN2hmNmVjMWE3M2JjNWI0NTI5RTBHX1pONDJfJExUJCRSRiRUJHUyMCRhcyR1MjAkY29yZS4uZm10Li5EZWJ1ZyRHVCQzZm10MTdoNDdiYjU3Yjg1M2IzMzE1MEUxOl9aTjRjb3JlM29wczhmdW5jdGlvbjZGbk9uY2U5Y2FsbF9vbmNlMTdoNDJmMmJiZjU2OTcxNmNhNUUyRl9aTjRjb3JlM2ZtdDlGb3JtYXR0ZXIxMnBhZF9pbnRlZ3JhbDEyd3JpdGVfcHJlZml4MTdoZDJjYTFmYjQ3NTQ0YmUzNkUzJl9aTjRjb3JlM2ZtdDV3cml0ZTE3aDJiNGY3MWY3MGQzNmRjNTNFNDpfWk40Y29yZTNvcHM4ZnVuY3Rpb242Rm5PbmNlOWNhbGxfb25jZTE3aDE5MmYzN2Q1ZTEzODZkYmVFNUNfWk40Y29yZTVzbGljZTVpbmRleDI1c2xpY2VfaW5kZXhfb3JkZXJfZmFpbF9ydDE3aDlhZDdlZGE5MDE2NjRmMzdFNmdfWk42OF8kTFQkY29yZS4uZm10Li5idWlsZGVycy4uUGFkQWRhcHRlciR1MjAkYXMkdTIwJGNvcmUuLmZtdC4uV3JpdGUkR1QkOXdyaXRlX3N0cjE3aGQwNTZiNjU4MzgxZDY5N2RFNzJfWk40Y29yZTNzdHIxNnNsaWNlX2Vycm9yX2ZhaWwxN2gyMzI2NWZmOWMwOGViZWE2RTg6X1pONGNvcmUzb3BzOGZ1bmN0aW9uNkZuT25jZTljYWxsX29uY2UxN2hjMjBjYmFkNWMwMDA5NzI2RTk1X1pONGNvcmUzc3RyMTlzbGljZV9lcnJvcl9mYWlsX3J0MTdoMmI0ZDdlYmQ1YTM4YmJjMEU6Ml9aTjRjb3JlM2ZtdDVXcml0ZTEwd3JpdGVfY2hhcjE3aGNlNGU1Yzk3YzAwNTJiNGJFOzBfWk40Y29yZTNmbXQ1V3JpdGU5d3JpdGVfZm10MTdoNzI3YjQzNTY2MDU4M2VjMUU8VV9aTjUwXyRMVCQkUkYkbXV0JHUyMCRXJHUyMCRhcyR1MjAkY29yZS4uZm10Li5Xcml0ZSRHVCQ5d3JpdGVfc3RyMTdoNmI4MGE2MGU1MjQ2MzFhMEU9V19aTjUwXyRMVCQkUkYkbXV0JHUyMCRXJHUyMCRhcyR1MjAkY29yZS4uZm10Li5Xcml0ZSRHVCQxMHdyaXRlX2NoYXIxN2hkMTJmODczZTliNzM2YzhkRT5VX1pONTBfJExUJCRSRiRtdXQkdTIwJFckdTIwJGFzJHUyMCRjb3JlLi5mbXQuLldyaXRlJEdUJDl3cml0ZV9mbXQxN2g1ZWVhYjA4NjhlZWU5ZTc4RT9bX1pONjJfJExUJHVpbnQuLnVpbnQuLkZyb21EZWNTdHJFcnIkdTIwJGFzJHUyMCRjb3JlLi5mbXQuLkRlYnVnJEdUJDNmbXQxN2g0ZjhjNjU2NjY5MDQ2YzYyRUCJAV9aTjg4XyRMVCR3ZWVfYWxsb2MuLnNpemVfY2xhc3Nlcy4uU2l6ZUNsYXNzQWxsb2NQb2xpY3kkdTIwJGFzJHUyMCR3ZWVfYWxsb2MuLkFsbG9jUG9saWN5JEdUJDIybmV3X2NlbGxfZm9yX2ZyZWVfbGlzdDE3aDlkNTc4NmY0ZWQ0MTE2MWVFQXdfWk43MF8kTFQkd2VlX2FsbG9jLi5MYXJnZUFsbG9jUG9saWN5JHUyMCRhcyR1MjAkd2VlX2FsbG9jLi5BbGxvY1BvbGljeSRHVCQyMm5ld19jZWxsX2Zvcl9mcmVlX2xpc3QxN2g5ODhiYmViY2QzNzNlZDA5RUJuX1pONzBfJExUJHdlZV9hbGxvYy4uTGFyZ2VBbGxvY1BvbGljeSR1MjAkYXMkdTIwJHdlZV9hbGxvYy4uQWxsb2NQb2xpY3kkR1QkMTNtaW5fY2VsbF9zaXplMTdoZmJmZDE1ZmI2NzU5ODhmN0VDgQFfWk43MF8kTFQkd2VlX2FsbG9jLi5MYXJnZUFsbG9jUG9saWN5JHUyMCRhcyR1MjAkd2VlX2FsbG9jLi5BbGxvY1BvbGljeSRHVCQzMnNob3VsZF9tZXJnZV9hZGphY2VudF9mcmVlX2NlbGxzMTdoZjY2YmU4ZjA4ODY4NmRmZUVEgAFfWk44OF8kTFQkd2VlX2FsbG9jLi5zaXplX2NsYXNzZXMuLlNpemVDbGFzc0FsbG9jUG9saWN5JHUyMCRhcyR1MjAkd2VlX2FsbG9jLi5BbGxvY1BvbGljeSRHVCQxM21pbl9jZWxsX3NpemUxN2gwMjk0ODkwNWE3MDk4ZDMyRUWTAV9aTjg4XyRMVCR3ZWVfYWxsb2MuLnNpemVfY2xhc3Nlcy4uU2l6ZUNsYXNzQWxsb2NQb2xpY3kkdTIwJGFzJHUyMCR3ZWVfYWxsb2MuLkFsbG9jUG9saWN5JEdUJDMyc2hvdWxkX21lcmdlX2FkamFjZW50X2ZyZWVfY2VsbHMxN2hkYzJjYjgzYmVmMGVlZmIzRUYIX19tdWx0aTNHBm1lbXNldEg1X1pOMTdjb21waWxlcl9idWlsdGluczNtZW02bWVtY3B5MTdoZmUwYmJmYWRkOWNiMDBhZEVJNV9aTjE3Y29tcGlsZXJfYnVpbHRpbnMzbWVtNm1lbXNldDE3aGNhM2VlYjllOTE3YjY1YmFFSgZtZW1jcHkHEgEAD19fc3RhY2tfcG9pbnRlcgkKAQAHLnJvZGF0YQBVCXByb2R1Y2VycwIIbGFuZ3VhZ2UBBFJ1c3QADHByb2Nlc3NlZC1ieQEFcnVzdGMlMS42NC4wLW5pZ2h0bHkgKDQ0OTNhMGY0NyAyMDIyLTA4LTAyKQ=="; + const wasm = new Uint8Array(Buffer.from(base64, 'base64')); + export default wasm; diff --git a/packages/builder/src/workflows/marketplace-with-cep78.ts b/packages/builder/src/workflows/marketplace-with-cep78.ts new file mode 100644 index 0000000..ec90ded --- /dev/null +++ b/packages/builder/src/workflows/marketplace-with-cep78.ts @@ -0,0 +1,62 @@ +import { CLValueBuilder } from "casper-js-sdk"; +import { BUYER_KEYS } from "../configs/default"; +import { Cep78Contract } from "../contract/cep78.contract"; +import { MarketplaceContract } from "../contract/marketplace.contract"; +import { contractHashToByteArray } from "contract-client"; + +const MARKETPLACE_CONTRACT_PACKAGE_HASH = 'e7cf0e4796821217ae86e2b34848cc6e1ef610b87572bd0d0848762448f1b3f2'; +const MARKETPLACE_CONTRACT_HASH = '03a714464b106f79db74110c0d7f66766e74354193189d77bc5d18cf8e89a000'; +const TOKEN_HASH = 'a1cce80d2f418d4e8c64b1d89c7b06c822f903b1d3a50548fa4f048c183671ee'; +const TOKEN_ID = '56'; + +const run = async () => { + const marketplaceContract = new MarketplaceContract( + `hash-${MARKETPLACE_CONTRACT_HASH}` + ); + const cep78Contract = new Cep78Contract( + `hash-${TOKEN_HASH}` + ); + + // Approve CEP78 contract package hash + await cep78Contract.approve( + { + operator: CLValueBuilder.byteArray( + contractHashToByteArray(MARKETPLACE_CONTRACT_PACKAGE_HASH) + ), + tokenId: Number(TOKEN_ID), + } + ); + + // List item + await marketplaceContract.listItem( + { + tokenContractHash: TOKEN_HASH, + tokenId: TOKEN_ID, + amount: 12_000_000_000, + } + ); + + // Approve CEP78 contract hash + await cep78Contract.approve( + { + operator: CLValueBuilder.byteArray( + contractHashToByteArray(MARKETPLACE_CONTRACT_HASH) + ), + tokenId: Number(TOKEN_ID), + } + ); + + // Change caller + marketplaceContract.setCaller(BUYER_KEYS); + + // Buy item + await marketplaceContract.buyItem( + { + tokenContractHash: TOKEN_HASH, + tokenId: TOKEN_ID, + amount: 12_000_000_000, + } + ); +} + +run(); \ No newline at end of file diff --git a/packages/builder/yarn.lock b/packages/builder/yarn.lock new file mode 100644 index 0000000..a263729 --- /dev/null +++ b/packages/builder/yarn.lock @@ -0,0 +1,545 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@cspotcode/source-map-support@^0.8.0": + version "0.8.1" + resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" + integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== + dependencies: + "@jridgewell/trace-mapping" "0.3.9" + +"@ethersproject/bignumber@^5.0.8", "@ethersproject/bignumber@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.7.0.tgz#e2f03837f268ba655ffba03a57853e18a18dc9c2" + integrity sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + bn.js "^5.2.1" + +"@ethersproject/bytes@^5.0.5", "@ethersproject/bytes@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.7.0.tgz#a00f6ea8d7e7534d6d87f47188af1148d71f155d" + integrity sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A== + dependencies: + "@ethersproject/logger" "^5.7.0" + +"@ethersproject/constants@^5.0.5": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.7.0.tgz#df80a9705a7e08984161f09014ea012d1c75295e" + integrity sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA== + dependencies: + "@ethersproject/bignumber" "^5.7.0" + +"@ethersproject/logger@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.7.0.tgz#6ce9ae168e74fecf287be17062b590852c311892" + integrity sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig== + +"@jridgewell/resolve-uri@^3.0.3": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721" + integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== + +"@jridgewell/sourcemap-codec@^1.4.10": + version "1.4.15" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" + integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== + +"@jridgewell/trace-mapping@0.3.9": + version "0.3.9" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" + integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== + dependencies: + "@jridgewell/resolve-uri" "^3.0.3" + "@jridgewell/sourcemap-codec" "^1.4.10" + +"@noble/curves@~1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.2.0.tgz#92d7e12e4e49b23105a2555c6984d41733d65c35" + integrity sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw== + dependencies: + "@noble/hashes" "1.3.2" + +"@noble/ed25519@^1.7.3": + version "1.7.3" + resolved "https://registry.yarnpkg.com/@noble/ed25519/-/ed25519-1.7.3.tgz#57e1677bf6885354b466c38e2b620c62f45a7123" + integrity sha512-iR8GBkDt0Q3GyaVcIu7mSsVIqnFbkbRzGLWlvhwunacoLwt4J3swfKhfaM6rN6WY+TBGoYT1GtT1mIh2/jGbRQ== + +"@noble/hashes@1.3.2", "@noble/hashes@^1.2.0", "@noble/hashes@^1.3.2", "@noble/hashes@~1.3.0", "@noble/hashes@~1.3.2": + version "1.3.2" + resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.3.2.tgz#6f26dbc8fbc7205873ce3cee2f690eba0d421b39" + integrity sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ== + +"@noble/secp256k1@^1.7.1": + version "1.7.1" + resolved "https://registry.yarnpkg.com/@noble/secp256k1/-/secp256k1-1.7.1.tgz#b251c70f824ce3ca7f8dc3df08d58f005cc0507c" + integrity sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw== + +"@open-rpc/client-js@1.8.1", "@open-rpc/client-js@^1.8.1": + version "1.8.1" + resolved "https://registry.yarnpkg.com/@open-rpc/client-js/-/client-js-1.8.1.tgz#73b5a5bf237f24b14c3c89205b1fca3aea213213" + integrity sha512-vV+Hetl688nY/oWI9IFY0iKDrWuLdYhf7OIKI6U1DcnJV7r4gAgwRJjEr1QVYszUc0gjkHoQJzqevmXMGLyA0g== + dependencies: + isomorphic-fetch "^3.0.0" + isomorphic-ws "^5.0.0" + strict-event-emitter-types "^2.0.0" + ws "^7.0.0" + +"@scure/base@~1.1.0", "@scure/base@~1.1.2": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@scure/base/-/base-1.1.3.tgz#8584115565228290a6c6c4961973e0903bb3df2f" + integrity sha512-/+SgoRjLq7Xlf0CWuLHq2LUZeL/w65kfzAPG5NH9pcmBhs+nunQTn4gvdwgMTIXnt9b2C/1SeL2XiysZEyIC9Q== + +"@scure/bip32@^1.1.5": + version "1.3.2" + resolved "https://registry.yarnpkg.com/@scure/bip32/-/bip32-1.3.2.tgz#90e78c027d5e30f0b22c1f8d50ff12f3fb7559f8" + integrity sha512-N1ZhksgwD3OBlwTv3R6KFEcPojl/W4ElJOeCZdi+vuI5QmTFwLq3OFf2zd2ROpKvxFdgZ6hUpb0dx9bVNEwYCA== + dependencies: + "@noble/curves" "~1.2.0" + "@noble/hashes" "~1.3.2" + "@scure/base" "~1.1.2" + +"@scure/bip39@^1.2.0": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@scure/bip39/-/bip39-1.2.1.tgz#5cee8978656b272a917b7871c981e0541ad6ac2a" + integrity sha512-Z3/Fsz1yr904dduJD0NpiyRHhRYHdcnyh73FZWiV+/qhWi83wNJ3NWolYqCEN+ZWsUz2TWwajJggcRE9r1zUYg== + dependencies: + "@noble/hashes" "~1.3.0" + "@scure/base" "~1.1.0" + +"@tsconfig/node10@^1.0.7": + version "1.0.9" + resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.9.tgz#df4907fc07a886922637b15e02d4cebc4c0021b2" + integrity sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA== + +"@tsconfig/node12@^1.0.7": + version "1.0.11" + resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" + integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== + +"@tsconfig/node14@^1.0.0": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" + integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== + +"@tsconfig/node16@^1.0.2": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9" + integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== + +"@types/bn.js@*": + version "5.1.3" + resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-5.1.3.tgz#0857f00da3bf888a26a44b4a477c7819b17dacc5" + integrity sha512-wT1B4iIO82ecXkdN6waCK8Ou7E71WU+mP1osDA5Q8c6Ur+ozU2vIKUIhSpUr6uE5L2YHocKS1Z2jG2fBC1YVeg== + dependencies: + "@types/node" "*" + +"@types/elliptic@^6.4.9": + version "6.4.16" + resolved "https://registry.yarnpkg.com/@types/elliptic/-/elliptic-6.4.16.tgz#3a28a7d14e26f9e786d71f2a895ac493e7c8a3be" + integrity sha512-MSN6m9BR51W1/umzcsX0K9dAmJ59ECKxOjZ3XsjvsZAt+q0mTmKlzEdwtU+u4i+Om231d8TuY3xK6FAGIs5MbA== + dependencies: + "@types/bn.js" "*" + +"@types/node@*": + version "20.8.9" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.8.9.tgz#646390b4fab269abce59c308fc286dcd818a2b08" + integrity sha512-UzykFsT3FhHb1h7yD4CA4YhBHq545JC0YnEz41xkipN88eKQtL6rSgocL5tbAP6Ola9Izm/Aw4Ora8He4x0BHg== + dependencies: + undici-types "~5.26.4" + +"@types/ws@^8.2.2": + version "8.5.8" + resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.8.tgz#13efec7bd439d0bdf2af93030804a94f163b1430" + integrity sha512-flUksGIQCnJd6sZ1l5dqCEG/ksaoAg/eUwiLAGTJQcfgvZJKF++Ta4bJA6A5aPSJmsr+xlseHn4KLgVlNnvPTg== + dependencies: + "@types/node" "*" + +acorn-walk@^8.1.1: + version "8.3.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.0.tgz#2097665af50fd0cf7a2dfccd2b9368964e66540f" + integrity sha512-FS7hV565M5l1R08MXqo8odwMTB02C2UqzB17RVgu9EyuYFBqJZ3/ZY97sQD5FewVu1UyDFc1yztUDrAwT0EypA== + +acorn@^8.4.1: + version "8.11.2" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.2.tgz#ca0d78b51895be5390a5903c5b3bdcdaf78ae40b" + integrity sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w== + +aes-js@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.0.0.tgz#e21df10ad6c2053295bcbb8dab40b09dbea87e4d" + integrity sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw== + +arg@^4.1.0: + version "4.1.3" + resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" + integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== + +asn1.js@^5.0.1: + version "5.4.1" + resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" + integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== + dependencies: + bn.js "^4.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + safer-buffer "^2.1.0" + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +bn.js@^4.0.0, bn.js@^4.11.8, bn.js@^4.11.9: + version "4.12.0" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" + integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== + +bn.js@^5.2.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70" + integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +brorand@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" + integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== + +casper-js-sdk@2.15.0: + version "2.15.0" + resolved "https://registry.yarnpkg.com/casper-js-sdk/-/casper-js-sdk-2.15.0.tgz#749d86094025e981ec728b75e8b0bbd64f56a06e" + integrity sha512-95O1hOmJqTVteQMtt4G8G85hCw1P1Ezs7mKc+bj3chMMwTmg2iUrWK0wLGl1hrn0v11yYidRqkcdlLm6C/SBrg== + dependencies: + "@ethersproject/bignumber" "^5.0.8" + "@ethersproject/bytes" "^5.0.5" + "@ethersproject/constants" "^5.0.5" + "@noble/ed25519" "^1.7.3" + "@noble/hashes" "^1.2.0" + "@noble/secp256k1" "^1.7.1" + "@open-rpc/client-js" "^1.8.1" + "@scure/bip32" "^1.1.5" + "@scure/bip39" "^1.2.0" + "@types/ws" "^8.2.2" + glob "^7.1.6" + humanize-duration "^3.24.0" + key-encoder "^2.0.3" + lodash "^4.17.21" + node-fetch "^2.6.11" + reflect-metadata "^0.1.13" + ts-results "npm:@casperlabs/ts-results@^3.3.4" + typedjson "^1.6.0-rc2" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + +contract-client@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/contract-client/-/contract-client-0.0.5.tgz#3cdf8122c828160bb5ebd3e06354525a8e0a36c5" + integrity sha512-pqqQ4QQEPTuJjUlygbbi/ifFYpicRVmeASOkuM4CyPQNcBgab3DXSu74Q7A60eW5Mi4QgEsPbrrlAN2YxJYoOw== + dependencies: + casper-js-sdk "2.15.0" + +create-require@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" + integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== + +diff@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" + integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== + +elliptic@6.5.4, elliptic@^6.4.1: + version "6.5.4" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" + integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== + dependencies: + bn.js "^4.11.9" + brorand "^1.1.0" + hash.js "^1.0.0" + hmac-drbg "^1.0.1" + inherits "^2.0.4" + minimalistic-assert "^1.0.1" + minimalistic-crypto-utils "^1.0.1" + +ethers@^4.0.47: + version "4.0.49" + resolved "https://registry.yarnpkg.com/ethers/-/ethers-4.0.49.tgz#0eb0e9161a0c8b4761be547396bbe2fb121a8894" + integrity sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg== + dependencies: + aes-js "3.0.0" + bn.js "^4.11.9" + elliptic "6.5.4" + hash.js "1.1.3" + js-sha3 "0.5.7" + scrypt-js "2.0.4" + setimmediate "1.0.4" + uuid "2.0.1" + xmlhttprequest "1.8.0" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + +glob@^7.1.6: + version "7.2.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" + +hash.js@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.3.tgz#340dedbe6290187151c1ea1d777a3448935df846" + integrity sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA== + dependencies: + inherits "^2.0.3" + minimalistic-assert "^1.0.0" + +hash.js@^1.0.0, hash.js@^1.0.3: + version "1.1.7" + resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" + integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== + dependencies: + inherits "^2.0.3" + minimalistic-assert "^1.0.1" + +hmac-drbg@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" + integrity sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg== + dependencies: + hash.js "^1.0.3" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.1" + +humanize-duration@^3.24.0: + version "3.30.0" + resolved "https://registry.yarnpkg.com/humanize-duration/-/humanize-duration-3.30.0.tgz#9be623d331116583ff90aeb6ccfdc2e79d6d7372" + integrity sha512-NxpT0fhQTFuMTLnuu1Xp+ozNpYirQnbV3NlOjEKBYlE3uvMRu3LDuq8EPc3gVXxVYnchQfqVM4/+T9iwHPLLeA== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +isomorphic-fetch@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-3.0.0.tgz#0267b005049046d2421207215d45d6a262b8b8b4" + integrity sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA== + dependencies: + node-fetch "^2.6.1" + whatwg-fetch "^3.4.1" + +isomorphic-ws@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/isomorphic-ws/-/isomorphic-ws-5.0.0.tgz#e5529148912ecb9b451b46ed44d53dae1ce04bbf" + integrity sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw== + +js-sha3@0.5.7: + version "0.5.7" + resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.5.7.tgz#0d4ffd8002d5333aabaf4a23eed2f6374c9f28e7" + integrity sha512-GII20kjaPX0zJ8wzkTbNDYMY7msuZcTWk8S5UOh6806Jq/wz1J8/bnr8uGU0DAUmYDjj2Mr4X1cW8v/GLYnR+g== + +key-encoder@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/key-encoder/-/key-encoder-2.0.3.tgz#77073bb48ff1fe2173bb2088b83b91152c8fa4ba" + integrity sha512-fgBtpAGIr/Fy5/+ZLQZIPPhsZEcbSlYu/Wu96tNDFNSjSACw5lEIOFeaVdQ/iwrb8oxjlWi6wmWdH76hV6GZjg== + dependencies: + "@types/elliptic" "^6.4.9" + asn1.js "^5.0.1" + bn.js "^4.11.8" + elliptic "^6.4.1" + +lodash@^4.17.21: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +make-error@^1.1.1: + version "1.3.6" + resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" + integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== + +minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== + +minimalistic-crypto-utils@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" + integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== + +minimatch@^3.1.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +node-fetch@^2.6.1, node-fetch@^2.6.11: + version "2.7.0" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" + integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== + dependencies: + whatwg-url "^5.0.0" + +once@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + +reflect-metadata@^0.1.13: + version "0.1.13" + resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.1.13.tgz#67ae3ca57c972a2aa1642b10fe363fe32d49dc08" + integrity sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg== + +safer-buffer@^2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +scrypt-js@2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-2.0.4.tgz#32f8c5149f0797672e551c07e230f834b6af5f16" + integrity sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw== + +setimmediate@1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.4.tgz#20e81de622d4a02588ce0c8da8973cbcf1d3138f" + integrity sha512-/TjEmXQVEzdod/FFskf3o7oOAsGhHf2j1dZqRFbDzq4F3mvvxflIIi4Hd3bLQE9y/CpwqfSQam5JakI/mi3Pog== + +strict-event-emitter-types@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strict-event-emitter-types/-/strict-event-emitter-types-2.0.0.tgz#05e15549cb4da1694478a53543e4e2f4abcf277f" + integrity sha512-Nk/brWYpD85WlOgzw5h173aci0Teyv8YdIAEtV+N88nDB0dLlazZyJMIsN6eo1/AR61l+p6CJTG1JIyFaoNEEA== + +tr46@~0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" + integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== + +ts-node@10.9.1: + version "10.9.1" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.1.tgz#e73de9102958af9e1f0b168a6ff320e25adcff4b" + integrity sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw== + dependencies: + "@cspotcode/source-map-support" "^0.8.0" + "@tsconfig/node10" "^1.0.7" + "@tsconfig/node12" "^1.0.7" + "@tsconfig/node14" "^1.0.0" + "@tsconfig/node16" "^1.0.2" + acorn "^8.4.1" + acorn-walk "^8.1.1" + arg "^4.1.0" + create-require "^1.1.0" + diff "^4.0.1" + make-error "^1.1.1" + v8-compile-cache-lib "^3.0.1" + yn "3.1.1" + +"ts-results@npm:@casperlabs/ts-results@^3.3.4": + version "3.3.5" + resolved "https://registry.yarnpkg.com/@casperlabs/ts-results/-/ts-results-3.3.5.tgz#cc95b8612768d7f794c37a4ca9b46122c04b1f40" + integrity sha512-ymSQqqb4mOSet592li02u1Gd28LoOFJUm6R3jkdNQ+nqsnbHvN+izBigtP4aYmNwh6gFyCwDgjYporEJgDT4eA== + dependencies: + tslib "^2.4.1" + +tslib@^2.0.1, tslib@^2.4.1: + version "2.6.2" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" + integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== + +typedjson@^1.6.0-rc2: + version "1.8.0" + resolved "https://registry.yarnpkg.com/typedjson/-/typedjson-1.8.0.tgz#7ed7200f88c1240821c7e69d6d121667988e5d1d" + integrity sha512-taVJVGebQDagEmVc3Cu6vVVLkWLnxqPcTrkVgbpAsI02ZDDrnHy5zvt1JVqXv4/yztBgZAX1oR07+bkiusGJLQ== + dependencies: + tslib "^2.0.1" + +undici-types@~5.26.4: + version "5.26.5" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" + integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== + +uuid@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.1.tgz#c2a30dedb3e535d72ccf82e343941a50ba8533ac" + integrity sha512-nWg9+Oa3qD2CQzHIP4qKUqwNfzKn8P0LtFhotaCTFchsV7ZfDhAybeip/HZVeMIpZi9JgY1E3nUlwaCmZT1sEg== + +v8-compile-cache-lib@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" + integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== + +webidl-conversions@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" + integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== + +whatwg-fetch@^3.4.1: + version "3.6.19" + resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.6.19.tgz#caefd92ae630b91c07345537e67f8354db470973" + integrity sha512-d67JP4dHSbm2TrpFj8AbO8DnL1JXL5J9u0Kq2xW6d0TFDbCA3Muhdt8orXC22utleTVj7Prqt82baN6RBvnEgw== + +whatwg-url@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" + integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== + dependencies: + tr46 "~0.0.3" + webidl-conversions "^3.0.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + +ws@^7.0.0: + version "7.5.9" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591" + integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== + +xmlhttprequest@1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz#67fe075c5c24fef39f9d65f5f7b7fe75171968fc" + integrity sha512-58Im/U0mlVBLM38NdZjHyhuMtCqa61469k2YP/AaPbvCoV9aQGUpbJBj1QRm2ytRiVQBD/fsw7L2bJGDVQswBA== + +yn@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" + integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== diff --git a/packages/cep18-client/package.json b/packages/cep18-client/package.json new file mode 100644 index 0000000..e4b595a --- /dev/null +++ b/packages/cep18-client/package.json @@ -0,0 +1,32 @@ +{ + "name": "@casperdash/cep18-client", + "version": "0.0.1", + "description": "A library for interacting with CEP-18 compliant tokens on the Casper Network", + "repository": { + "type": "git", + "directory": "packages/cep18-client" + }, + "contributors": [ + "dev " + ], + "type": "module", + "main": "dist/index.js", + "types": "dist/index.d.ts", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1", + "build": "tsup src/index.ts", + "start": "pnpm build -- --watch" + }, + "keywords": [], + "author": "", + "license": "MIT", + "dependencies": { + "@ethersproject/bignumber": "^5.7.0", + "@casperdash/contract-client": "workspace:*", + "casper-js-sdk": "2.15.0" + }, + "devDependencies": { + "eslint-plugin-prettier": "^4.2.1", + "tsup": "^6.7.0" + } +} diff --git a/packages/cep18-client/src/client.ts b/packages/cep18-client/src/client.ts new file mode 100644 index 0000000..056d797 --- /dev/null +++ b/packages/cep18-client/src/client.ts @@ -0,0 +1,4 @@ +export class CEP18Client { + constructor() { + } +} \ No newline at end of file diff --git a/packages/cep18-client/src/contract.ts b/packages/cep18-client/src/contract.ts new file mode 100644 index 0000000..ed3c684 --- /dev/null +++ b/packages/cep18-client/src/contract.ts @@ -0,0 +1,364 @@ +import { BigNumber, type BigNumberish } from '@ethersproject/bignumber'; +import { + type CLPublicKey, + CLValueBuilder, + DeployUtil, + type Keys, + RuntimeArgs +} from 'casper-js-sdk'; + +import { + ApproveArgs, + BurnArgs, + ChangeSecurityArgs, + InstallArgs, + MintArgs, + TransferArgs, + TransferFromArgs +} from './types'; +import { Contract } from '@casperdash/contract-client'; + +export default class CEP18Contract extends Contract { + constructor(public networkName: string, + contractHash?: `hash-${string}`, + contractPackageHash?: `hash-${string}`) { + super(contractHash, contractPackageHash); + } + + /** + * Intalls CEP-18 + * @param wasm contract representation of Uint8Array + * @param args contract install arguments @see {@link InstallArgs} + * @param paymentAmount payment amount required for installing the contract + * @param sender deploy sender + * @param networkName network name which will be deployed to + * @param signingKeys array of signing keys optional, returns signed deploy if keys are provided + * @returns Deploy object which can be send to the node. + */ + public install( + wasm: Uint8Array, + args: InstallArgs, + paymentAmount: BigNumberish, + sender: CLPublicKey, + networkName?: string, + signingKeys?: Keys.AsymmetricKey[] + ): DeployUtil.Deploy { + const { + name, + symbol, + decimals, + totalSupply, + eventsMode, + enableMintAndBurn + } = args; + const runtimeArgs = RuntimeArgs.fromMap({ + name: CLValueBuilder.string(name), + symbol: CLValueBuilder.string(symbol), + decimals: CLValueBuilder.u8(decimals), + total_supply: CLValueBuilder.u256(totalSupply) + }); + + if (eventsMode !== undefined) { + runtimeArgs.insert('events_mode', CLValueBuilder.u8(eventsMode)); + } + if (enableMintAndBurn !== undefined) { + runtimeArgs.insert( + 'enable_mint_burn', + CLValueBuilder.u8(enableMintAndBurn ? 1 : 0) + ); + } + + return this.callSessionWasm( + wasm, + runtimeArgs, + BigNumber.from(paymentAmount).toString(), + sender, + networkName ?? this.networkName, + signingKeys + ); + } + + /** + * Transfers tokens to another user + * @param args @see {@link TransferArgs} + * @param paymentAmount payment amount required for installing the contract + * @param sender deploy sender + * @param networkName network name which will be deployed to + * @param signingKeys array of signing keys optional, returns signed deploy if keys are provided + * @returns Deploy object which can be send to the node. + */ + public transfer( + args: TransferArgs, + paymentAmount: BigNumberish, + sender: CLPublicKey, + networkName?: string, + signingKeys?: Keys.AsymmetricKey[] + ): DeployUtil.Deploy { + const runtimeArgs = RuntimeArgs.fromMap({ + recipient: CLValueBuilder.key(args.recipient), + amount: CLValueBuilder.u256(args.amount) + }); + + return this.callEntrypoint( + 'transfer', + runtimeArgs, + sender, + networkName ?? this.networkName, + BigNumber.from(paymentAmount).toString(), + signingKeys + ); + } + + /** + * Transfer tokens from the approved user to another user + * @param args @see {@link TransferFromArgs} + * @param paymentAmount payment amount required for installing the contract + * @param sender deploy sender + * @param networkName network name which will be deployed to + * @param signingKeys array of signing keys optional, returns signed deploy if keys are provided + * @returns Deploy object which can be send to the node. + */ + public transferFrom( + args: TransferFromArgs, + paymentAmount: BigNumberish, + sender: CLPublicKey, + networkName?: string, + signingKeys?: Keys.AsymmetricKey[] + ): DeployUtil.Deploy { + const runtimeArgs = RuntimeArgs.fromMap({ + owner: CLValueBuilder.key(args.owner), + recipient: CLValueBuilder.key(args.recipient), + amount: CLValueBuilder.u256(args.amount) + }); + + return this.callEntrypoint( + 'transfer_from', + runtimeArgs, + sender, + networkName ?? this.networkName, + BigNumber.from(paymentAmount).toString(), + signingKeys + ); + } + + /** + * Approve tokens to other user + * @param args @see {@link ApproveArgs} + * @param paymentAmount payment amount required for installing the contract + * @param sender deploy sender + * @param networkName network name which will be deployed to + * @param signingKeys array of signing keys optional, returns signed deploy if keys are provided + * @returns Deploy object which can be send to the node. + */ + public approve( + args: ApproveArgs, + paymentAmount: BigNumberish, + sender: CLPublicKey, + networkName?: string, + signingKeys?: Keys.AsymmetricKey[] + ): DeployUtil.Deploy { + const runtimeArgs = RuntimeArgs.fromMap({ + spender: CLValueBuilder.key(args.spender), + amount: CLValueBuilder.u256(args.amount) + }); + + return this.callEntrypoint( + 'approve', + runtimeArgs, + sender, + networkName ?? this.networkName, + BigNumber.from(paymentAmount).toString(), + signingKeys + ); + } + + /** + * Increase allowance to the spender + * @param args @see {@link ApproveArgs} + * @param paymentAmount payment amount required for installing the contract + * @param sender deploy sender + * @param networkName network name which will be deployed to + * @param signingKeys array of signing keys optional, returns signed deploy if keys are provided + * @returns Deploy object which can be send to the node. + */ + public increaseAllowance( + args: ApproveArgs, + paymentAmount: BigNumberish, + sender: CLPublicKey, + networkName?: string, + signingKeys?: Keys.AsymmetricKey[] + ): DeployUtil.Deploy { + const runtimeArgs = RuntimeArgs.fromMap({ + spender: CLValueBuilder.key(args.spender), + amount: CLValueBuilder.u256(args.amount) + }); + + return this.callEntrypoint( + 'increase_allowance', + runtimeArgs, + sender, + networkName ?? this.networkName, + BigNumber.from(paymentAmount).toString(), + signingKeys + ); + } + + /** + * Decrease allowance from the spender + * @param args @see {@link ApproveArgs} + * @param paymentAmount payment amount required for installing the contract + * @param sender deploy sender + * @param networkName network name which will be deployed to + * @param signingKeys array of signing keys optional, returns signed deploy if keys are provided + * @returns Deploy object which can be send to the node. + */ + public decreaseAllowance( + args: ApproveArgs, + paymentAmount: BigNumberish, + sender: CLPublicKey, + networkName?: string, + signingKeys?: Keys.AsymmetricKey[] + ): DeployUtil.Deploy { + const runtimeArgs = RuntimeArgs.fromMap({ + spender: CLValueBuilder.key(args.spender), + amount: CLValueBuilder.u256(args.amount) + }); + + return this.callEntrypoint( + 'decrease_allowance', + runtimeArgs, + sender, + networkName ?? this.networkName, + BigNumber.from(paymentAmount).toString(), + signingKeys + ); + } + + /** + * Create `args.amount` tokens and assigns them to `args.owner`. + * Increases the total supply + * @param args @see {@link ApproveArgs} + * @param paymentAmount payment amount required for installing the contract + * @param sender deploy sender + * @param networkName network name which will be deployed to + * @param signingKeys array of signing keys optional, returns signed deploy if keys are provided + * @returns Deploy object which can be send to the node. + */ + public mint( + args: MintArgs, + paymentAmount: BigNumberish, + sender: CLPublicKey, + networkName?: string, + signingKeys?: Keys.AsymmetricKey[] + ): DeployUtil.Deploy { + const runtimeArgs = RuntimeArgs.fromMap({ + owner: CLValueBuilder.key(args.owner), + amount: CLValueBuilder.u256(args.amount) + }); + + return this.callEntrypoint( + 'mint', + runtimeArgs, + sender, + networkName ?? this.networkName, + BigNumber.from(paymentAmount).toString(), + signingKeys + ); + } + + /** + * Destroy `args.amount` tokens from `args.owner`. Decreases the total supply + * @param args @see {@link ApproveArgs} + * @param paymentAmount payment amount required for installing the contract + * @param sender deploy sender + * @param networkName network name which will be deployed to + * @param signingKeys array of signing keys optional, returns signed deploy if keys are provided + * @returns Deploy object which can be send to the node. + */ + public burn( + args: BurnArgs, + paymentAmount: BigNumberish, + sender: CLPublicKey, + networkName?: string, + signingKeys?: Keys.AsymmetricKey[] + ): DeployUtil.Deploy { + const runtimeArgs = RuntimeArgs.fromMap({ + owner: CLValueBuilder.key(args.owner), + amount: CLValueBuilder.u256(args.amount) + }); + + return this.callEntrypoint( + 'burn', + runtimeArgs, + sender, + networkName ?? this.networkName, + BigNumber.from(paymentAmount).toString(), + signingKeys + ); + } + + /** + * Change token security + * @param args @see {@link ChangeSecurityArgs} + * @param paymentAmount payment amount required for installing the contract + * @param sender deploy sender + * @param networkName network name which will be deployed to + * @param signingKeys array of signing keys optional, returns signed deploy if keys are provided + * @returns Deploy object which can be send to the node. + */ + public changeSecurity( + args: ChangeSecurityArgs, + paymentAmount: BigNumberish, + sender: CLPublicKey, + networkName?: string, + signingKeys?: Keys.AsymmetricKey[] + ): DeployUtil.Deploy { + const runtimeArgs = RuntimeArgs.fromMap({}); + + // Add optional args + if (args.adminList) { + runtimeArgs.insert( + 'admin_list', + CLValueBuilder.list(args.adminList.map(CLValueBuilder.key)) + ); + } + if (args.minterList) { + runtimeArgs.insert( + 'minter_list', + CLValueBuilder.list(args.minterList.map(CLValueBuilder.key)) + ); + } + if (args.burnerList) { + runtimeArgs.insert( + 'burner_list', + CLValueBuilder.list(args.burnerList.map(CLValueBuilder.key)) + ); + } + if (args.mintAndBurnList) { + runtimeArgs.insert( + 'mint_and_burn_list', + CLValueBuilder.list(args.mintAndBurnList.map(CLValueBuilder.key)) + ); + } + if (args.noneList) { + runtimeArgs.insert( + 'none_list', + CLValueBuilder.list(args.noneList.map(CLValueBuilder.key)) + ); + } + + // Check if at least one arg is provided and revert if none was provided + if (runtimeArgs.args.size === 0) { + throw new Error('Should provide at least one arg'); + } + + return this.callEntrypoint( + 'change_security', + runtimeArgs, + sender, + networkName ?? this.networkName, + BigNumber.from(paymentAmount).toString(), + signingKeys + ); + } +} \ No newline at end of file diff --git a/packages/cep18-client/src/errors.ts b/packages/cep18-client/src/errors.ts new file mode 100644 index 0000000..13fd2e8 --- /dev/null +++ b/packages/cep18-client/src/errors.ts @@ -0,0 +1,46 @@ +export enum ERROR_CODES { + /// CEP-18 contract called from within an invalid context. + InvalidContext = 60000, + /// Spender does not have enough balance. + InsufficientBalance = 60001, + /// Spender does not have enough allowance approved. + InsufficientAllowance = 60002, + /// Operation would cause an integer overflow. + Overflow = 60003, + /// A required package hash was not specified. + PackageHashMissing = 60004, + /// The package hash specified does not represent a package. + PackageHashNotPackage = 60005, + /// An invalid event mode was specified. + InvalidEventsMode = 60006, + /// The event mode required was not specified. + MissingEventsMode = 60007, + /// An unknown error occurred. + Phantom = 60008, + /// Failed to read the runtime arguments provided. + FailedToGetArgBytes = 60009, + /// The caller does not have sufficient security access. + InsufficientRights = 60010, + /// The list of Admin accounts provided is invalid. + InvalidAdminList = 60011, + /// The list of accounts that can mint tokens is invalid. + InvalidMinterList = 60012, + /// The list of accounts that can burn tokens is invalid. + InvalidBurnerList = 60013, + /// The list of accounts that can mint and burn is invalid. + InvalidMintAndBurnList = 60014, + /// The list of accounts with no access rights is invalid. + InvalidNoneList = 60015, + /// The flag to enable the mint and burn mode is invalid. + InvalidEnableMBFlag = 60016, + /// This contract instance cannot be initialized again. + AlreadyInitialized = 60017, + /// The mint and burn mode is disabled. + MintBurnDisabled = 60018 + } + + export class ContractError extends Error { + constructor(public code: number) { + super(ERROR_CODES[code]); + } + } \ No newline at end of file diff --git a/packages/cep18-client/src/events.ts b/packages/cep18-client/src/events.ts new file mode 100644 index 0000000..d29db10 --- /dev/null +++ b/packages/cep18-client/src/events.ts @@ -0,0 +1,80 @@ +import { CLKey, CLU256, CLValue } from 'casper-js-sdk'; + +export type Event> = { + name: string; + contractHash: `hash-${string}`; + contractPackageHash: `hash-${string}`; + data: E; +}; + +export interface DeployInfo { + deployHash: string; + timestamp: string; +} + +export type WithDeployInfo = E & { deployInfo: DeployInfo }; + +export type CEP18EventWithDeployInfo = WithDeployInfo; + +export type CEP18Event = Event< + | Mint + | Burn + | SetAllowance + | IncreaseAllowance + | DecreaseAllowance + | Transfer + | TransferFrom +>; + +export type EventsMap = { + Mint: Event; + Burn: Event; + SetAllowance: Event; + IncreaseAllowance: Event; + DecreaseAllowance: Event; + Transfer: Event; + TransferFrom: Event; +}; + +export type Mint = { + recipient: CLKey; + amount: CLU256; +}; + +export type Burn = { + owner: CLKey; + amount: CLU256; +}; + +export type SetAllowance = { + owner: CLKey; + spender: CLKey; + allowance: CLU256; +}; + +export type IncreaseAllowance = { + owner: CLKey; + spender: CLKey; + allowance: CLU256; + inc_by: CLU256; +}; + +export type DecreaseAllowance = { + owner: CLKey; + spender: CLKey; + allowance: CLU256; + decr_by: CLU256; +}; + +export type Transfer = { + sender: CLKey; + recipient: CLKey; + amount: CLU256; +}; + +export type TransferFrom = { + spender: CLKey; + owner: CLKey; + recipient: CLKey; + amount: CLU256; +}; \ No newline at end of file diff --git a/packages/cep18-client/src/index.ts b/packages/cep18-client/src/index.ts new file mode 100644 index 0000000..cd65c95 --- /dev/null +++ b/packages/cep18-client/src/index.ts @@ -0,0 +1,4 @@ +export * from './contract'; +export * from './events'; +export * from './types'; +export * from './client'; \ No newline at end of file diff --git a/packages/cep18-client/src/types.ts b/packages/cep18-client/src/types.ts new file mode 100644 index 0000000..5ca583e --- /dev/null +++ b/packages/cep18-client/src/types.ts @@ -0,0 +1,54 @@ +import { type BigNumberish } from '@ethersproject/bignumber'; +import { type CLKeyParameters } from 'casper-js-sdk'; + +export enum EVENTS_MODE { + NoEvents = 0, + CES = 1 +} + +export interface InstallArgs { + /** token name */ + name: string; + /** token symbol */ + symbol: string; + /** token decimals */ + decimals: BigNumberish; + /** token total supply */ + totalSupply: BigNumberish; + /** events mode, disabled by default */ + eventsMode?: EVENTS_MODE; + /** flag for mint and burn, false by default */ + enableMintAndBurn?: boolean; +} + +export interface TransferableArgs { + amount: BigNumberish; +} + +export interface TransferArgs extends TransferableArgs { + recipient: CLKeyParameters; +} + +export interface TransferFromArgs extends TransferArgs { + owner: CLKeyParameters; +} + +export interface ApproveArgs extends TransferableArgs { + spender: CLKeyParameters; +} + +export interface MintArgs extends TransferableArgs { + owner: CLKeyParameters; +} + +export interface BurnArgs extends TransferableArgs { + owner: CLKeyParameters; +} + +export interface ChangeSecurityArgs { + adminList?: CLKeyParameters[]; + minterList?: CLKeyParameters[]; + burnerList?: CLKeyParameters[]; + mintAndBurnList?: CLKeyParameters[]; + noneList?: CLKeyParameters[]; +} \ No newline at end of file diff --git a/packages/cep18-client/tsup.config.js b/packages/cep18-client/tsup.config.js new file mode 100644 index 0000000..90c5adb --- /dev/null +++ b/packages/cep18-client/tsup.config.js @@ -0,0 +1,10 @@ +import { defineConfig } from 'tsup'; + +export default defineConfig((options) => ({ + entry: ['src/index.ts'], + dts: true, + sourcemap: true, + format: ['iife', 'cjs', 'esm'], + clean: true, + ...options, +})); diff --git a/packages/cep47-client/package.json b/packages/cep47-client/package.json new file mode 100644 index 0000000..2370fc1 --- /dev/null +++ b/packages/cep47-client/package.json @@ -0,0 +1,31 @@ +{ + "name": "@casperdash/cep47-client", + "version": "0.0.1", + "description": "Vanilla JS library for Casper", + "repository": { + "type": "git", + "directory": "packages/cep47-client" + }, + "contributors": [ + "dev " + ], + "type": "module", + "main": "dist/index.js", + "types": "dist/index.d.ts", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1", + "build": "tsup src/index.ts", + "start": "pnpm build -- --watch" + }, + "keywords": [], + "author": "", + "license": "MIT", + "dependencies": { + "@casperdash/contract-client": "workspace:*", + "casper-js-sdk": "2.15.0" + }, + "devDependencies": { + "eslint-plugin-prettier": "^4.2.1", + "tsup": "^6.7.0" + } +} diff --git a/packages/cep47-client/src/client.ts b/packages/cep47-client/src/client.ts new file mode 100644 index 0000000..b32b5f3 --- /dev/null +++ b/packages/cep47-client/src/client.ts @@ -0,0 +1,4 @@ +export class CEP47Client { + constructor() { + } +} \ No newline at end of file diff --git a/packages/cep47-client/src/contract.ts b/packages/cep47-client/src/contract.ts new file mode 100644 index 0000000..57e677c --- /dev/null +++ b/packages/cep47-client/src/contract.ts @@ -0,0 +1,378 @@ +import { + CLValue, + CLPublicKey, + CLMap, + RuntimeArgs, + Contracts, + Keys, + CLKeyParameters, + CLValueBuilder, + CLValueParsers, + CLTypeTag + } from "casper-js-sdk"; +import { Contract } from "@casperdash/contract-client"; + + const { toCLMap } = Contracts; + + /** + * CEP47 installation parameters. + * + * @param name Name of the token. + * @param contractName Name of the contract. + * @param symbol Symbol of the token. + * @param meta A Map built with Strings containing contract metadata. + */ + export interface CEP47InstallArgs { + name: string, + contractName: string, + symbol: string, + meta: Map + }; + + /** + * CEP47 possible events. + */ + export enum CEP47Events { + MintOne = "cep47_mint_one", + TransferToken = "cep47_transfer_token", + BurnOne = "cep47_burn_one", + MetadataUpdate = 'cep47_metadata_update', + ApproveToken = 'cep47_approve_token' + } + + /** + * CEP47 event parser. + * It can be used with the `EventStream` from the `casper-js-sdk`. + * + * @param params Object containing a contractPackageHash (prefixed with "hash-") and eventNames (a list of CEP47Events). + * @param value A data object returned by the EventStream. + * + * @returns Object containing { error: boolean, success: boolean, data: Object }. + * If success is set to true, the data object contains a list of parsed events. + */ + export const CEP47EventParser = ( + { + contractPackageHash, + eventNames, + }: { contractPackageHash: string; eventNames: CEP47Events[] }, + value: any + ) => { + if (value.body.DeployProcessed.execution_result.Success) { + const { transforms } = + value.body.DeployProcessed.execution_result.Success.effect; + + const cep47Events = transforms.reduce((acc: any, val: any) => { + if ( + val.transform.hasOwnProperty("WriteCLValue") && + typeof val.transform.WriteCLValue.parsed === "object" && + val.transform.WriteCLValue.parsed !== null + ) { + const maybeCLValue = CLValueParsers.fromJSON( + val.transform.WriteCLValue + ); + const clValue = maybeCLValue.unwrap(); + if (clValue && clValue.clType().tag === CLTypeTag.Map) { + const hash = (clValue as CLMap).get( + CLValueBuilder.string("contract_package_hash") + ); + const event = (clValue as CLMap).get(CLValueBuilder.string("event_type")); + if ( + hash && + // NOTE: Calling toLowerCase() because currently the JS-SDK doesn't support checksumed hashes and returns all lower-case values + // Remove it after updating the SDK + hash.value() === contractPackageHash.slice(5).toLowerCase() && + event && + eventNames.includes(event.value()) + ) { + acc = [...acc, { name: event.value(), clValue }]; + } + } + } + return acc; + }, []); + + return { error: null, success: !!cep47Events.length, data: cep47Events }; + } + + return null; + }; + + + export class CEP47Contract extends Contract { + + constructor(public networkName: string, public contractHash?: string, public contractPackageHash?: string) { + super(contractHash, contractPackageHash); + } + + /** + * Installs the CEP47 contract. + * + * @param wasm Uin8Array with contents of the WASM file. + * @param args CEP47 installation args (see CEP47InstallArgs). + * @param paymentAmount The payment amount that will be used for this Deploy. + * @param deploySender The PublicKey of the Deploy sender. + * @param keys Optional parameter containing a list of keys that can be used to sign the Deploy. + * + * @returns Deploy that can be signed and sent to the network. + */ + public install( + wasm: Uint8Array, + args: CEP47InstallArgs, + paymentAmount: string, + deploySender: CLPublicKey, + keys?: Keys.AsymmetricKey[] + ) { + const runtimeArgs = RuntimeArgs.fromMap({ + name: CLValueBuilder.string(args.name), + contract_name: CLValueBuilder.string(args.contractName), + symbol: CLValueBuilder.string(args.symbol), + meta: toCLMap(args.meta), + }); + + return this.callSessionWasm(wasm, runtimeArgs, paymentAmount, deploySender, this.networkName, keys || []); + } + + /** + * Gives another account the right to spend tokens from this account. + * + * @param spender The account that can spend tokens from the owner account. + * @param ids The token IDs that can be spent. + * @param paymentAmount The payment amount that will be used for this Deploy. + * @param deploySender The PublicKey of the Deploy sender. + * @param keys Optional parameter containing a list of keys that can be used to sign the Deploy. + * + * @returns The Deploy that can be sent to the network. + */ + public async approve( + spender: CLKeyParameters, + ids: string[], + paymentAmount: string, + deploySender: CLPublicKey, + keys?: Keys.AsymmetricKey[] + ) { + const runtimeArgs = RuntimeArgs.fromMap({ + spender: CLValueBuilder.key(spender), + token_ids: CLValueBuilder.list(ids.map(id => CLValueBuilder.u256(id))) + }); + + return this.callEntrypoint( + 'approve', + runtimeArgs, + deploySender, + this.networkName, + paymentAmount, + keys + ); + } + + /** + * Creates new tokens for a specific recipient, given the token IDs and their metadata, paired in order. + * + * @param recipient The account for which tokens will be minted. + * @param ids The token IDs that will be minted for this account. + * @param metas The corresponding metadata for each minted token. + * @param paymentAmount The payment amount that will be used for this Deploy. + * @param deploySender The PublicKey of the Deploy sender. + * @param keys Optional parameter containing a list of keys that can be used to sign the Deploy. + * + * @returns The Deploy that can be sent to the network. + */ + public async mint( + recipient: CLKeyParameters, + ids: string[], + metas: Map[], + paymentAmount: string, + deploySender: CLPublicKey, + keys?: Keys.AsymmetricKey[] + ) { + const runtimeArgs = RuntimeArgs.fromMap({ + recipient: CLValueBuilder.key(recipient), + token_ids: CLValueBuilder.list(ids.map(id => CLValueBuilder.u256(id))), + token_metas: CLValueBuilder.list(metas.map(meta => toCLMap(meta))) + }); + + return this.callEntrypoint( + 'mint', + runtimeArgs, + deploySender, + this.networkName, + paymentAmount, + keys + ); + } + + /** + * Creates several new tokens with specific IDs but with the same metadata. + * + * @param recipient The account for which tokens will be minted. + * @param ids The token IDs that will be minted for this account. + * @param meta The metadata that will be used for each minted token. + * @param count Number of tokens to be minted. + * @param paymentAmount The payment amount that will be used for this Deploy. + * @param deploySender The PublicKey of the Deploy sender. + * @param keys Optional parameter containing a list of keys that can be used to sign the Deploy. + * + * @returns The Deploy that can be sent to the network. + */ + public async mintCopies( + recipient: CLKeyParameters, + ids: string[], + meta: Map, + count: number, + paymentAmount: string, + deploySender: CLPublicKey, + keys?: Keys.AsymmetricKey[] + ) { + const runtimeArgs = RuntimeArgs.fromMap({ + recipient: CLValueBuilder.key(recipient), + token_ids: CLValueBuilder.list(ids.map(id => CLValueBuilder.u256(id))), + token_meta: toCLMap(meta), + count: CLValueBuilder.u32(count) + }); + + return this.callEntrypoint( + 'mint_copies', + runtimeArgs, + deploySender, + this.networkName, + paymentAmount, + keys + ); + } + + /** + * Destroys the given tokens for the account specified. + * + * @param owner The account for which tokens will be burned. + * @param ids Token IDs that will be burned for this account. + * @param paymentAmount The payment amount that will be used for this Deploy. + * @param deploySender The PublicKey of the Deploy sender. + * @param keys Optional parameter containing a list of keys that can be used to sign the Deploy. + * + * @returns The Deploy that can be sent to the network. + */ + public async burn( + owner: CLKeyParameters, + ids: string[], + paymentAmount: string, + deploySender: CLPublicKey, + keys?: Keys.AsymmetricKey[] + ) { + const runtimeArgs = RuntimeArgs.fromMap({ + owner: CLValueBuilder.key(owner), + token_ids: CLValueBuilder.list(ids.map(id => CLValueBuilder.u256(id))), + }); + + return this.callEntrypoint( + 'burn', + runtimeArgs, + deploySender, + this.networkName, + paymentAmount, + keys + ); + } + + /** + * Transfers tokens from a given account to another account. + * + * @param recipient The account that will receive tokens from the token owner. + * @param owner The account that owns the tokens to be transferred. + * @param ids Token IDs that will be transferred to the recipient. + * @param paymentAmount The payment amount that will be used for this Deploy. + * @param deploySender The PublicKey of the Deploy sender. + * @param keys Optional parameter containing a list of keys that can be used to sign the Deploy. + * + * @returns The Deploy that can be sent to the network. + */ + public async transferFrom( + recipient: CLKeyParameters, + owner: CLKeyParameters, + ids: string[], + paymentAmount: string, + deploySender: CLPublicKey, + keys?: Keys.AsymmetricKey[] + ) { + const runtimeArgs = RuntimeArgs.fromMap({ + recipient: CLValueBuilder.key(recipient), + sender: CLValueBuilder.key(owner), + token_ids: CLValueBuilder.list(ids.map(id => CLValueBuilder.u256(id))), + }); + + return this.callEntrypoint( + 'transfer_from', + runtimeArgs, + deploySender, + this.networkName, + paymentAmount, + keys + ); + } + + /** + * Transfers tokens from the caller's account to another account. + * + * @param recipient The account that will receive the tokens transferred from the caller. + * @param ids Token IDs that will be transferred. + * @param paymentAmount The payment amount that will be used for this Deploy. + * @param deploySender The PublicKey of the Deploy sender. + * @param keys Optional parameter containing a list of keys that can be used to sign the Deploy. + * + * @returns The Deploy that can be sent to the network. + */ + public async transfer( + recipient: CLKeyParameters, + ids: string[], + paymentAmount: string, + deploySender: CLPublicKey, + keys?: Keys.AsymmetricKey[] + ) { + const runtimeArgs = RuntimeArgs.fromMap({ + recipient: CLValueBuilder.key(recipient), + token_ids: CLValueBuilder.list(ids.map(id => CLValueBuilder.u256(id))), + }); + + return this.callEntrypoint( + 'transfer', + runtimeArgs, + deploySender, + this.networkName, + paymentAmount, + keys + ); + } + + /** + * Updates the metadata of a token. + * + * @param id The ID of the token to be updated. + * @param meta The new metadata for the token specified. + * @param paymentAmount The payment amount that will be used for this Deploy. + * @param deploySender The PublicKey of the Deploy sender. + * @param keys Optional parameter containing a list of keys that can be used to sign the Deploy. + * + * @returns The Deploy that can be sent to the network. + */ + public async updateTokenMeta( + id: string, + meta: Map, + paymentAmount: string, + deploySender: CLPublicKey, + keys?: Keys.AsymmetricKey[] + ) { + const runtimeArgs = RuntimeArgs.fromMap({ + token_id: CLValueBuilder.u256(id), + token_meta: toCLMap(meta), + }); + + return this.callEntrypoint( + 'update_token_meta', + runtimeArgs, + deploySender, + this.networkName, + paymentAmount, + keys + ); + } + } + \ No newline at end of file diff --git a/packages/cep47-client/src/index.ts b/packages/cep47-client/src/index.ts new file mode 100644 index 0000000..453e9b8 --- /dev/null +++ b/packages/cep47-client/src/index.ts @@ -0,0 +1 @@ +export * from './contract'; \ No newline at end of file diff --git a/packages/cep47-client/tsup.config.js b/packages/cep47-client/tsup.config.js new file mode 100644 index 0000000..90c5adb --- /dev/null +++ b/packages/cep47-client/tsup.config.js @@ -0,0 +1,10 @@ +import { defineConfig } from 'tsup'; + +export default defineConfig((options) => ({ + entry: ['src/index.ts'], + dts: true, + sourcemap: true, + format: ['iife', 'cjs', 'esm'], + clean: true, + ...options, +})); diff --git a/packages/cep78-client/package.json b/packages/cep78-client/package.json new file mode 100644 index 0000000..b10e586 --- /dev/null +++ b/packages/cep78-client/package.json @@ -0,0 +1,31 @@ +{ + "name": "@casperdash/cep78-client", + "version": "0.0.1", + "description": "A client for interacting with CEP-78 compliant contracts", + "repository": { + "type": "git", + "directory": "packages/cep78-client" + }, + "contributors": [ + "dev " + ], + "main": "dist/index.js", + "types": "dist/index.d.ts", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1", + "build": "tsup src/index.ts", + "start": "pnpm build -- --watch" + }, + "keywords": [], + "author": "", + "license": "MIT", + "dependencies": { + "@make-software/ces-js-parser": "^1.3.3", + "@casperdash/contract-client": "workspace:*", + "casper-js-sdk": "2.15.0" + }, + "devDependencies": { + "eslint-plugin-prettier": "^4.2.1", + "tsup": "^6.7.0" + } +} diff --git a/packages/cep78-client/src/client.ts b/packages/cep78-client/src/client.ts new file mode 100644 index 0000000..8eb4f93 --- /dev/null +++ b/packages/cep78-client/src/client.ts @@ -0,0 +1,3 @@ +export class CEP78Client { + +} \ No newline at end of file diff --git a/packages/cep78-client/src/constants.ts b/packages/cep78-client/src/constants.ts new file mode 100644 index 0000000..a5a3040 --- /dev/null +++ b/packages/cep78-client/src/constants.ts @@ -0,0 +1 @@ +export const CEP78_CONTRACT_PACKAGE = "cep78_contract_package"; diff --git a/packages/cep78-client/src/contract.ts b/packages/cep78-client/src/contract.ts new file mode 100644 index 0000000..60247a2 --- /dev/null +++ b/packages/cep78-client/src/contract.ts @@ -0,0 +1,618 @@ +import { + CLPublicKey, + CLKey, + RuntimeArgs, + Keys, + CLValueBuilder, +} from "casper-js-sdk"; + +import { + CallConfig, + InstallArgs, + NamedKeyConventionMode, + ConfigurableVariables, + MintArgs, + RegisterArgs, + BurnArgs, + ApproveArgs, + ApproveAllArgs, + TransferArgs, + MigrateArgs, + NFTIdentifierMode, + MetadataMutability, + TokenMetadataArgs, + StoreBalanceOfArgs, + StoreApprovedArgs, + StoreOwnerOfArgs, +} from "./types"; + +import { Contract } from '@casperdash/contract-client'; + +export * from "./types"; + +enum ERRORS { + CONFLICT_CONFIG = "Conflicting arguments provided", +} + +const convertHashStrToHashBuff = (hashStr: string) => { + let hashHex = hashStr; + if (hashStr.startsWith("hash-")) { + hashHex = hashStr.slice(5); + } + return Buffer.from(hashHex, "hex"); +}; + +const buildHashList = (list: string[]) => + list.map((hashStr) => + CLValueBuilder.byteArray(convertHashStrToHashBuff(hashStr)) + ); + +export class CEP78Contract extends Contract { + public contractHashKey: CLKey; + + constructor( + public networkName: string, + contractHash?: string, + contractPackageHash?: string + ) { + super(contractHash, contractPackageHash); + + if (contractHash) { + this.contractHashKey = CLValueBuilder.key( + CLValueBuilder.byteArray(convertHashStrToHashBuff(contractHash)) + ); + } + } + + public setContractHash(contractHash: string, contractPackageHash?: string | undefined): void { + super.setContractHash(contractHash, contractPackageHash); + this.contractHashKey = CLValueBuilder.key( + CLValueBuilder.byteArray(convertHashStrToHashBuff(contractHash)) + ); + } + + public install( + args: InstallArgs, + paymentAmount: string, + deploySender: CLPublicKey, + wasm: Uint8Array, + keys?: Keys.AsymmetricKey[], + ) { + if (!wasm) { + throw new Error("You need to provide wasm"); + } + + const wasmToInstall = wasm; + + if ( + args.identifierMode === NFTIdentifierMode.Hash && + args.metadataMutability === MetadataMutability.Mutable + ) { + throw new Error( + `You can't combine NFTIdentifierMode.Hash and MetadataMutability.Mutable` + ); + } + + const runtimeArgs = RuntimeArgs.fromMap({ + collection_name: CLValueBuilder.string(args.collectionName), + collection_symbol: CLValueBuilder.string(args.collectionSymbol), + total_token_supply: CLValueBuilder.u64(args.totalTokenSupply), + ownership_mode: CLValueBuilder.u8(args.ownershipMode), + nft_kind: CLValueBuilder.u8(args.nftKind), + nft_metadata_kind: CLValueBuilder.u8(args.nftMetadataKind), + identifier_mode: CLValueBuilder.u8(args.identifierMode), + metadata_mutability: CLValueBuilder.u8(args.metadataMutability), + }); + + // TODO: Validate here + if (args.jsonSchema !== undefined) { + runtimeArgs.insert( + "json_schema", + CLValueBuilder.string(JSON.stringify(args.jsonSchema)) + ); + } + + if (args.mintingMode !== undefined) { + runtimeArgs.insert("minting_mode", CLValueBuilder.u8(args.mintingMode)); + } + + if (args.allowMinting !== undefined) { + runtimeArgs.insert( + "allow_minting", + CLValueBuilder.bool(args.allowMinting) + ); + } + + if (args.whitelistMode !== undefined) { + runtimeArgs.insert( + "whitelist_mode", + CLValueBuilder.u8(args.whitelistMode) + ); + } + + if (args.holderMode !== undefined) { + runtimeArgs.insert("holder_mode", CLValueBuilder.u8(args.holderMode)); + } + + if (args.contractWhitelist !== undefined) { + const list = buildHashList(args.contractWhitelist); + runtimeArgs.insert("contract_whitelist", CLValueBuilder.list(list)); + } + + if (args.burnMode !== undefined) { + runtimeArgs.insert("burn_mode", CLValueBuilder.u8(args.burnMode)); + } + + if (args.ownerReverseLookupMode !== undefined) { + runtimeArgs.insert( + "owner_reverse_lookup_mode", + CLValueBuilder.u8(args.ownerReverseLookupMode) + ); + } + + if (args.namedKeyConventionMode !== undefined) { + runtimeArgs.insert( + "named_key_convention", + CLValueBuilder.u8(args.namedKeyConventionMode) + ); + } + + if (args.namedKeyConventionMode === NamedKeyConventionMode.V1_0Custom) { + if (!args.accessKeyName || !args.hashKeyName) { + throw new Error( + "You need to provide 'accessKeyName' and 'hashKeyName' if you want to use NamedKeyConventionMode.V1_0Custom" + ); + } + runtimeArgs.insert( + "access_key_name", + CLValueBuilder.string(args.accessKeyName) + ); + runtimeArgs.insert( + "hash_key_name", + CLValueBuilder.string(args.hashKeyName) + ); + } + + if (args.eventsMode !== undefined) { + runtimeArgs.insert("events_mode", CLValueBuilder.u8(args.eventsMode)); + } + + return this.callSessionWasm( + wasmToInstall, + runtimeArgs, + paymentAmount, + deploySender, + this.networkName, + keys || [] + ); + } + + public setVariables( + args: ConfigurableVariables, + paymentAmount: string, + deploySender: CLPublicKey, + keys?: Keys.AsymmetricKey[] + ) { + const runtimeArgs = RuntimeArgs.fromMap({}); + + if (args.allowMinting !== undefined) { + runtimeArgs.insert( + "allow_minting", + CLValueBuilder.bool(args.allowMinting) + ); + } + + if (args.contractWhitelist !== undefined) { + const list = buildHashList(args.contractWhitelist); + runtimeArgs.insert("contract_whitelist", CLValueBuilder.list(list)); + } + + const preparedDeploy = this.callEntrypoint( + "set_variables", + runtimeArgs, + deploySender, + this.networkName, + paymentAmount, + keys + ); + + return preparedDeploy; + } + + public register( + args: RegisterArgs, + paymentAmount: string, + deploySender: CLPublicKey, + keys?: Keys.AsymmetricKey[] + ) { + const runtimeArgs = RuntimeArgs.fromMap({ + token_owner: CLValueBuilder.key(args.tokenOwner), + }); + + const preparedDeploy = this.callEntrypoint( + "register_owner", + runtimeArgs, + deploySender, + this.networkName, + paymentAmount, + keys + ); + + return preparedDeploy; + } + + public revoke( + paymentAmount: string, + deploySender: CLPublicKey, + keys?: Keys.AsymmetricKey[] + ) { + const preparedDeploy = this.callEntrypoint( + "revoke", + RuntimeArgs.fromMap({}), + deploySender, + this.networkName, + paymentAmount, + keys + ); + + return preparedDeploy; + } + + public mint( + args: MintArgs, + config: CallConfig, + paymentAmount: string, + deploySender: CLPublicKey, + keys?: Keys.AsymmetricKey[], + wasm?: Uint8Array + ) { + if (config.useSessionCode === false && !!wasm) + throw new Error(ERRORS.CONFLICT_CONFIG); + + const runtimeArgs = RuntimeArgs.fromMap({ + token_owner: CLValueBuilder.key(args.owner), + token_meta_data: CLValueBuilder.string(JSON.stringify(args.meta)), + }); + + if (config.useSessionCode) { + if (!wasm) { + throw new Error("Missing wasm argument"); + } + if (!args.collectionName) { + throw new Error("Missing collectionName argument"); + } + if (!this.contractHashKey) { + throw new Error("Missing contractHashKey argument"); + } + + const wasmToCall = wasm; + + runtimeArgs.insert("nft_contract_hash", this.contractHashKey); + runtimeArgs.insert( + "collection_name", + CLValueBuilder.string(args.collectionName) + ); + + const preparedDeploy = this.callSessionWasm( + wasmToCall, + runtimeArgs, + paymentAmount, + deploySender, + this.networkName, + keys + ); + + return preparedDeploy; + } + + const preparedDeploy = this.callEntrypoint( + "mint", + runtimeArgs, + deploySender, + this.networkName, + paymentAmount, + keys + ); + + return preparedDeploy; + } + + public burn( + args: BurnArgs, + paymentAmount: string, + deploySender: CLPublicKey, + keys?: Keys.AsymmetricKey[] + ) { + const runtimeArgs = RuntimeArgs.fromMap({}); + + if (args.tokenId !== undefined) { + runtimeArgs.insert("token_id", CLValueBuilder.u64(args.tokenId)); + } + + if (args.tokenHash !== undefined) { + runtimeArgs.insert("token_hash", CLValueBuilder.string(args.tokenHash)); + } + + const preparedDeploy = this.callEntrypoint( + "burn", + runtimeArgs, + deploySender, + this.networkName, + paymentAmount, + keys + ); + + return preparedDeploy; + } + + public transfer( + args: TransferArgs, + config: CallConfig = { useSessionCode: false }, + paymentAmount: string, + deploySender: CLPublicKey, + keys?: Keys.AsymmetricKey[], + wasm?: Uint8Array + ) { + if (config.useSessionCode === false && !!wasm) + throw new Error(ERRORS.CONFLICT_CONFIG); + + const runtimeArgs = RuntimeArgs.fromMap({ + target_key: CLValueBuilder.key(args.target), + source_key: CLValueBuilder.key(args.source), + }); + + if (args.tokenId) { + runtimeArgs.insert("is_hash_identifier_mode", CLValueBuilder.bool(false)); + runtimeArgs.insert("token_id", CLValueBuilder.u64(args.tokenId)); + } + + if (args.tokenHash) { + runtimeArgs.insert("is_hash_identifier_mode", CLValueBuilder.bool(true)); + runtimeArgs.insert("token_id", CLValueBuilder.u64(args.tokenHash)); + } + + if (config.useSessionCode) { + if (!wasm) { + throw new Error("Missing wasm argument"); + } + if (!this.contractHashKey) { + throw new Error("Missing contractHashKey argument"); + } + runtimeArgs.insert("nft_contract_hash", this.contractHashKey); + const wasmToCall = wasm; + + const preparedDeploy = this.callSessionWasm( + wasmToCall, + runtimeArgs, + paymentAmount, + deploySender, + this.networkName, + keys + ); + + return preparedDeploy; + } + + const preparedDeploy = this.callEntrypoint( + "transfer", + runtimeArgs, + deploySender, + this.networkName, + paymentAmount, + keys + ); + + return preparedDeploy; + } + + public setTokenMetadata( + args: TokenMetadataArgs, + paymentAmount: string, + deploySender: CLPublicKey, + keys?: Keys.AsymmetricKey[] + ) { + const runtimeArgs = RuntimeArgs.fromMap({ + token_meta_data: CLValueBuilder.string( + JSON.stringify(args.tokenMetaData) + ), + }); + + const preparedDeploy = this.callEntrypoint( + "set_token_metadata", + runtimeArgs, + deploySender, + this.networkName, + paymentAmount, + keys + ); + + return preparedDeploy; + } + + public approve( + args: ApproveArgs, + paymentAmount: string, + deploySender: CLPublicKey, + keys?: Keys.AsymmetricKey[] + ) { + const runtimeArgs = RuntimeArgs.fromMap({ + operator: CLValueBuilder.key(args.operator), + }); + + if (args.tokenId !== undefined) { + runtimeArgs.insert("token_id", CLValueBuilder.u64(args.tokenId)); + } + + if (args.tokenHash !== undefined) { + runtimeArgs.insert("token_hash", CLValueBuilder.string(args.tokenHash)); + } + + const preparedDeploy = this.callEntrypoint( + "approve", + runtimeArgs, + deploySender, + this.networkName, + paymentAmount, + keys + ); + + return preparedDeploy; + } + + public approveAll( + args: ApproveAllArgs, + paymentAmount: string, + deploySender: CLPublicKey, + keys?: Keys.AsymmetricKey[] + ) { + const runtimeArgs = RuntimeArgs.fromMap({ + token_owner: CLValueBuilder.key(args.tokenOwner), + approve_all: CLValueBuilder.bool(args.approveAll), + operator: CLValueBuilder.key(args.operator), + }); + + const preparedDeploy = this.callEntrypoint( + "set_approval_for_all", + runtimeArgs, + deploySender, + this.networkName, + paymentAmount, + keys + ); + + return preparedDeploy; + } + + public storeBalanceOf( + args: StoreBalanceOfArgs, + paymentAmount: string, + deploySender: CLPublicKey, + wasm: Uint8Array, + keys?: Keys.AsymmetricKey[], + ) { + if (!wasm) { + throw new Error("You need to provide wasm"); + } + + const wasmToCall = wasm; + + const runtimeArgs = RuntimeArgs.fromMap({ + nft_contract_hash: this.contractHashKey, + token_owner: args.tokenOwner, + key_name: CLValueBuilder.string(args.keyName), + }); + + const preparedDeploy = this.callSessionWasm( + wasmToCall, + runtimeArgs, + paymentAmount, + deploySender, + this.networkName, + keys + ); + + return preparedDeploy; + } + + public storeGetApproved( + args: StoreApprovedArgs, + paymentAmount: string, + deploySender: CLPublicKey, + wasm: Uint8Array, + keys?: Keys.AsymmetricKey[], + ) { + if (!wasm) { + throw new Error("You need to provide wasm"); + } + const wasmToCall = wasm; + + const runtimeArgs = RuntimeArgs.fromMap({ + nft_contract_hash: this.contractHashKey, + key_name: CLValueBuilder.string(args.keyName), + }); + + if (args.tokenId) { + runtimeArgs.insert("is_hash_identifier_mode", CLValueBuilder.bool(false)); + runtimeArgs.insert("token_id", CLValueBuilder.u64(args.tokenId)); + } + + if (args.tokenHash) { + runtimeArgs.insert("is_hash_identifier_mode", CLValueBuilder.bool(true)); + runtimeArgs.insert("token_id", CLValueBuilder.u64(args.tokenHash)); + } + + const preparedDeploy = this.callSessionWasm( + wasmToCall, + runtimeArgs, + paymentAmount, + deploySender, + this.networkName, + keys + ); + + return preparedDeploy; + } + + public storeOwnerOf( + args: StoreOwnerOfArgs, + paymentAmount: string, + deploySender: CLPublicKey, + wasm: Uint8Array, + keys?: Keys.AsymmetricKey[], + ) { + if (!wasm) { + throw new Error("You need to provide wasm"); + } + + const wasmToCall = wasm; + + const runtimeArgs = RuntimeArgs.fromMap({ + nft_contract_hash: this.contractHashKey, + key_name: CLValueBuilder.string(args.keyName), + }); + + if (args.tokenId) { + runtimeArgs.insert("is_hash_identifier_mode", CLValueBuilder.bool(false)); + runtimeArgs.insert("token_id", CLValueBuilder.u64(args.tokenId)); + } + + if (args.tokenHash) { + runtimeArgs.insert("is_hash_identifier_mode", CLValueBuilder.bool(true)); + runtimeArgs.insert("token_id", CLValueBuilder.u64(args.tokenHash)); + } + + const preparedDeploy = this.callSessionWasm( + wasmToCall, + runtimeArgs, + paymentAmount, + deploySender, + this.networkName, + keys + ); + + return preparedDeploy; + } + + + public migrate( + args: MigrateArgs, + paymentAmount: string, + deploySender: CLPublicKey, + keys?: Keys.AsymmetricKey[] + ) { + const runtimeArgs = RuntimeArgs.fromMap({ + collection_name: CLValueBuilder.string(args.collectionName), + }); + + const preparedDeploy = this.callEntrypoint( + "migrate", + runtimeArgs, + deploySender, + this.networkName, + paymentAmount, + keys + ); + + return preparedDeploy; + } +} diff --git a/packages/cep78-client/src/events.ts b/packages/cep78-client/src/events.ts new file mode 100644 index 0000000..e215362 --- /dev/null +++ b/packages/cep78-client/src/events.ts @@ -0,0 +1,97 @@ +import { + CLValueParsers, + CLMap, + CLString, + CLValueBuilder, + CLTypeTag, + CLValue, + CasperServiceByJsonRPC, +} from "casper-js-sdk"; + +import { Parser } from '@make-software/ces-js-parser'; +import { CEP78_CONTRACT_PACKAGE } from "./constants"; +import { EventItem, EventParsed, CEP47Events, Transform } from "./types"; + +export const CEP47EventParserFactory = + ({ + contractPackageHash, + eventNames, + }: { + contractPackageHash: string; + eventNames: CEP47Events[]; + }) => + (value: EventItem) => { + if (!value.body.DeployProcessed.execution_result.Success) { + return null; + } + + if (value.body.DeployProcessed.execution_result.Success) { + const { transforms } = + value.body.DeployProcessed.execution_result.Success.effect; + + const cep47Events = transforms.reduce( + (acc: EventParsed[], val: Transform) => { + if (val.transform.WriteCLValue?.cl_type === "Any") { + const maybeCLValue = CLValueParsers.fromBytesWithType( + Buffer.from(val.transform.WriteCLValue?.bytes, "hex") + ); + const clValue = maybeCLValue.unwrap(); + + if (clValue?.clType().tag === CLTypeTag.Map) { + const hash = (clValue as CLMap).get( + CLValueBuilder.string(CEP78_CONTRACT_PACKAGE) + ); + + const hashToCompare = (hash as CLString).value().slice(21); + + const event = (clValue as CLMap) + .get(CLValueBuilder.string("event_type"))! + .value() as string; + + if ( + hash && + hashToCompare === contractPackageHash.slice(5) && + event && + eventNames.includes(event as CEP47Events) + ) { + /* eslint-disable-next-line no-param-reassign */ + acc = [...acc, { name: event, clValue }]; + } + } + } + return acc; + }, + [] + ); + + // For now we're returning error: null because failed deploys doesn't contain contract-package-hash so we can't identify them. + // But as this is part of node-1.5 release I'm keeping this so we won't change interface here. + return { error: null, success: !!cep47Events.length, data: cep47Events }; + } + + return null; + }; + +export const CESEventParserFactory = + ({ + contractHashes, + // TODO: IDEALLY in future I would love to have here a schema as an argument instead of casperClient. That way the whole thing can be initialized offline as the whole client. + casperClient, + }: { + contractHashes: string[]; + casperClient: CasperServiceByJsonRPC; + }) => + async (event: EventItem) => { + const validatedHashes = contractHashes.map((hash) => + hash.startsWith("hash-") ? hash.slice(5) : hash + ); + const parser = await Parser.create(casperClient as any, validatedHashes); + + try { + const toParse = event.body.DeployProcessed.execution_result; + const events = parser.parseExecutionResult(toParse); + return { error: null, success: !!events.length, data: events }; + } catch (error: unknown) { + return { error, success: false, data: null }; + } + }; diff --git a/packages/cep78-client/src/index.ts b/packages/cep78-client/src/index.ts new file mode 100644 index 0000000..5c9ca75 --- /dev/null +++ b/packages/cep78-client/src/index.ts @@ -0,0 +1,5 @@ +export * from './events'; +export * from './types'; +export * from './constants'; +export * from './client'; +export * from './contract'; diff --git a/packages/cep78-client/src/types.ts b/packages/cep78-client/src/types.ts new file mode 100644 index 0000000..1e8962b --- /dev/null +++ b/packages/cep78-client/src/types.ts @@ -0,0 +1,232 @@ +import { CLType, CLValue, CLKeyParameters } from "casper-js-sdk"; + +export enum CEP47Events { + Mint = "Mint", + Burn = "Burn", + Approval = "Approval", + ApprovalRevoked = "ApprovalRevoked", + ApprovalForAll = "ApprovalForAll", + RevokedForAll = "RevokedForAll", + Transfer = "Transfer", + MetadataUpdated = "MetadataUpdated", + VariablesSet = "VariablesSet", + Migration = "Migration", +} + +export interface CallConfig { + useSessionCode: boolean; +} + +export enum NamedKeyConventionMode { + DerivedFromCollectionName, + V1_0Standard, + V1_0Custom, +} + +export enum NFTOwnershipMode { + Minter, + Assigned, + Transferable, +} + +export enum NFTKind { + Physical, + Digital, + Virtual, +} + +export enum NFTHolderMode { + Accounts, + Contracts, + Mixed, +} + +export enum NFTMetadataKind { + CEP78, + NFT721, + Raw, + CustomValidated, +} + +export enum NFTIdentifierMode { + Ordinal, + Hash, +} + +export enum MetadataMutability { + Immutable, + Mutable, +} + +export enum MintingMode { + Installer, + Public, + ACL +} + +export enum BurnMode { + Burnable, + NonBurnable, +} + +export enum WhitelistMode { + Unlocked, + Locked, +} + +export enum OwnerReverseLookupMode { + NoLookup, + Complete, + TransfersOnly, +} + +export enum EventsMode { + NoEvents, + CEP47, + CES, +} + +export interface JSONSchemaEntry { + name: string; + description: string; + required: boolean; +} + +export interface JSONSchemaObject { + properties: Record; +} + +export type ConfigurableVariables = { + allowMinting?: boolean; + contractWhitelist?: string[]; +}; + +export type InstallArgs = { + collectionName: string; + collectionSymbol: string; + totalTokenSupply: string; + ownershipMode: NFTOwnershipMode; + nftKind: NFTKind; + jsonSchema?: JSONSchemaObject; + nftMetadataKind: NFTMetadataKind; + identifierMode: NFTIdentifierMode; + metadataMutability: MetadataMutability; + mintingMode?: MintingMode; + whitelistMode?: WhitelistMode; + holderMode?: NFTHolderMode; + burnMode?: BurnMode; + ownerReverseLookupMode?: OwnerReverseLookupMode; + namedKeyConventionMode?: NamedKeyConventionMode; + accessKeyName?: string; + hashKeyName?: string; + eventsMode?: EventsMode; +} & ConfigurableVariables; + +export interface RegisterArgs { + tokenOwner: CLKeyParameters; +} + +export interface MintArgs { + owner: CLKeyParameters; + meta: Record; + collectionName?: string; +} + +export interface TokenArgs { + tokenId?: string; + tokenHash?: string; +} + +export type BurnArgs = TokenArgs; + +export type TransferArgs = { + target: CLKeyParameters; + source: CLKeyParameters; +} & TokenArgs; + +export type TokenMetadataArgs = { + tokenMetaData: Record; +}; + +export type StoreBalanceOfArgs = { + tokenOwner: CLKeyParameters; + keyName: string; +}; + +export type StoreApprovedArgs = { + keyName: string; +} & TokenArgs; + +export type StoreOwnerOfArgs = StoreApprovedArgs; + +export type ApproveArgs = { + operator: CLKeyParameters; +} & TokenArgs; + +export type ApproveAllArgs = { + operator: CLKeyParameters; + approveAll: boolean; + tokenOwner: CLKeyParameters; +}; + +export type MigrateArgs = { + collectionName: string; +}; + +type WriteCLValue = { + cl_type: string; + bytes: string; + parsed: string; +}; + +// TODO: Most of this types can be moved to casper-js-sdk in feature release +// https://github.com/casper-ecosystem/casper-js-sdk/issues/268 + +type TransformValue = { + WriteCLValue?: WriteCLValue; +}; + +export interface Transform { + key: string; + transform: TransformValue; +} + +interface Effect { + transforms: Transform[]; +} + +interface ExecutionResultBody { + cost: number; + error_message?: string | null; + transfers: string[]; + effect: Effect; +} + +export interface ExecutionResult { + Success?: ExecutionResultBody; + Failure?: ExecutionResultBody; +} + +export interface WithRemainder { + data: T; + remainder: Uint8Array; +} + +export interface RawCLValue { + clType: CLType; + bytes: Uint8Array; +} + +export interface EventItem { + id: number; + body: { + DeployProcessed: { + execution_result: ExecutionResult; + }; + }; +} + +export interface EventParsed { + name: string; + clValue: CLValue; +} diff --git a/packages/cep78-client/tsup.config.js b/packages/cep78-client/tsup.config.js new file mode 100644 index 0000000..90c5adb --- /dev/null +++ b/packages/cep78-client/tsup.config.js @@ -0,0 +1,10 @@ +import { defineConfig } from 'tsup'; + +export default defineConfig((options) => ({ + entry: ['src/index.ts'], + dts: true, + sourcemap: true, + format: ['iife', 'cjs', 'esm'], + clean: true, + ...options, +})); diff --git a/packages/contract-client/package.json b/packages/contract-client/package.json new file mode 100644 index 0000000..3d57235 --- /dev/null +++ b/packages/contract-client/package.json @@ -0,0 +1,29 @@ +{ + "name": "@casperdash/contract-client", + "version": "0.0.4", + "description": "A simple, lightweight, and extensible library for interacting with the Casper Network.", + "repository": { + "type": "git", + "directory": "packages/contract-client" + }, + "contributors": [ + "dev " + ], + "main": "dist/index.js", + "types": "dist/index.d.ts", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1", + "build": "tsup src/index.ts", + "start": "pnpm build -- --watch" + }, + "keywords": [], + "author": "", + "license": "MIT", + "dependencies": { + "casper-js-sdk": "2.15.0" + }, + "devDependencies": { + "eslint-plugin-prettier": "^4.2.1", + "tsup": "^7.2.0" + } +} diff --git a/packages/contract-client/src/contract.ts b/packages/contract-client/src/contract.ts new file mode 100644 index 0000000..12d4dd8 --- /dev/null +++ b/packages/contract-client/src/contract.ts @@ -0,0 +1,204 @@ +import { + CLPublicKey, + DeployUtil, + Keys, + RuntimeArgs, +} from 'casper-js-sdk'; + +export const DEFAULT_DEPLOY_TTL = 1800000; + +/** + * Convert a contract hash hexadecimal string to a byte array + * @param contractHash Hexadecimal string of a contract hash, without the "hash-" prefix + * @returns `Uint8Array` representation of the contract hash + */ +export const contractHashToByteArray = (contractHash: string) => + Uint8Array.from(Buffer.from(contractHash, 'hex')); + +/** Smart contract object for interacting with contracts on the Casper Network */ +export class Contract { + public contractHash?: string; + public contractPackageHash?: string; + + constructor( + contractHash?: string, + contractPackageHash?: string + ) { + if (contractHash) { + this.setContractHash(contractHash, contractPackageHash); + } + } + + /** + * Attaches an on-chain smart contract to this `Contract` object using its hexadecimal string typed hash. The contract hash must include the prefix "hash-" + * @param contractHash The hexadecimal smart contract hash, with the prefix "hash-" + * @param contractPackageHash The hexadecimal smart contract package hash, with the prefix "hash-". This parameter is optional, and only used when there is event processing present. + */ + public setContractHash( + contractHash: string, + contractPackageHash?: string + ): void { + if ( + !contractHash.startsWith('hash-') || + (contractPackageHash && !contractPackageHash.startsWith('hash-')) + ) { + throw new Error( + 'Please provide contract hash in a format that contains hash- prefix.' + ); + } + + this.contractHash = contractHash; + this.contractPackageHash = contractPackageHash; + } + + /** + * Install a smart contract on a Casper Network + * @param wasm `Uint8Array` representation of a WebAssembly compiled smart contract + * @param args The runtime arguments for the installment deploy + * @param paymentAmount The gas payment in motes, where 1 mote = 10^-9 CSPR. Use a stringified base-10 integer + * @param sender `CLPublicKey` of the sender of the installment deploy + * @param chainName The name of the network the installment deploy will be sent to. You can get the network name of a node by calling the REST endpoint `:8888/status` + * @param signingKeys An array of keypairs used to sign the deploy. If you are signing with one key, use an array with only the one keypair. If instead you are utilizing multi-sig functionality, provide multiple keypair objects in the array. + * @returns The installment deploy, to be sent to a node. + * @remarks In the future, this method will be an alias to a different method: `callModuleBytesEntrypoint` + */ + public callSessionWasm( + wasm: Uint8Array, + args: RuntimeArgs, + paymentAmount: string, + sender: CLPublicKey, + chainName: string, + signingKeys: Keys.AsymmetricKey[] = [] + ): DeployUtil.Deploy { + const deploy = DeployUtil.makeDeploy( + new DeployUtil.DeployParams(sender, chainName), + DeployUtil.ExecutableDeployItem.newModuleBytes(wasm, args), + DeployUtil.standardPayment(paymentAmount) + ); + + if (!signingKeys || signingKeys.length === 0) { + return deploy; + } + + const signedDeploy = deploy.sign(signingKeys); + + return signedDeploy; + } + + private checkSetup(): boolean { + if (this.contractHash) return true; + throw Error('You need to setContract before running this method.'); + } + + /** + * Call an entrypoint of a smart contract. + * @param entryPoint The name of an entrypoint of a smart contract that you wish to call + * @param args The runtime arguments for the deploy + * @param sender `CLPublicKey` of the sender of the deploy + * @param chainName The name of the network the installment deploy will be sent to. You can get the network name of a node by calling the REST endpoint `:8888/status` + * @param paymentAmount The gas payment in motes, where 1 mote = 10^-9 CSPR. Use a stringified base-10 integer + * @param signingKeys An array of keypairs used to sign the deploy. If you are signing with one key, use an array with only the one keypair. If instead you are utilizing multi-sig functionality, provide multiple keypair objects in the array. + * @param ttl The time that the deploy has to live. If the deploy awaits execution longer than this interval, in seconds, then the deploy will fail. This parameter will default to the [DEFAULT_DEPLOY_TTL](../constants.ts#L1) if not specified. + * @returns A Deploy object that can be sent to a node to call an entrypoint + */ + public callEntrypoint( + entryPoint: string, + args: RuntimeArgs, + sender: CLPublicKey, + chainName: string, + paymentAmount: string, + signingKeys: Keys.AsymmetricKey[] = [], + ttl: number = DEFAULT_DEPLOY_TTL + ): DeployUtil.Deploy { + this.checkSetup(); + + const contractHashAsByteArray = contractHashToByteArray( + this.contractHash!.slice(5) + ); + + const deploy = DeployUtil.makeDeploy( + new DeployUtil.DeployParams(sender, chainName, 1, ttl), + DeployUtil.ExecutableDeployItem.newStoredContractByHash( + contractHashAsByteArray, + entryPoint, + args + ), + DeployUtil.standardPayment(paymentAmount) + ); + + if (!signingKeys || signingKeys.length === 0) { + return deploy; + } + + const signedDeploy = deploy.sign(signingKeys); + + return signedDeploy; + } + +// /** +// * Query data from a smart contract. +// * @param path Path to the data requested +// * @param casperClient A `CasperClient` object with a connected node. This parameter is not required if there is an existing `CasperClient` object attached to this `Contract` instance +// * @param stateRootHash The state root hash at which to query this data. If no state root hash is provided, the most recent one will be queried and used. +// * @returns A `Promise` that resolves to a stored `CLValue` within the smart contract. This `Promise` will be rejected if there is no `CasperClient` to use, or if the stored value is unavailable or invalid +// */ +// public async queryContractData( +// path: string[] = [], +// casperClient?: CasperClient, +// stateRootHash?: string +// ): Promise { +// const client = casperClient || this.casperClient; +// if (!client) throw Error(NO_CLIENT_ERR); + +// const stateRootHashToUse = +// stateRootHash || (await client.nodeClient.getStateRootHash()); + +// const contractData = await client.nodeClient.getBlockState( +// stateRootHashToUse, +// this.contractHash!, +// path +// ); + +// if (contractData && contractData.CLValue?.isCLValue) { +// return contractData.CLValue.value(); +// } else { +// throw Error('Invalid stored value'); +// } +// } + +// /** +// * Query a dictionary associated with a smart contract to obtain stored key-value pairs. +// * @param dictionaryName The name of the dictionary to be queried +// * @param dictionaryItemKey The key of the key-value pair to be obtained +// * @param stateRootHash The state root hash at which to query this data. If no state root hash is provided, the most recent one will be queried and used. +// * @param casperClient A `CasperClient` object with a connected node. This parameter is not required if there is an existing `CasperClient` object attached to this `Contract` instance +// * @returns A `Promise` which resolves to a `CLValue`. This `Promise` will be rejected if there is no `CasperClient` to use, or if the value in the dictionaryName at the key dictionaryItemKey is unavailable or invalid +// */ +// public async queryContractDictionary( +// dictionaryName: string, +// dictionaryItemKey: string, +// stateRootHash?: string, +// casperClient?: CasperClient +// ): Promise { +// this.checkSetup(); + +// const client = casperClient || this.casperClient; +// if (!client) throw Error(NO_CLIENT_ERR); + +// const stateRootHashToUse = +// stateRootHash || (await client.nodeClient.getStateRootHash()); + +// const storedValue = await client.nodeClient.getDictionaryItemByName( +// stateRootHashToUse, +// this.contractHash!, +// dictionaryName, +// dictionaryItemKey +// ); + +// if (storedValue && storedValue.CLValue?.isCLValue) { +// return storedValue.CLValue; +// } else { +// throw Error('Invalid stored value'); +// } +// } +} \ No newline at end of file diff --git a/packages/contract-client/src/index.ts b/packages/contract-client/src/index.ts new file mode 100644 index 0000000..453e9b8 --- /dev/null +++ b/packages/contract-client/src/index.ts @@ -0,0 +1 @@ +export * from './contract'; \ No newline at end of file diff --git a/packages/contract-client/tsup.config.js b/packages/contract-client/tsup.config.js new file mode 100644 index 0000000..90c5adb --- /dev/null +++ b/packages/contract-client/tsup.config.js @@ -0,0 +1,10 @@ +import { defineConfig } from 'tsup'; + +export default defineConfig((options) => ({ + entry: ['src/index.ts'], + dts: true, + sourcemap: true, + format: ['iife', 'cjs', 'esm'], + clean: true, + ...options, +})); diff --git a/packages/utils/package.json b/packages/utils/package.json new file mode 100644 index 0000000..bc86fe9 --- /dev/null +++ b/packages/utils/package.json @@ -0,0 +1,53 @@ +{ + "name": "@casperdash/utils", + "version": "1.0.15", + "description": "Casperdash utils", + "private": false, + "keywords": [ + "typescript" + ], + "main": "dist/lib.node.js", + "types": "dist/index.d.ts", + "scripts": { + "prebuild": "pnpm run clean", + "build": "webpack --config webpack.config.js", + "build-all": "pnpm clean && pnpm build", + "deploy": "pnpm build-all && pnpm publish", + "clean": "rimraf -r dist", + "test": "jest" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/CasperDash/casperdash-utils.git" + }, + "author": "CasperDash", + "license": "MIT", + "bugs": { + "url": "https://github.com/CasperDash/casperdash-utils/issues" + }, + "homepage": "https://github.com/CasperDash/casperdash-utils", + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "blakejs": "^1.2.1", + "casper-js-sdk": "2.15.0", + "webpack": "^5.88.2" + }, + "devDependencies": { + "@rollup/plugin-node-resolve": "^13.3.0", + "@types/jest": "^28.1.8", + "copy-webpack-plugin": "^11.0.0", + "esbuild": "^0.15.18", + "jest": "^28.1.3", + "jest-environment-jsdom": "^28.1.3", + "rimraf": "^3.0.2", + "ts-jest": "^28.0.8", + "ts-loader": "^9.4.4", + "tsc-alias": "^1.8.8", + "typescript": "^4.9.5", + "webpack-cli": "^4.10.0", + "webpack-node-externals": "^3.0.0" + }, + "publishConfig": { + "access": "public" + } +} diff --git a/src/index.ts b/packages/utils/src/index.ts similarity index 100% rename from src/index.ts rename to packages/utils/src/index.ts diff --git a/packages/utils/src/services/CEP78.ts b/packages/utils/src/services/CEP78.ts new file mode 100644 index 0000000..65c4979 --- /dev/null +++ b/packages/utils/src/services/CEP78.ts @@ -0,0 +1,628 @@ +import { BigNumber } from '@ethersproject/bignumber'; +import { + CLPublicKey, + CLKey, + RuntimeArgs, + CasperClient, + Contracts, + Keys, + CLValueBuilder, + CLMapType, + CLType, + CLU8Type, + CLKeyType, +} from 'casper-js-sdk'; + +import { + CallConfig, + InstallArgs, + NamedKeyConventionMode, + ConfigurableVariables, + MintArgs, + RegisterArgs, + BurnArgs, + ApproveArgs, + ApproveAllArgs, + TransferArgs, + BurnMode, + WhitelistMode, + NFTHolderMode, + NFTIdentifierMode, + MetadataMutability, + NFTOwnershipMode, + NFTMetadataKind, + NFTKind, + TokenMetadataArgs, + OwnerReverseLookupMode, + Cep78Options, +} from '../types/cep78'; + +const { Contract } = Contracts; + + +enum ERRORS { + CONFLICT_CONFIG = 'Conflicting arguments provided', +} + +const fetchWASM = async (url: string): Promise => { + return fetch(url, { + headers: { + 'Content-Type': 'application/wasm', + }, + }) + .then((response) => response.arrayBuffer()) + .then((bytes) => new Uint8Array(bytes)); +}; + +const convertHashStrToHashBuff = (hashStr: string) => { + let hashHex = hashStr; + if (hashStr.startsWith('hash-')) { + hashHex = hashStr.slice(5); + } + return Buffer.from(hashHex, 'hex'); +}; + +const buildKeyHashList = (list: string[]) => + list.map((hashStr) => + CLValueBuilder.key( + CLValueBuilder.byteArray(convertHashStrToHashBuff(hashStr)) + ) + ); + +class CEP78Client { + private casperClient: CasperClient; + + public contractClient: Contracts.Contract; + + public contractHashKey!: CLKey; + + private options!: Cep78Options + + constructor(public nodeAddress: string, public networkName: string, _options?: Cep78Options) { + this.casperClient = new CasperClient(nodeAddress); + this.contractClient = new Contract(this.casperClient); + this.options = this.options; + } + + public async fetchContractWASM() { + if (!this.options.contractWASM) { + throw new Error('You need to provide a contractWASM'); + } + return fetchWASM(this.options.contractWASM); + }; + + public async fetchTransferCallWASM() { + if (!this.options.transferCallWASM) { + throw new Error('You need to provide a transferCallWASM'); + } + + return fetchWASM(this.options.transferCallWASM); + }; + + public async install( + args: InstallArgs, + paymentAmount: string, + deploySender: CLPublicKey, + keys?: Keys.AsymmetricKey[], + wasm?: Uint8Array + ) { + const wasmToInstall = wasm || (await this.fetchContractWASM()); + + if ( + args.identifierMode === NFTIdentifierMode.Hash && + args.metadataMutability === MetadataMutability.Mutable + ) { + throw new Error( + `You can't combine NFTIdentifierMode.Hash and MetadataMutability.Mutable` + ); + } + + const runtimeArgs = RuntimeArgs.fromMap({ + collection_name: CLValueBuilder.string(args.collectionName), + collection_symbol: CLValueBuilder.string(args.collectionSymbol), + total_token_supply: CLValueBuilder.u64(args.totalTokenSupply), + ownership_mode: CLValueBuilder.u8(args.ownershipMode), + nft_kind: CLValueBuilder.u8(args.nftKind), + nft_metadata_kind: CLValueBuilder.u8(args.nftMetadataKind), + identifier_mode: CLValueBuilder.u8(args.identifierMode), + metadata_mutability: CLValueBuilder.u8(args.metadataMutability), + }); + + if (args.jsonSchema !== undefined) { + runtimeArgs.insert( + 'json_schema', + CLValueBuilder.string(JSON.stringify(args.jsonSchema)) + ); + } + + if (args.mintingMode !== undefined) { + runtimeArgs.insert('minting_mode', CLValueBuilder.u8(args.mintingMode)); + } + + if (args.allowMinting !== undefined) { + runtimeArgs.insert( + 'allow_minting', + CLValueBuilder.bool(args.allowMinting) + ); + } + + if (args.whitelistMode !== undefined) { + runtimeArgs.insert( + 'whitelist_mode', + CLValueBuilder.u8(args.whitelistMode) + ); + } + + if (args.holderMode !== undefined) { + runtimeArgs.insert('holder_mode', CLValueBuilder.u8(args.holderMode)); + } + + if (args.contractWhitelist !== undefined) { + const list = buildKeyHashList(args.contractWhitelist); + runtimeArgs.insert('contract_whitelist', CLValueBuilder.list(list)); + } + + if (args.burnMode !== undefined) { + runtimeArgs.insert('burn_mode', CLValueBuilder.u8(args.burnMode)); + } + + if (args.ownerReverseLookupMode !== undefined) { + runtimeArgs.insert( + 'owner_reverse_lookup_mode', + CLValueBuilder.u8(args.ownerReverseLookupMode) + ); + } + + if (args.namedKeyConventionMode !== undefined) { + runtimeArgs.insert( + 'named_key_convention', + CLValueBuilder.u8(args.namedKeyConventionMode) + ); + } + + if (args.namedKeyConventionMode === NamedKeyConventionMode.V1_0Custom) { + if (!args.accessKeyName || !args.hashKeyName) { + throw new Error( + "You need to provide 'accessKeyName' and 'hashKeyName' if you want to use NamedKeyConventionMode.V1_0Custom" + ); + } + runtimeArgs.insert( + 'access_key_name', + CLValueBuilder.string(args.accessKeyName) + ); + runtimeArgs.insert( + 'hash_key_name', + CLValueBuilder.string(args.hashKeyName) + ); + } + + if (args.eventsMode !== undefined) { + runtimeArgs.insert('events_mode', CLValueBuilder.u8(args.eventsMode)); + } + + return this.contractClient.install( + wasmToInstall, + runtimeArgs, + paymentAmount, + deploySender, + this.networkName, + keys || [] + ); + } + + public setContractHash(contractHash: string, contractPackageHash?: string) { + this.contractClient.setContractHash(contractHash, contractPackageHash); + this.contractHashKey = CLValueBuilder.key( + CLValueBuilder.byteArray(convertHashStrToHashBuff(contractHash)) + ); + } + + public async collectionName() { + return this.contractClient.queryContractData(['collection_name']); + } + + public async collectionSymbol() { + return this.contractClient.queryContractData(['collection_symbol']); + } + + public async tokenTotalSupply() { + return this.contractClient.queryContractData(['total_token_supply']); + } + + public async numOfMintedTokens() { + const numberOfMintedTokens = await this.contractClient.queryContractData([ + 'number_of_minted_tokens', + ]); + + const u8res = (numberOfMintedTokens as BigNumber).toNumber(); + + return u8res; + } + + public async getContractWhitelist() { + return this.contractClient.queryContractData(['contract_whitelist']); + } + + public async getAllowMintingConfig() { + return this.contractClient.queryContractData(['allow_minting']); + } + + public async getReportingModeConfig() { + const internalValue = await this.contractClient.queryContractData([ + 'reporting_mode', + ]); + const u8res = (internalValue as BigNumber).toNumber(); + return OwnerReverseLookupMode[u8res] as keyof typeof OwnerReverseLookupMode; + } + + public async getWhitelistModeConfig() { + const internalValue = await this.contractClient.queryContractData([ + 'whitelist_mode', + ]); + const u8res = (internalValue as BigNumber).toNumber(); + return WhitelistMode[u8res] as keyof typeof WhitelistMode; + } + + public async getBurnModeConfig() { + const internalValue = await this.contractClient.queryContractData([ + 'burn_mode', + ]); + const u8res: string = (internalValue as BigNumber).toString(); + return (BurnMode as unknown as Record)[ + u8res + ] as keyof typeof BurnMode; + } + + public async getHolderModeConfig() { + const internalValue = await this.contractClient.queryContractData([ + 'holder_mode', + ]); + const u8res = (internalValue as BigNumber).toNumber(); + return NFTHolderMode[u8res] as keyof typeof NFTHolderMode; + } + + public async getIdentifierModeConfig() { + const internalValue = await this.contractClient.queryContractData([ + 'identifier_mode', + ]); + const u8res = (internalValue as BigNumber).toNumber(); + return NFTIdentifierMode[u8res] as keyof typeof NFTIdentifierMode; + } + + public async getMetadataMutabilityConfig() { + const internalValue = await this.contractClient.queryContractData([ + 'metadata_mutability', + ]); + const u8res = (internalValue as BigNumber).toNumber(); + return MetadataMutability[u8res] as keyof typeof MetadataMutability; + } + + public async getNFTKindConfig() { + const internalValue = await this.contractClient.queryContractData([ + 'nft_kind', + ]); + const u8res = (internalValue as BigNumber).toNumber(); + return NFTKind[u8res] as keyof typeof NFTKind; + } + + public async getMetadataKindConfig() { + const internalValue = await this.contractClient.queryContractData([ + 'nft_metadata_kind', + ]); + const u8res = (internalValue as BigNumber).toNumber(); + return NFTMetadataKind[u8res] as keyof typeof NFTMetadataKind; + } + + public async getOwnershipModeConfig() { + const internalValue = await this.contractClient.queryContractData([ + 'ownership_mode', + ]); + const u8res = (internalValue as BigNumber).toNumber(); + return NFTOwnershipMode[u8res] as keyof typeof NFTOwnershipMode; + } + + public async getJSONSchemaConfig() { + const internalValue = await this.contractClient.queryContractData([ + 'json_schema', + ]); + return internalValue.toString(); + } + + public setVariables( + args: ConfigurableVariables, + paymentAmount: string, + deploySender: CLPublicKey, + keys?: Keys.AsymmetricKey[] + ) { + const runtimeArgs = RuntimeArgs.fromMap({}); + + if (args.allowMinting !== undefined) { + runtimeArgs.insert( + 'allow_minting', + CLValueBuilder.bool(args.allowMinting) + ); + } + + if (args.contractWhitelist !== undefined) { + const list = buildKeyHashList(args.contractWhitelist); + runtimeArgs.insert('contract_whitelist', CLValueBuilder.list(list)); + } + + const preparedDeploy = this.contractClient.callEntrypoint( + 'set_variables', + runtimeArgs, + deploySender, + this.networkName, + paymentAmount, + keys + ); + + return preparedDeploy; + } + + public register( + args: RegisterArgs, + paymentAmount: string, + deploySender: CLPublicKey, + keys?: Keys.AsymmetricKey[] + ) { + const runtimeArgs = RuntimeArgs.fromMap({ + token_owner: CLValueBuilder.key(args.tokenOwner), + }); + + const preparedDeploy = this.contractClient.callEntrypoint( + 'register_owner', + runtimeArgs, + deploySender, + this.networkName, + paymentAmount, + keys + ); + + return preparedDeploy; + } + + public async mint( + args: MintArgs, + config: CallConfig, + paymentAmount: string, + deploySender: CLPublicKey, + wasm?: Uint8Array + ) { + if (config.useSessionCode === false && !!wasm) + throw new Error(ERRORS.CONFLICT_CONFIG); + + const runtimeArgs = RuntimeArgs.fromMap({ + token_owner: CLValueBuilder.key(args.owner), + token_meta_data: CLValueBuilder.string(JSON.stringify(args.meta)), + }); + + // if (config.useSessionCode) { + // const wasmToCall = wasm || (await fetchMintCallWASM()); + // console.log('runtimeArgs: ', runtimeArgs); + + // runtimeArgs.insert('nft_contract_hash', this.contractHashKey); + + // const preparedDeploy = this.contractClient.install( + // wasmToCall, + // runtimeArgs, + // paymentAmount, + // deploySender, + // this.networkName + // ); + + // return preparedDeploy; + // } + + const preparedDeploy = this.contractClient.callEntrypoint( + 'mint', + runtimeArgs, + deploySender, + this.networkName, + paymentAmount + ); + + return preparedDeploy; + } + + public burn( + args: BurnArgs, + paymentAmount: string, + deploySender: CLPublicKey, + keys?: Keys.AsymmetricKey[] + ) { + const runtimeArgs = RuntimeArgs.fromMap({}); + + if (args.tokenId !== undefined) { + runtimeArgs.insert('token_id', CLValueBuilder.u64(args.tokenId)); + } + + if (args.tokenHash !== undefined) { + runtimeArgs.insert('token_hash', CLValueBuilder.string(args.tokenHash)); + } + + const preparedDeploy = this.contractClient.callEntrypoint( + 'burn', + runtimeArgs, + deploySender, + this.networkName, + paymentAmount, + keys + ); + + return preparedDeploy; + } + + public async transfer( + args: TransferArgs, + config: CallConfig, + paymentAmount: string, + deploySender: CLPublicKey, + keys?: Keys.AsymmetricKey[], + wasm?: Uint8Array + ) { + if (config.useSessionCode === false && !!wasm) + throw new Error(ERRORS.CONFLICT_CONFIG); + + const runtimeArgs = RuntimeArgs.fromMap({ + target_key: CLValueBuilder.key(args.target), + source_key: CLValueBuilder.key(args.source), + }); + + if (args.tokenId) { + runtimeArgs.insert('is_hash_identifier_mode', CLValueBuilder.bool(false)); + runtimeArgs.insert('token_id', CLValueBuilder.u64(args.tokenId)); + } + + if (args.tokenHash) { + runtimeArgs.insert('is_hash_identifier_mode', CLValueBuilder.bool(true)); + runtimeArgs.insert('token_id', CLValueBuilder.u64(args.tokenHash)); + } + + if (config.useSessionCode) { + runtimeArgs.insert('nft_contract_hash', this.contractHashKey); + const wasmToCall = wasm || (await this.fetchTransferCallWASM()); + + const preparedDeploy = this.contractClient.install( + wasmToCall, + runtimeArgs, + paymentAmount, + deploySender, + this.networkName, + keys + ); + + return preparedDeploy; + } + + const preparedDeploy = this.contractClient.callEntrypoint( + 'transfer', + runtimeArgs, + deploySender, + this.networkName, + paymentAmount, + keys + ); + + return preparedDeploy; + } + + public setTokenMetadata( + args: TokenMetadataArgs, + paymentAmount: string, + deploySender: CLPublicKey, + keys?: Keys.AsymmetricKey[] + ) { + const runtimeArgs = RuntimeArgs.fromMap({ + token_meta_data: CLValueBuilder.string( + JSON.stringify(args.tokenMetaData) + ), + }); + + const preparedDeploy = this.contractClient.callEntrypoint( + 'set_token_metadata', + runtimeArgs, + deploySender, + this.networkName, + paymentAmount, + keys + ); + + return preparedDeploy; + } + + public async getOwnerOf(tokenId: string) { + const result = await this.contractClient.queryContractDictionary( + 'token_owners', + tokenId + ); + + return `account-hash-${(result as unknown as CLKeyType).toJSON()}`; + } + + public async getMetadataOf(tokenId: string, metadataType?: NFTMetadataKind) { + const metadataToCheck: NFTMetadataKind = + metadataType || NFTMetadataKind[await this.getMetadataKindConfig()]; + + const mapMetadata = { + [NFTMetadataKind.CEP78]: 'metadata_cep78', + [NFTMetadataKind.NFT721]: 'metadata_nft721', + [NFTMetadataKind.Raw]: 'metadata_raw', + [NFTMetadataKind.CustomValidated]: 'metadata_custom_validated', + }; + + const result = await this.contractClient.queryContractDictionary( + mapMetadata[metadataToCheck], + tokenId + ); + + const clMap = result as unknown as CLMapType; + + return clMap.toJSON() as { [key: string]: string }; + } + + public async getBalanceOf(account: CLPublicKey) { + const result = await this.contractClient.queryContractDictionary( + 'balances', + account.toAccountHashStr().slice(13) + ); + + return (result as unknown as CLU8Type).toJSON(); + } + + public approve( + args: ApproveArgs, + paymentAmount: string, + deploySender: CLPublicKey, + keys?: Keys.AsymmetricKey[] + ) { + const runtimeArgs = RuntimeArgs.fromMap({ + operator: CLValueBuilder.key(args.operator), + }); + + if (args.tokenId !== undefined) { + runtimeArgs.insert('token_id', CLValueBuilder.u64(args.tokenId)); + } + + if (args.tokenHash !== undefined) { + runtimeArgs.insert('token_hash', CLValueBuilder.string(args.tokenHash)); + } + + const preparedDeploy = this.contractClient.callEntrypoint( + 'approve', + runtimeArgs, + deploySender, + this.networkName, + paymentAmount, + keys + ); + + return preparedDeploy; + } + + public approveAll( + args: ApproveAllArgs, + paymentAmount: string, + deploySender: CLPublicKey, + keys?: Keys.AsymmetricKey[] + ) { + const runtimeArgs = RuntimeArgs.fromMap({ + token_owner: CLValueBuilder.key(args.tokenOwner), + approve_all: CLValueBuilder.bool(args.approveAll), + operator: CLValueBuilder.key(args.operator), + }); + + const preparedDeploy = this.contractClient.callEntrypoint( + 'set_approval_for_all', + runtimeArgs, + deploySender, + this.networkName, + paymentAmount, + keys + ); + + return preparedDeploy; + } +} + +export default CEP78Client; diff --git a/src/services/CasperServices.ts b/packages/utils/src/services/CasperServices.ts similarity index 100% rename from src/services/CasperServices.ts rename to packages/utils/src/services/CasperServices.ts diff --git a/src/services/NFTServices.test.ts b/packages/utils/src/services/NFTServices.test.ts similarity index 100% rename from src/services/NFTServices.test.ts rename to packages/utils/src/services/NFTServices.test.ts diff --git a/src/services/NFTServices.ts b/packages/utils/src/services/NFTServices.ts similarity index 95% rename from src/services/NFTServices.ts rename to packages/utils/src/services/NFTServices.ts index e3d105f..de7e9dc 100644 --- a/src/services/NFTServices.ts +++ b/packages/utils/src/services/NFTServices.ts @@ -49,7 +49,7 @@ const getNamedKeyConfig = ( cep: NFTStandard, tokenId: string, metadataKind?: NFTMetadataKind, -) => { +): NamedKeyConfig[] => { return [ { namedKey: getMetadataNamedKey(cep, metadataKind), @@ -168,7 +168,7 @@ export default class NFTServices { }; getMetadataFromUri = async (metadata: any[], namedKeys?: NamedKeyConfig) => { const uri = metadata.find( - (data) => data.key === namedKeys?.metadata.uri.key, + (data) => data.key === namedKeys?.metadata?.uri.key, ); if (uri) { @@ -202,21 +202,23 @@ export default class NFTServices { const { name, namedKeys, creator, action, cep, metadataKind } = this.NFTConfig || {}; + const newKeys = Object.keys(namedKeys || {}) + .filter((key) => key !== 'metadata') + .map((namedKey) => ({ + namedKey, + key: tokenId, + originNamedKey: namedKey, + })); + const tokenNamedKeys = getNamedKeyConfig(cep, tokenId, metadataKind).concat( - Object.keys(namedKeys || {}) - .filter((key) => key !== 'metadata') - .map((namedKey) => ({ - namedKey, - key: tokenId, - originNamedKey: namedKey, - })), - ); + [...newKeys] + ).filter((namedKey) => namedKey.namedKey); const tokenDetails = await Promise.all( tokenNamedKeys.map(async ({ namedKey, key, massageFn }) => { const value: any = await this.contractClient.queryContractDictionary( - namedKey, - key, + namedKey!, + key!, ); const maybeValue = value.data; @@ -236,7 +238,7 @@ export default class NFTServices { return { ...out, - [namedKey]: + [namedKey!]: namedKey === METADATA_NAMED_KEY ? this.massageMetadata(detail, namedKeys) : detail, @@ -251,7 +253,7 @@ export default class NFTServices { action, }, ); - if (namedKeys?.metadata.isFromURI) { + if (namedKeys?.metadata?.isFromURI) { const metadataFromUri = await this.getMetadataFromUri( details.metadata, namedKeys, diff --git a/packages/utils/src/types/cep78.ts b/packages/utils/src/types/cep78.ts new file mode 100644 index 0000000..304ed31 --- /dev/null +++ b/packages/utils/src/types/cep78.ts @@ -0,0 +1,161 @@ +import { CLKeyParameters } from 'casper-js-sdk'; + +export interface CallConfig { + useSessionCode: boolean; +} + +export enum NamedKeyConventionMode { + DerivedFromCollectionName, + V1_0Standard, + V1_0Custom, +} + +export enum NFTOwnershipMode { + Minter, + Assigned, + Transferable, +} + +export enum NFTKind { + Physical, + Digital, + Virtual, +} + +export enum NFTHolderMode { + Accounts, + Contracts, + Mixed, +} + +export enum NFTMetadataKind { + CEP78, + NFT721, + Raw, + CustomValidated, +} + +export enum NFTIdentifierMode { + Ordinal, + Hash, +} + +export enum MetadataMutability { + Immutable, + Mutable, +} + +export enum MintingMode { + Installer, + Public, +} + +export enum BurnMode { + Burnable, + NonBurnable, +} + +export enum WhitelistMode { + Unlocked, + Locked, +} + +export enum OwnerReverseLookupMode { + NoLookup, + Complete, + TransfersOnly, +} + +export interface JSONSchemaEntry { + name: string; + description: string; + required: boolean; +} + +export interface JSONSchemaObject { + properties: Record; +} + +export type ConfigurableVariables = { + allowMinting?: boolean; + contractWhitelist?: string[]; +}; + +export enum EventsMode { + NoEvents, + CEP47, + CES, +} + +export type InstallArgs = { + collectionName: string; + collectionSymbol: string; + totalTokenSupply: string; + ownershipMode: NFTOwnershipMode; + nftKind: NFTKind; + jsonSchema?: JSONSchemaObject; + nftMetadataKind: NFTMetadataKind; + identifierMode: NFTIdentifierMode; + metadataMutability: MetadataMutability; + mintingMode?: MintingMode; + whitelistMode?: WhitelistMode; + holderMode?: NFTHolderMode; + burnMode?: BurnMode; + ownerReverseLookupMode?: OwnerReverseLookupMode; + namedKeyConventionMode?: NamedKeyConventionMode; + accessKeyName?: string; + hashKeyName?: string; + eventsMode?: EventsMode; +} & ConfigurableVariables; + +export interface RegisterArgs { + tokenOwner: CLKeyParameters; +} + +export interface MintArgs { + owner: CLKeyParameters; + meta: Record; +} + +export interface TokenArgs { + tokenId?: string; + tokenHash?: string; +} + +export type BurnArgs = TokenArgs; + +export type TransferArgs = { + target: CLKeyParameters; + source: CLKeyParameters; +} & TokenArgs; + +export type TokenMetadataArgs = { + tokenMetaData: Record; +}; + +export type StoreBalanceOfArgs = { + tokenOwner: CLKeyParameters; + keyName: string; +}; + +export type StoreApprovedArgs = { + keyName: string; +} & TokenArgs; + +export type StoreOwnerOfArgs = StoreApprovedArgs; + +export type ApproveArgs = { + operator: CLKeyParameters; +} & TokenArgs; + +export type ApproveAllArgs = { + operator: CLKeyParameters; + approveAll: boolean; + tokenOwner: CLKeyParameters; +}; + +export type MigrateArgs = { + contractPackageHash: string; +}; + +export type Cep78Options = { contractWASM?: string, transferCallWASM?: string }; \ No newline at end of file diff --git a/src/types/index.ts b/packages/utils/src/types/index.ts similarity index 100% rename from src/types/index.ts rename to packages/utils/src/types/index.ts diff --git a/src/types/types.ts b/packages/utils/src/types/types.ts similarity index 86% rename from src/types/types.ts rename to packages/utils/src/types/types.ts index 2191de2..84cedcc 100644 --- a/src/types/types.ts +++ b/packages/utils/src/types/types.ts @@ -11,7 +11,11 @@ export enum NFTStandard { } export type NamedKeyConfig = { - metadata: { + namedKey?: string; + key?: string; + originNamedKey?: string; + massageFn?: (value: any) => any; + metadata?: { attributes?: AttributesConfig[]; isFromURI?: boolean; uri: { key: string; massageFnc: (uri: string) => any }; diff --git a/src/utilities/index.ts b/packages/utils/src/utilities/index.ts similarity index 100% rename from src/utilities/index.ts rename to packages/utils/src/utilities/index.ts diff --git a/src/utilities/valueBuilder.ts b/packages/utils/src/utilities/valueBuilder.ts similarity index 100% rename from src/utilities/valueBuilder.ts rename to packages/utils/src/utilities/valueBuilder.ts diff --git a/webpack.config.js b/packages/utils/webpack.config.js similarity index 100% rename from webpack.config.js rename to packages/utils/webpack.config.js diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000..580a2d0 --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,8051 @@ +lockfileVersion: '6.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + devDependencies: + '@babel/core': + specifier: ^7.22.20 + version: 7.22.20 + '@changesets/changelog-github': + specifier: ^0.4.8 + version: 0.4.8 + '@changesets/cli': + specifier: ^2.26.2 + version: 2.26.2 + '@typescript-eslint/eslint-plugin': + specifier: ^5.62.0 + version: 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.50.0)(typescript@4.9.5) + '@typescript-eslint/parser': + specifier: ^5.62.0 + version: 5.62.0(eslint@8.50.0)(typescript@4.9.5) + '@vitest/coverage-v8': + specifier: ^0.34.5 + version: 0.34.5(vitest@0.26.3) + '@vitest/ui': + specifier: ^0.28.5 + version: 0.28.5 + eslint: + specifier: ^8.50.0 + version: 8.50.0 + eslint-config-airbnb-typescript: + specifier: ^17.1.0 + version: 17.1.0(@typescript-eslint/eslint-plugin@5.62.0)(@typescript-eslint/parser@5.62.0)(eslint-plugin-import@2.28.1)(eslint@8.50.0) + eslint-config-prettier: + specifier: ^8.10.0 + version: 8.10.0(eslint@8.50.0) + eslint-plugin-import: + specifier: ^2.28.1 + version: 2.28.1(@typescript-eslint/parser@5.62.0)(eslint@8.50.0) + eslint-plugin-prettier: + specifier: ^4.2.1 + version: 4.2.1(eslint-config-prettier@8.10.0)(eslint@8.50.0)(prettier@2.8.8) + eslint-plugin-sonar: + specifier: ^0.9.2 + version: 0.9.2(@babel/core@7.22.20)(eslint@8.50.0)(typescript@4.9.5) + husky: + specifier: ^8.0.3 + version: 8.0.3 + jsdom: + specifier: ^20.0.3 + version: 20.0.3 + lint-staged: + specifier: ^13.3.0 + version: 13.3.0 + prettier: + specifier: ^2.8.8 + version: 2.8.8 + semver: + specifier: ^7.5.4 + version: 7.5.4 + tsup: + specifier: ^6.7.0 + version: 6.7.0(typescript@4.9.5) + typescript: + specifier: ^4.9.5 + version: 4.9.5 + vite-tsconfig-paths: + specifier: ^4.2.1 + version: 4.2.1(typescript@4.9.5) + vitest: + specifier: ^0.26.3 + version: 0.26.3(@vitest/ui@0.28.5)(jsdom@20.0.3) + + examples/client-js: + dependencies: + '@casperdash/cep78-client': + specifier: workspace:* + version: link:../../packages/cep78-client + axios: + specifier: 1.5.0 + version: 1.5.0 + casper-js-sdk: + specifier: 2.15.0 + version: 2.15.0 + devDependencies: + ts-node: + specifier: 10.9.1 + version: 10.9.1(@types/node@20.6.3)(typescript@5.2.2) + typescript: + specifier: ^5.2.2 + version: 5.2.2 + + packages/builder: + dependencies: + '@noble/hashes': + specifier: ^1.3.2 + version: 1.3.2 + '@open-rpc/client-js': + specifier: 1.8.1 + version: 1.8.1 + casper-js-sdk: + specifier: 2.15.0 + version: 2.15.0 + contract-client: + specifier: 0.0.5 + version: 0.0.5 + ethers: + specifier: ^4.0.47 + version: 4.0.49 + devDependencies: + ts-node: + specifier: 10.9.1 + version: 10.9.1(@types/node@20.6.3)(typescript@5.2.2) + + packages/cep18-client: + dependencies: + '@casperdash/contract-client': + specifier: workspace:* + version: link:../contract-client + '@ethersproject/bignumber': + specifier: ^5.7.0 + version: 5.7.0 + casper-js-sdk: + specifier: 2.15.0 + version: 2.15.0 + devDependencies: + eslint-plugin-prettier: + specifier: ^4.2.1 + version: 4.2.1(eslint-config-prettier@8.10.0)(eslint@8.50.0)(prettier@2.8.8) + tsup: + specifier: ^6.7.0 + version: 6.7.0(typescript@4.9.5) + + packages/cep47-client: + dependencies: + '@casperdash/contract-client': + specifier: workspace:* + version: link:../contract-client + casper-js-sdk: + specifier: 2.15.0 + version: 2.15.0 + devDependencies: + eslint-plugin-prettier: + specifier: ^4.2.1 + version: 4.2.1(eslint-config-prettier@8.10.0)(eslint@8.50.0)(prettier@2.8.8) + tsup: + specifier: ^6.7.0 + version: 6.7.0(typescript@4.9.5) + + packages/cep78-client: + dependencies: + '@casperdash/contract-client': + specifier: workspace:* + version: link:../contract-client + '@make-software/ces-js-parser': + specifier: ^1.3.3 + version: 1.3.3(casper-js-sdk@2.15.0) + casper-js-sdk: + specifier: 2.15.0 + version: 2.15.0 + devDependencies: + eslint-plugin-prettier: + specifier: ^4.2.1 + version: 4.2.1(eslint-config-prettier@8.10.0)(eslint@8.50.0)(prettier@2.8.8) + tsup: + specifier: ^6.7.0 + version: 6.7.0(typescript@4.9.5) + + packages/contract-client: + dependencies: + casper-js-sdk: + specifier: 2.15.0 + version: 2.15.0 + devDependencies: + eslint-plugin-prettier: + specifier: ^4.2.1 + version: 4.2.1(eslint-config-prettier@8.10.0)(eslint@8.50.0)(prettier@2.8.8) + tsup: + specifier: ^7.2.0 + version: 7.2.0(typescript@4.9.5) + + packages/utils: + dependencies: + '@ethersproject/bytes': + specifier: ^5.7.0 + version: 5.7.0 + blakejs: + specifier: ^1.2.1 + version: 1.2.1 + casper-js-sdk: + specifier: 2.15.0 + version: 2.15.0 + webpack: + specifier: ^5.88.2 + version: 5.88.2(esbuild@0.15.18)(webpack-cli@4.10.0) + devDependencies: + '@rollup/plugin-node-resolve': + specifier: ^13.3.0 + version: 13.3.0(rollup@2.79.1) + '@types/jest': + specifier: ^28.1.8 + version: 28.1.8 + copy-webpack-plugin: + specifier: ^11.0.0 + version: 11.0.0(webpack@5.88.2) + esbuild: + specifier: ^0.15.18 + version: 0.15.18 + jest: + specifier: ^28.1.3 + version: 28.1.3 + jest-environment-jsdom: + specifier: ^28.1.3 + version: 28.1.3 + rimraf: + specifier: ^3.0.2 + version: 3.0.2 + ts-jest: + specifier: ^28.0.8 + version: 28.0.8(@babel/core@7.22.20)(esbuild@0.15.18)(jest@28.1.3)(typescript@4.9.5) + ts-loader: + specifier: ^9.4.4 + version: 9.4.4(typescript@4.9.5)(webpack@5.88.2) + tsc-alias: + specifier: ^1.8.8 + version: 1.8.8 + typescript: + specifier: ^4.9.5 + version: 4.9.5 + webpack-cli: + specifier: ^4.10.0 + version: 4.10.0(webpack@5.88.2) + webpack-node-externals: + specifier: ^3.0.0 + version: 3.0.0 + +packages: + + /@aashutoshrathi/word-wrap@1.2.6: + resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} + engines: {node: '>=0.10.0'} + dev: true + + /@ampproject/remapping@2.2.1: + resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/trace-mapping': 0.3.19 + dev: true + + /@babel/code-frame@7.22.13: + resolution: {integrity: sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/highlight': 7.22.20 + chalk: 2.4.2 + dev: true + + /@babel/compat-data@7.22.20: + resolution: {integrity: sha512-BQYjKbpXjoXwFW5jGqiizJQQT/aC7pFm9Ok1OWssonuguICi264lbgMzRp2ZMmRSlfkX6DsWDDcsrctK8Rwfiw==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/core@7.22.20: + resolution: {integrity: sha512-Y6jd1ahLubuYweD/zJH+vvOY141v4f9igNQAQ+MBgq9JlHS2iTsZKn1aMsb3vGccZsXI16VzTBw52Xx0DWmtnA==} + engines: {node: '>=6.9.0'} + dependencies: + '@ampproject/remapping': 2.2.1 + '@babel/code-frame': 7.22.13 + '@babel/generator': 7.22.15 + '@babel/helper-compilation-targets': 7.22.15 + '@babel/helper-module-transforms': 7.22.20(@babel/core@7.22.20) + '@babel/helpers': 7.22.15 + '@babel/parser': 7.22.16 + '@babel/template': 7.22.15 + '@babel/traverse': 7.22.20 + '@babel/types': 7.22.19 + convert-source-map: 1.9.0 + debug: 4.3.4 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/eslint-parser@7.22.15(@babel/core@7.22.20)(eslint@8.50.0): + resolution: {integrity: sha512-yc8OOBIQk1EcRrpizuARSQS0TWAcOMpEJ1aafhNznaeYkeL+OhqnDObGFylB8ka8VFF/sZc+S4RzHyO+3LjQxg==} + engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} + peerDependencies: + '@babel/core': ^7.11.0 + eslint: ^7.5.0 || ^8.0.0 + peerDependenciesMeta: + eslint: + optional: true + dependencies: + '@babel/core': 7.22.20 + '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 + eslint: 8.50.0 + eslint-visitor-keys: 2.1.0 + semver: 6.3.1 + dev: true + + /@babel/generator@7.22.15: + resolution: {integrity: sha512-Zu9oWARBqeVOW0dZOjXc3JObrzuqothQ3y/n1kUtrjCoCPLkXUwMvOo/F/TCfoHMbWIFlWwpZtkZVb9ga4U2pA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.22.19 + '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/trace-mapping': 0.3.19 + jsesc: 2.5.2 + dev: true + + /@babel/helper-compilation-targets@7.22.15: + resolution: {integrity: sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/compat-data': 7.22.20 + '@babel/helper-validator-option': 7.22.15 + browserslist: 4.21.11 + lru-cache: 5.1.1 + semver: 6.3.1 + dev: true + + /@babel/helper-environment-visitor@7.22.20: + resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-function-name@7.22.5: + resolution: {integrity: sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.22.15 + '@babel/types': 7.22.19 + dev: true + + /@babel/helper-hoist-variables@7.22.5: + resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.22.19 + dev: true + + /@babel/helper-module-imports@7.22.15: + resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.22.19 + dev: true + + /@babel/helper-module-transforms@7.22.20(@babel/core@7.22.20): + resolution: {integrity: sha512-dLT7JVWIUUxKOs1UnJUBR3S70YK+pKX6AbJgB2vMIvEkZkrfJDbYDJesnPshtKV4LhDOR3Oc5YULeDizRek+5A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.22.20 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-module-imports': 7.22.15 + '@babel/helper-simple-access': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/helper-validator-identifier': 7.22.20 + dev: true + + /@babel/helper-plugin-utils@7.22.5: + resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-simple-access@7.22.5: + resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.22.19 + dev: true + + /@babel/helper-split-export-declaration@7.22.6: + resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.22.19 + dev: true + + /@babel/helper-string-parser@7.22.5: + resolution: {integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-validator-identifier@7.22.20: + resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-validator-option@7.22.15: + resolution: {integrity: sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helpers@7.22.15: + resolution: {integrity: sha512-7pAjK0aSdxOwR+CcYAqgWOGy5dcfvzsTIfFTb2odQqW47MDfv14UaJDY6eng8ylM2EaeKXdxaSWESbkmaQHTmw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.22.15 + '@babel/traverse': 7.22.20 + '@babel/types': 7.22.19 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/highlight@7.22.20: + resolution: {integrity: sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.22.20 + chalk: 2.4.2 + js-tokens: 4.0.0 + dev: true + + /@babel/parser@7.22.16: + resolution: {integrity: sha512-+gPfKv8UWeKKeJTUxe59+OobVcrYHETCsORl61EmSkmgymguYk/X5bp7GuUIXaFsc6y++v8ZxPsLSSuujqDphA==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.22.19 + dev: true + + /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.22.20): + resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.20 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.22.20): + resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.20 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.22.20): + resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.20 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.22.20): + resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.20 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.22.20): + resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.20 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.22.20): + resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.20 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.22.20): + resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.20 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.22.20): + resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.20 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.22.20): + resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.20 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.22.20): + resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.20 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.22.20): + resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.20 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.22.20): + resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.20 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-typescript@7.22.5(@babel/core@7.22.20): + resolution: {integrity: sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.20 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/runtime@7.22.15: + resolution: {integrity: sha512-T0O+aa+4w0u06iNmapipJXMV4HoUir03hpx3/YqXXhu9xim3w+dVphjFWl1OH8NbZHw5Lbm9k45drDkgq2VNNA==} + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: 0.14.0 + dev: true + + /@babel/template@7.22.15: + resolution: {integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.22.13 + '@babel/parser': 7.22.16 + '@babel/types': 7.22.19 + dev: true + + /@babel/traverse@7.22.20: + resolution: {integrity: sha512-eU260mPZbU7mZ0N+X10pxXhQFMGTeLb9eFS0mxehS8HZp9o1uSnFeWQuG1UPrlxgA7QoUzFhOnilHDp0AXCyHw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.22.13 + '@babel/generator': 7.22.15 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.22.5 + '@babel/helper-hoist-variables': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/parser': 7.22.16 + '@babel/types': 7.22.19 + debug: 4.3.4 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/types@7.22.19: + resolution: {integrity: sha512-P7LAw/LbojPzkgp5oznjE6tQEIWbp4PkkfrZDINTro9zgBRtI324/EYsiSI7lhPbpIQ+DCeR2NNmMWANGGfZsg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': 7.22.5 + '@babel/helper-validator-identifier': 7.22.20 + to-fast-properties: 2.0.0 + dev: true + + /@bcoe/v8-coverage@0.2.3: + resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} + dev: true + + /@casperlabs/ts-results@3.3.5: + resolution: {integrity: sha512-ymSQqqb4mOSet592li02u1Gd28LoOFJUm6R3jkdNQ+nqsnbHvN+izBigtP4aYmNwh6gFyCwDgjYporEJgDT4eA==} + dependencies: + tslib: 2.6.2 + dev: false + + /@changesets/apply-release-plan@6.1.4: + resolution: {integrity: sha512-FMpKF1fRlJyCZVYHr3CbinpZZ+6MwvOtWUuO8uo+svcATEoc1zRDcj23pAurJ2TZ/uVz1wFHH6K3NlACy0PLew==} + dependencies: + '@babel/runtime': 7.22.15 + '@changesets/config': 2.3.1 + '@changesets/get-version-range-type': 0.3.2 + '@changesets/git': 2.0.0 + '@changesets/types': 5.2.1 + '@manypkg/get-packages': 1.1.3 + detect-indent: 6.1.0 + fs-extra: 7.0.1 + lodash.startcase: 4.4.0 + outdent: 0.5.0 + prettier: 2.8.8 + resolve-from: 5.0.0 + semver: 7.5.4 + dev: true + + /@changesets/assemble-release-plan@5.2.4: + resolution: {integrity: sha512-xJkWX+1/CUaOUWTguXEbCDTyWJFECEhmdtbkjhn5GVBGxdP/JwaHBIU9sW3FR6gD07UwZ7ovpiPclQZs+j+mvg==} + dependencies: + '@babel/runtime': 7.22.15 + '@changesets/errors': 0.1.4 + '@changesets/get-dependents-graph': 1.3.6 + '@changesets/types': 5.2.1 + '@manypkg/get-packages': 1.1.3 + semver: 7.5.4 + dev: true + + /@changesets/changelog-git@0.1.14: + resolution: {integrity: sha512-+vRfnKtXVWsDDxGctOfzJsPhaCdXRYoe+KyWYoq5X/GqoISREiat0l3L8B0a453B2B4dfHGcZaGyowHbp9BSaA==} + dependencies: + '@changesets/types': 5.2.1 + dev: true + + /@changesets/changelog-github@0.4.8: + resolution: {integrity: sha512-jR1DHibkMAb5v/8ym77E4AMNWZKB5NPzw5a5Wtqm1JepAuIF+hrKp2u04NKM14oBZhHglkCfrla9uq8ORnK/dw==} + dependencies: + '@changesets/get-github-info': 0.5.2 + '@changesets/types': 5.2.1 + dotenv: 8.6.0 + transitivePeerDependencies: + - encoding + dev: true + + /@changesets/cli@2.26.2: + resolution: {integrity: sha512-dnWrJTmRR8bCHikJHl9b9HW3gXACCehz4OasrXpMp7sx97ECuBGGNjJhjPhdZNCvMy9mn4BWdplI323IbqsRig==} + hasBin: true + dependencies: + '@babel/runtime': 7.22.15 + '@changesets/apply-release-plan': 6.1.4 + '@changesets/assemble-release-plan': 5.2.4 + '@changesets/changelog-git': 0.1.14 + '@changesets/config': 2.3.1 + '@changesets/errors': 0.1.4 + '@changesets/get-dependents-graph': 1.3.6 + '@changesets/get-release-plan': 3.0.17 + '@changesets/git': 2.0.0 + '@changesets/logger': 0.0.5 + '@changesets/pre': 1.0.14 + '@changesets/read': 0.5.9 + '@changesets/types': 5.2.1 + '@changesets/write': 0.2.3 + '@manypkg/get-packages': 1.1.3 + '@types/is-ci': 3.0.0 + '@types/semver': 7.5.2 + ansi-colors: 4.1.3 + chalk: 2.4.2 + enquirer: 2.4.1 + external-editor: 3.1.0 + fs-extra: 7.0.1 + human-id: 1.0.2 + is-ci: 3.0.1 + meow: 6.1.1 + outdent: 0.5.0 + p-limit: 2.3.0 + preferred-pm: 3.1.2 + resolve-from: 5.0.0 + semver: 7.5.4 + spawndamnit: 2.0.0 + term-size: 2.2.1 + tty-table: 4.2.1 + dev: true + + /@changesets/config@2.3.1: + resolution: {integrity: sha512-PQXaJl82CfIXddUOppj4zWu+987GCw2M+eQcOepxN5s+kvnsZOwjEJO3DH9eVy+OP6Pg/KFEWdsECFEYTtbg6w==} + dependencies: + '@changesets/errors': 0.1.4 + '@changesets/get-dependents-graph': 1.3.6 + '@changesets/logger': 0.0.5 + '@changesets/types': 5.2.1 + '@manypkg/get-packages': 1.1.3 + fs-extra: 7.0.1 + micromatch: 4.0.5 + dev: true + + /@changesets/errors@0.1.4: + resolution: {integrity: sha512-HAcqPF7snsUJ/QzkWoKfRfXushHTu+K5KZLJWPb34s4eCZShIf8BFO3fwq6KU8+G7L5KdtN2BzQAXOSXEyiY9Q==} + dependencies: + extendable-error: 0.1.7 + dev: true + + /@changesets/get-dependents-graph@1.3.6: + resolution: {integrity: sha512-Q/sLgBANmkvUm09GgRsAvEtY3p1/5OCzgBE5vX3vgb5CvW0j7CEljocx5oPXeQSNph6FXulJlXV3Re/v3K3P3Q==} + dependencies: + '@changesets/types': 5.2.1 + '@manypkg/get-packages': 1.1.3 + chalk: 2.4.2 + fs-extra: 7.0.1 + semver: 7.5.4 + dev: true + + /@changesets/get-github-info@0.5.2: + resolution: {integrity: sha512-JppheLu7S114aEs157fOZDjFqUDpm7eHdq5E8SSR0gUBTEK0cNSHsrSR5a66xs0z3RWuo46QvA3vawp8BxDHvg==} + dependencies: + dataloader: 1.4.0 + node-fetch: 2.7.0 + transitivePeerDependencies: + - encoding + dev: true + + /@changesets/get-release-plan@3.0.17: + resolution: {integrity: sha512-6IwKTubNEgoOZwDontYc2x2cWXfr6IKxP3IhKeK+WjyD6y3M4Gl/jdQvBw+m/5zWILSOCAaGLu2ZF6Q+WiPniw==} + dependencies: + '@babel/runtime': 7.22.15 + '@changesets/assemble-release-plan': 5.2.4 + '@changesets/config': 2.3.1 + '@changesets/pre': 1.0.14 + '@changesets/read': 0.5.9 + '@changesets/types': 5.2.1 + '@manypkg/get-packages': 1.1.3 + dev: true + + /@changesets/get-version-range-type@0.3.2: + resolution: {integrity: sha512-SVqwYs5pULYjYT4op21F2pVbcrca4qA/bAA3FmFXKMN7Y+HcO8sbZUTx3TAy2VXulP2FACd1aC7f2nTuqSPbqg==} + dev: true + + /@changesets/git@2.0.0: + resolution: {integrity: sha512-enUVEWbiqUTxqSnmesyJGWfzd51PY4H7mH9yUw0hPVpZBJ6tQZFMU3F3mT/t9OJ/GjyiM4770i+sehAn6ymx6A==} + dependencies: + '@babel/runtime': 7.22.15 + '@changesets/errors': 0.1.4 + '@changesets/types': 5.2.1 + '@manypkg/get-packages': 1.1.3 + is-subdir: 1.2.0 + micromatch: 4.0.5 + spawndamnit: 2.0.0 + dev: true + + /@changesets/logger@0.0.5: + resolution: {integrity: sha512-gJyZHomu8nASHpaANzc6bkQMO9gU/ib20lqew1rVx753FOxffnCrJlGIeQVxNWCqM+o6OOleCo/ivL8UAO5iFw==} + dependencies: + chalk: 2.4.2 + dev: true + + /@changesets/parse@0.3.16: + resolution: {integrity: sha512-127JKNd167ayAuBjUggZBkmDS5fIKsthnr9jr6bdnuUljroiERW7FBTDNnNVyJ4l69PzR57pk6mXQdtJyBCJKg==} + dependencies: + '@changesets/types': 5.2.1 + js-yaml: 3.14.1 + dev: true + + /@changesets/pre@1.0.14: + resolution: {integrity: sha512-dTsHmxQWEQekHYHbg+M1mDVYFvegDh9j/kySNuDKdylwfMEevTeDouR7IfHNyVodxZXu17sXoJuf2D0vi55FHQ==} + dependencies: + '@babel/runtime': 7.22.15 + '@changesets/errors': 0.1.4 + '@changesets/types': 5.2.1 + '@manypkg/get-packages': 1.1.3 + fs-extra: 7.0.1 + dev: true + + /@changesets/read@0.5.9: + resolution: {integrity: sha512-T8BJ6JS6j1gfO1HFq50kU3qawYxa4NTbI/ASNVVCBTsKquy2HYwM9r7ZnzkiMe8IEObAJtUVGSrePCOxAK2haQ==} + dependencies: + '@babel/runtime': 7.22.15 + '@changesets/git': 2.0.0 + '@changesets/logger': 0.0.5 + '@changesets/parse': 0.3.16 + '@changesets/types': 5.2.1 + chalk: 2.4.2 + fs-extra: 7.0.1 + p-filter: 2.1.0 + dev: true + + /@changesets/types@4.1.0: + resolution: {integrity: sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw==} + dev: true + + /@changesets/types@5.2.1: + resolution: {integrity: sha512-myLfHbVOqaq9UtUKqR/nZA/OY7xFjQMdfgfqeZIBK4d0hA6pgxArvdv8M+6NUzzBsjWLOtvApv8YHr4qM+Kpfg==} + dev: true + + /@changesets/write@0.2.3: + resolution: {integrity: sha512-Dbamr7AIMvslKnNYsLFafaVORx4H0pvCA2MHqgtNCySMe1blImEyAEOzDmcgKAkgz4+uwoLz7demIrX+JBr/Xw==} + dependencies: + '@babel/runtime': 7.22.15 + '@changesets/types': 5.2.1 + fs-extra: 7.0.1 + human-id: 1.0.2 + prettier: 2.8.8 + dev: true + + /@cspotcode/source-map-support@0.8.1: + resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} + engines: {node: '>=12'} + dependencies: + '@jridgewell/trace-mapping': 0.3.9 + dev: true + + /@discoveryjs/json-ext@0.5.7: + resolution: {integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==} + engines: {node: '>=10.0.0'} + + /@esbuild/android-arm64@0.17.19: + resolution: {integrity: sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm64@0.18.20: + resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm@0.15.18: + resolution: {integrity: sha512-5GT+kcs2WVGjVs7+boataCkO5Fg0y4kCjzkB5bAip7H4jfnOS3dA6KPiww9W1OEKTKeAcUVhdZGvgI65OXmUnw==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + optional: true + + /@esbuild/android-arm@0.17.19: + resolution: {integrity: sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm@0.18.20: + resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-x64@0.17.19: + resolution: {integrity: sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-x64@0.18.20: + resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-arm64@0.17.19: + resolution: {integrity: sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-arm64@0.18.20: + resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-x64@0.17.19: + resolution: {integrity: sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-x64@0.18.20: + resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-arm64@0.17.19: + resolution: {integrity: sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-arm64@0.18.20: + resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-x64@0.17.19: + resolution: {integrity: sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-x64@0.18.20: + resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm64@0.17.19: + resolution: {integrity: sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm64@0.18.20: + resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm@0.17.19: + resolution: {integrity: sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm@0.18.20: + resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ia32@0.17.19: + resolution: {integrity: sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ia32@0.18.20: + resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-loong64@0.15.18: + resolution: {integrity: sha512-L4jVKS82XVhw2nvzLg/19ClLWg0y27ulRwuP7lcyL6AbUWB5aPglXY3M21mauDQMDfRLs8cQmeT03r/+X3cZYQ==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + optional: true + + /@esbuild/linux-loong64@0.17.19: + resolution: {integrity: sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-loong64@0.18.20: + resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-mips64el@0.17.19: + resolution: {integrity: sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-mips64el@0.18.20: + resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ppc64@0.17.19: + resolution: {integrity: sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ppc64@0.18.20: + resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-riscv64@0.17.19: + resolution: {integrity: sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-riscv64@0.18.20: + resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-s390x@0.17.19: + resolution: {integrity: sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-s390x@0.18.20: + resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-x64@0.17.19: + resolution: {integrity: sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-x64@0.18.20: + resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/netbsd-x64@0.17.19: + resolution: {integrity: sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/netbsd-x64@0.18.20: + resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/openbsd-x64@0.17.19: + resolution: {integrity: sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/openbsd-x64@0.18.20: + resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/sunos-x64@0.17.19: + resolution: {integrity: sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + + /@esbuild/sunos-x64@0.18.20: + resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-arm64@0.17.19: + resolution: {integrity: sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-arm64@0.18.20: + resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-ia32@0.17.19: + resolution: {integrity: sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-ia32@0.18.20: + resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-x64@0.17.19: + resolution: {integrity: sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-x64@0.18.20: + resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@eslint-community/eslint-utils@4.4.0(eslint@8.50.0): + resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + peerDependenciesMeta: + eslint: + optional: true + dependencies: + eslint: 8.50.0 + eslint-visitor-keys: 3.4.3 + dev: true + + /@eslint-community/regexpp@4.8.1: + resolution: {integrity: sha512-PWiOzLIUAjN/w5K17PoF4n6sKBw0gqLHPhywmYHP4t1VFQQVYeb1yWsJwnMVEMl3tUHME7X/SJPZLmtG7XBDxQ==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + dev: true + + /@eslint/eslintrc@2.1.2: + resolution: {integrity: sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + ajv: 6.12.6 + debug: 4.3.4 + espree: 9.6.1 + globals: 13.22.0 + ignore: 5.2.4 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@eslint/js@8.50.0: + resolution: {integrity: sha512-NCC3zz2+nvYd+Ckfh87rA47zfu2QsQpvc6k1yzTk+b9KzRj0wkGa8LSoGOXN6Zv4lRf/EIoZ80biDh9HOI+RNQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + /@ethersproject/bignumber@5.7.0: + resolution: {integrity: sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==} + dependencies: + '@ethersproject/bytes': 5.7.0 + '@ethersproject/logger': 5.7.0 + bn.js: 5.2.1 + dev: false + + /@ethersproject/bytes@5.7.0: + resolution: {integrity: sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==} + dependencies: + '@ethersproject/logger': 5.7.0 + dev: false + + /@ethersproject/constants@5.7.0: + resolution: {integrity: sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==} + dependencies: + '@ethersproject/bignumber': 5.7.0 + dev: false + + /@ethersproject/logger@5.7.0: + resolution: {integrity: sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==} + dev: false + + /@humanwhocodes/config-array@0.11.11: + resolution: {integrity: sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==} + engines: {node: '>=10.10.0'} + dependencies: + '@humanwhocodes/object-schema': 1.2.1 + debug: 4.3.4 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@humanwhocodes/module-importer@1.0.1: + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + dev: true + + /@humanwhocodes/object-schema@1.2.1: + resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} + dev: true + + /@istanbuljs/load-nyc-config@1.1.0: + resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} + engines: {node: '>=8'} + dependencies: + camelcase: 5.3.1 + find-up: 4.1.0 + get-package-type: 0.1.0 + js-yaml: 3.14.1 + resolve-from: 5.0.0 + dev: true + + /@istanbuljs/schema@0.1.3: + resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} + engines: {node: '>=8'} + dev: true + + /@jest/console@28.1.3: + resolution: {integrity: sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + '@jest/types': 28.1.3 + '@types/node': 20.6.3 + chalk: 4.1.2 + jest-message-util: 28.1.3 + jest-util: 28.1.3 + slash: 3.0.0 + dev: true + + /@jest/core@28.1.3: + resolution: {integrity: sha512-CIKBrlaKOzA7YG19BEqCw3SLIsEwjZkeJzf5bdooVnW4bH5cktqe3JX+G2YV1aK5vP8N9na1IGWFzYaTp6k6NA==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + dependencies: + '@jest/console': 28.1.3 + '@jest/reporters': 28.1.3 + '@jest/test-result': 28.1.3 + '@jest/transform': 28.1.3 + '@jest/types': 28.1.3 + '@types/node': 20.6.3 + ansi-escapes: 4.3.2 + chalk: 4.1.2 + ci-info: 3.8.0 + exit: 0.1.2 + graceful-fs: 4.2.11 + jest-changed-files: 28.1.3 + jest-config: 28.1.3(@types/node@20.6.3) + jest-haste-map: 28.1.3 + jest-message-util: 28.1.3 + jest-regex-util: 28.0.2 + jest-resolve: 28.1.3 + jest-resolve-dependencies: 28.1.3 + jest-runner: 28.1.3 + jest-runtime: 28.1.3 + jest-snapshot: 28.1.3 + jest-util: 28.1.3 + jest-validate: 28.1.3 + jest-watcher: 28.1.3 + micromatch: 4.0.5 + pretty-format: 28.1.3 + rimraf: 3.0.2 + slash: 3.0.0 + strip-ansi: 6.0.1 + transitivePeerDependencies: + - supports-color + - ts-node + dev: true + + /@jest/environment@28.1.3: + resolution: {integrity: sha512-1bf40cMFTEkKyEf585R9Iz1WayDjHoHqvts0XFYEqyKM3cFWDpeMoqKKTAF9LSYQModPUlh8FKptoM2YcMWAXA==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + '@jest/fake-timers': 28.1.3 + '@jest/types': 28.1.3 + '@types/node': 20.6.3 + jest-mock: 28.1.3 + dev: true + + /@jest/expect-utils@28.1.3: + resolution: {integrity: sha512-wvbi9LUrHJLn3NlDW6wF2hvIMtd4JUl2QNVrjq+IBSHirgfrR3o9RnVtxzdEGO2n9JyIWwHnLfby5KzqBGg2YA==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + jest-get-type: 28.0.2 + dev: true + + /@jest/expect@28.1.3: + resolution: {integrity: sha512-lzc8CpUbSoE4dqT0U+g1qODQjBRHPpCPXissXD4mS9+sWQdmmpeJ9zSH1rS1HEkrsMN0fb7nKrJ9giAR1d3wBw==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + expect: 28.1.3 + jest-snapshot: 28.1.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@jest/fake-timers@28.1.3: + resolution: {integrity: sha512-D/wOkL2POHv52h+ok5Oj/1gOG9HSywdoPtFsRCUmlCILXNn5eIWmcnd3DIiWlJnpGvQtmajqBP95Ei0EimxfLw==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + '@jest/types': 28.1.3 + '@sinonjs/fake-timers': 9.1.2 + '@types/node': 20.6.3 + jest-message-util: 28.1.3 + jest-mock: 28.1.3 + jest-util: 28.1.3 + dev: true + + /@jest/globals@28.1.3: + resolution: {integrity: sha512-XFU4P4phyryCXu1pbcqMO0GSQcYe1IsalYCDzRNyhetyeyxMcIxa11qPNDpVNLeretItNqEmYYQn1UYz/5x1NA==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + '@jest/environment': 28.1.3 + '@jest/expect': 28.1.3 + '@jest/types': 28.1.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@jest/reporters@28.1.3: + resolution: {integrity: sha512-JuAy7wkxQZVNU/V6g9xKzCGC5LVXx9FDcABKsSXp5MiKPEE2144a/vXTEDoyzjUpZKfVwp08Wqg5A4WfTMAzjg==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + dependencies: + '@bcoe/v8-coverage': 0.2.3 + '@jest/console': 28.1.3 + '@jest/test-result': 28.1.3 + '@jest/transform': 28.1.3 + '@jest/types': 28.1.3 + '@jridgewell/trace-mapping': 0.3.19 + '@types/node': 20.6.3 + chalk: 4.1.2 + collect-v8-coverage: 1.0.2 + exit: 0.1.2 + glob: 7.2.3 + graceful-fs: 4.2.11 + istanbul-lib-coverage: 3.2.0 + istanbul-lib-instrument: 5.2.1 + istanbul-lib-report: 3.0.1 + istanbul-lib-source-maps: 4.0.1 + istanbul-reports: 3.1.6 + jest-message-util: 28.1.3 + jest-util: 28.1.3 + jest-worker: 28.1.3 + slash: 3.0.0 + string-length: 4.0.2 + strip-ansi: 6.0.1 + terminal-link: 2.1.1 + v8-to-istanbul: 9.1.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@jest/schemas@28.1.3: + resolution: {integrity: sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + '@sinclair/typebox': 0.24.51 + dev: true + + /@jest/source-map@28.1.2: + resolution: {integrity: sha512-cV8Lx3BeStJb8ipPHnqVw/IM2VCMWO3crWZzYodSIkxXnRcXJipCdx1JCK0K5MsJJouZQTH73mzf4vgxRaH9ww==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + '@jridgewell/trace-mapping': 0.3.19 + callsites: 3.1.0 + graceful-fs: 4.2.11 + dev: true + + /@jest/test-result@28.1.3: + resolution: {integrity: sha512-kZAkxnSE+FqE8YjW8gNuoVkkC9I7S1qmenl8sGcDOLropASP+BkcGKwhXoyqQuGOGeYY0y/ixjrd/iERpEXHNg==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + '@jest/console': 28.1.3 + '@jest/types': 28.1.3 + '@types/istanbul-lib-coverage': 2.0.4 + collect-v8-coverage: 1.0.2 + dev: true + + /@jest/test-sequencer@28.1.3: + resolution: {integrity: sha512-NIMPEqqa59MWnDi1kvXXpYbqsfQmSJsIbnd85mdVGkiDfQ9WQQTXOLsvISUfonmnBT+w85WEgneCigEEdHDFxw==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + '@jest/test-result': 28.1.3 + graceful-fs: 4.2.11 + jest-haste-map: 28.1.3 + slash: 3.0.0 + dev: true + + /@jest/transform@28.1.3: + resolution: {integrity: sha512-u5dT5di+oFI6hfcLOHGTAfmUxFRrjK+vnaP0kkVow9Md/M7V/MxqQMOz/VV25UZO8pzeA9PjfTpOu6BDuwSPQA==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + '@babel/core': 7.22.20 + '@jest/types': 28.1.3 + '@jridgewell/trace-mapping': 0.3.19 + babel-plugin-istanbul: 6.1.1 + chalk: 4.1.2 + convert-source-map: 1.9.0 + fast-json-stable-stringify: 2.1.0 + graceful-fs: 4.2.11 + jest-haste-map: 28.1.3 + jest-regex-util: 28.0.2 + jest-util: 28.1.3 + micromatch: 4.0.5 + pirates: 4.0.6 + slash: 3.0.0 + write-file-atomic: 4.0.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@jest/types@28.1.3: + resolution: {integrity: sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + '@jest/schemas': 28.1.3 + '@types/istanbul-lib-coverage': 2.0.4 + '@types/istanbul-reports': 3.0.1 + '@types/node': 20.6.3 + '@types/yargs': 17.0.24 + chalk: 4.1.2 + dev: true + + /@jridgewell/gen-mapping@0.3.3: + resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': 1.1.2 + '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/trace-mapping': 0.3.19 + + /@jridgewell/resolve-uri@3.1.1: + resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} + engines: {node: '>=6.0.0'} + + /@jridgewell/set-array@1.1.2: + resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} + engines: {node: '>=6.0.0'} + + /@jridgewell/source-map@0.3.5: + resolution: {integrity: sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==} + dependencies: + '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/trace-mapping': 0.3.19 + + /@jridgewell/sourcemap-codec@1.4.15: + resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + + /@jridgewell/trace-mapping@0.3.19: + resolution: {integrity: sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==} + dependencies: + '@jridgewell/resolve-uri': 3.1.1 + '@jridgewell/sourcemap-codec': 1.4.15 + + /@jridgewell/trace-mapping@0.3.9: + resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} + dependencies: + '@jridgewell/resolve-uri': 3.1.1 + '@jridgewell/sourcemap-codec': 1.4.15 + dev: true + + /@make-software/ces-js-parser@1.3.3(casper-js-sdk@2.15.0): + resolution: {integrity: sha512-uJ7BgnaVbb1pkGfDCgBqES+f5+RVlVPkAYxOC6Qz9kxzIcu9HYH1eA+8EkjRO2T36uBemTjBRO6R0TdH61PIAA==} + peerDependencies: + casper-js-sdk: ^2.12.0 + dependencies: + casper-js-sdk: 2.15.0 + ts-results: 3.3.0 + dev: false + + /@manypkg/find-root@1.1.0: + resolution: {integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==} + dependencies: + '@babel/runtime': 7.22.15 + '@types/node': 12.20.55 + find-up: 4.1.0 + fs-extra: 8.1.0 + dev: true + + /@manypkg/get-packages@1.1.3: + resolution: {integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==} + dependencies: + '@babel/runtime': 7.22.15 + '@changesets/types': 4.1.0 + '@manypkg/find-root': 1.1.0 + fs-extra: 8.1.0 + globby: 11.1.0 + read-yaml-file: 1.1.0 + dev: true + + /@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1: + resolution: {integrity: sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==} + dependencies: + eslint-scope: 5.1.1 + dev: true + + /@noble/curves@1.2.0: + resolution: {integrity: sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==} + dependencies: + '@noble/hashes': 1.3.2 + dev: false + + /@noble/ed25519@1.7.3: + resolution: {integrity: sha512-iR8GBkDt0Q3GyaVcIu7mSsVIqnFbkbRzGLWlvhwunacoLwt4J3swfKhfaM6rN6WY+TBGoYT1GtT1mIh2/jGbRQ==} + dev: false + + /@noble/hashes@1.3.2: + resolution: {integrity: sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==} + engines: {node: '>= 16'} + dev: false + + /@noble/secp256k1@1.7.1: + resolution: {integrity: sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==} + dev: false + + /@nodelib/fs.scandir@2.1.5: + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + dev: true + + /@nodelib/fs.stat@2.0.5: + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + dev: true + + /@nodelib/fs.walk@1.2.8: + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.15.0 + dev: true + + /@open-rpc/client-js@1.8.1: + resolution: {integrity: sha512-vV+Hetl688nY/oWI9IFY0iKDrWuLdYhf7OIKI6U1DcnJV7r4gAgwRJjEr1QVYszUc0gjkHoQJzqevmXMGLyA0g==} + dependencies: + isomorphic-fetch: 3.0.0 + isomorphic-ws: 5.0.0(ws@7.5.9) + strict-event-emitter-types: 2.0.0 + ws: 7.5.9 + transitivePeerDependencies: + - bufferutil + - encoding + - utf-8-validate + dev: false + + /@polka/url@1.0.0-next.23: + resolution: {integrity: sha512-C16M+IYz0rgRhWZdCmK+h58JMv8vijAA61gmz2rspCSwKwzBebpdcsiUmwrtJRdphuY30i6BSLEOP8ppbNLyLg==} + dev: true + + /@rollup/plugin-node-resolve@13.3.0(rollup@2.79.1): + resolution: {integrity: sha512-Lus8rbUo1eEcnS4yTFKLZrVumLPY+YayBdWXgFSHYhTT2iJbMhoaaBL3xl5NCdeRytErGr8tZ0L71BMRmnlwSw==} + engines: {node: '>= 10.0.0'} + peerDependencies: + rollup: ^2.42.0 + dependencies: + '@rollup/pluginutils': 3.1.0(rollup@2.79.1) + '@types/resolve': 1.17.1 + deepmerge: 4.3.1 + is-builtin-module: 3.2.1 + is-module: 1.0.0 + resolve: 1.22.6 + rollup: 2.79.1 + dev: true + + /@rollup/pluginutils@3.1.0(rollup@2.79.1): + resolution: {integrity: sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==} + engines: {node: '>= 8.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0 + dependencies: + '@types/estree': 0.0.39 + estree-walker: 1.0.1 + picomatch: 2.3.1 + rollup: 2.79.1 + dev: true + + /@scure/base@1.1.3: + resolution: {integrity: sha512-/+SgoRjLq7Xlf0CWuLHq2LUZeL/w65kfzAPG5NH9pcmBhs+nunQTn4gvdwgMTIXnt9b2C/1SeL2XiysZEyIC9Q==} + dev: false + + /@scure/bip32@1.3.2: + resolution: {integrity: sha512-N1ZhksgwD3OBlwTv3R6KFEcPojl/W4ElJOeCZdi+vuI5QmTFwLq3OFf2zd2ROpKvxFdgZ6hUpb0dx9bVNEwYCA==} + dependencies: + '@noble/curves': 1.2.0 + '@noble/hashes': 1.3.2 + '@scure/base': 1.1.3 + dev: false + + /@scure/bip39@1.2.1: + resolution: {integrity: sha512-Z3/Fsz1yr904dduJD0NpiyRHhRYHdcnyh73FZWiV+/qhWi83wNJ3NWolYqCEN+ZWsUz2TWwajJggcRE9r1zUYg==} + dependencies: + '@noble/hashes': 1.3.2 + '@scure/base': 1.1.3 + dev: false + + /@sinclair/typebox@0.24.51: + resolution: {integrity: sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==} + dev: true + + /@sinonjs/commons@1.8.6: + resolution: {integrity: sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==} + dependencies: + type-detect: 4.0.8 + dev: true + + /@sinonjs/fake-timers@9.1.2: + resolution: {integrity: sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==} + dependencies: + '@sinonjs/commons': 1.8.6 + dev: true + + /@tootallnate/once@2.0.0: + resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} + engines: {node: '>= 10'} + dev: true + + /@tsconfig/node10@1.0.9: + resolution: {integrity: sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==} + dev: true + + /@tsconfig/node12@1.0.11: + resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} + dev: true + + /@tsconfig/node14@1.0.3: + resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} + dev: true + + /@tsconfig/node16@1.0.4: + resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} + dev: true + + /@types/babel__core@7.20.2: + resolution: {integrity: sha512-pNpr1T1xLUc2l3xJKuPtsEky3ybxN3m4fJkknfIpTCTfIZCDW57oAg+EfCgIIp2rvCe0Wn++/FfodDS4YXxBwA==} + dependencies: + '@babel/parser': 7.22.16 + '@babel/types': 7.22.19 + '@types/babel__generator': 7.6.5 + '@types/babel__template': 7.4.2 + '@types/babel__traverse': 7.20.2 + dev: true + + /@types/babel__generator@7.6.5: + resolution: {integrity: sha512-h9yIuWbJKdOPLJTbmSpPzkF67e659PbQDba7ifWm5BJ8xTv+sDmS7rFmywkWOvXedGTivCdeGSIIX8WLcRTz8w==} + dependencies: + '@babel/types': 7.22.19 + dev: true + + /@types/babel__template@7.4.2: + resolution: {integrity: sha512-/AVzPICMhMOMYoSx9MoKpGDKdBRsIXMNByh1PXSZoa+v6ZoLa8xxtsT/uLQ/NJm0XVAWl/BvId4MlDeXJaeIZQ==} + dependencies: + '@babel/parser': 7.22.16 + '@babel/types': 7.22.19 + dev: true + + /@types/babel__traverse@7.20.2: + resolution: {integrity: sha512-ojlGK1Hsfce93J0+kn3H5R73elidKUaZonirN33GSmgTUMpzI/MIFfSpF3haANe3G1bEBS9/9/QEqwTzwqFsKw==} + dependencies: + '@babel/types': 7.22.19 + dev: true + + /@types/bn.js@5.1.2: + resolution: {integrity: sha512-dkpZu0szUtn9UXTmw+e0AJFd4D2XAxDnsCLdc05SfqpqzPEBft8eQr8uaFitfo/dUUOZERaLec2hHMG87A4Dxg==} + dependencies: + '@types/node': 20.6.3 + dev: false + + /@types/chai-subset@1.3.3: + resolution: {integrity: sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==} + dependencies: + '@types/chai': 4.3.6 + dev: true + + /@types/chai@4.3.6: + resolution: {integrity: sha512-VOVRLM1mBxIRxydiViqPcKn6MIxZytrbMpd6RJLIWKxUNr3zux8no0Oc7kJx0WAPIitgZ0gkrDS+btlqQpubpw==} + dev: true + + /@types/elliptic@6.4.15: + resolution: {integrity: sha512-tW9Z/mrlymYEbx/WWcO/Kkly0VxqPNaf/p3KcZTYKI282ZX+50efZvY/p6FoMuTpFq+QMyABQNfs6OXvdmVUhQ==} + dependencies: + '@types/bn.js': 5.1.2 + dev: false + + /@types/eslint-scope@3.7.5: + resolution: {integrity: sha512-JNvhIEyxVW6EoMIFIvj93ZOywYFatlpu9deeH6eSx6PE3WHYvHaQtmHmQeNw7aA81bYGBPPQqdtBm6b1SsQMmA==} + dependencies: + '@types/eslint': 8.44.3 + '@types/estree': 1.0.2 + + /@types/eslint@8.44.3: + resolution: {integrity: sha512-iM/WfkwAhwmPff3wZuPLYiHX18HI24jU8k1ZSH7P8FHwxTjZ2P6CoX2wnF43oprR+YXJM6UUxATkNvyv/JHd+g==} + dependencies: + '@types/estree': 1.0.2 + '@types/json-schema': 7.0.13 + + /@types/estree@0.0.39: + resolution: {integrity: sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==} + dev: true + + /@types/estree@1.0.2: + resolution: {integrity: sha512-VeiPZ9MMwXjO32/Xu7+OwflfmeoRwkE/qzndw42gGtgJwZopBnzy2gD//NN1+go1mADzkDcqf/KnFRSjTJ8xJA==} + + /@types/graceful-fs@4.1.7: + resolution: {integrity: sha512-MhzcwU8aUygZroVwL2jeYk6JisJrPl/oov/gsgGCue9mkgl9wjGbzReYQClxiUgFDnib9FuHqTndccKeZKxTRw==} + dependencies: + '@types/node': 20.6.3 + dev: true + + /@types/is-ci@3.0.0: + resolution: {integrity: sha512-Q0Op0hdWbYd1iahB+IFNQcWXFq4O0Q5MwQP7uN0souuQ4rPg1vEYcnIOfr1gY+M+6rc8FGoRaBO1mOOvL29sEQ==} + dependencies: + ci-info: 3.8.0 + dev: true + + /@types/istanbul-lib-coverage@2.0.4: + resolution: {integrity: sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==} + dev: true + + /@types/istanbul-lib-report@3.0.0: + resolution: {integrity: sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==} + dependencies: + '@types/istanbul-lib-coverage': 2.0.4 + dev: true + + /@types/istanbul-reports@3.0.1: + resolution: {integrity: sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==} + dependencies: + '@types/istanbul-lib-report': 3.0.0 + dev: true + + /@types/jest@28.1.8: + resolution: {integrity: sha512-8TJkV++s7B6XqnDrzR1m/TT0A0h948Pnl/097veySPN67VRAgQ4gZ7n2KfJo2rVq6njQjdxU3GCCyDvAeuHoiw==} + dependencies: + expect: 28.1.3 + pretty-format: 28.1.3 + dev: true + + /@types/jsdom@16.2.15: + resolution: {integrity: sha512-nwF87yjBKuX/roqGYerZZM0Nv1pZDMAT5YhOHYeM/72Fic+VEqJh4nyoqoapzJnW3pUlfxPY5FhgsJtM+dRnQQ==} + dependencies: + '@types/node': 20.6.3 + '@types/parse5': 6.0.3 + '@types/tough-cookie': 4.0.3 + dev: true + + /@types/json-schema@7.0.13: + resolution: {integrity: sha512-RbSSoHliUbnXj3ny0CNFOoxrIDV6SUGyStHsvDqosw6CkdPV8TtWGlfecuK4ToyMEAql6pzNxgCFKanovUzlgQ==} + + /@types/json5@0.0.29: + resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} + dev: true + + /@types/minimist@1.2.2: + resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==} + dev: true + + /@types/node@12.20.55: + resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} + dev: true + + /@types/node@20.6.3: + resolution: {integrity: sha512-HksnYH4Ljr4VQgEy2lTStbCKv/P590tmPe5HqOnv9Gprffgv5WXAY+Y5Gqniu0GGqeTCUdBnzC3QSrzPkBkAMA==} + + /@types/normalize-package-data@2.4.1: + resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} + dev: true + + /@types/parse5@6.0.3: + resolution: {integrity: sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g==} + dev: true + + /@types/prettier@2.7.3: + resolution: {integrity: sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==} + dev: true + + /@types/resolve@1.17.1: + resolution: {integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==} + dependencies: + '@types/node': 20.6.3 + dev: true + + /@types/semver@7.5.2: + resolution: {integrity: sha512-7aqorHYgdNO4DM36stTiGO3DvKoex9TQRwsJU6vMaFGyqpBA1MNZkz+PG3gaNUPpTAOYhT1WR7M1JyA3fbS9Cw==} + dev: true + + /@types/stack-utils@2.0.1: + resolution: {integrity: sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==} + dev: true + + /@types/tough-cookie@4.0.3: + resolution: {integrity: sha512-THo502dA5PzG/sfQH+42Lw3fvmYkceefOspdCwpHRul8ik2Jv1K8I5OZz1AT3/rs46kwgMCe9bSBmDLYkkOMGg==} + dev: true + + /@types/ws@8.5.5: + resolution: {integrity: sha512-lwhs8hktwxSjf9UaZ9tG5M03PGogvFaH8gUgLNbN9HKIg0dvv6q+gkSuJ8HN4/VbyxkuLzCjlN7GquQ0gUJfIg==} + dependencies: + '@types/node': 20.6.3 + dev: false + + /@types/yargs-parser@21.0.0: + resolution: {integrity: sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==} + dev: true + + /@types/yargs@17.0.24: + resolution: {integrity: sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw==} + dependencies: + '@types/yargs-parser': 21.0.0 + dev: true + + /@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.50.0)(typescript@4.9.5): + resolution: {integrity: sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + '@typescript-eslint/parser': ^5.0.0 + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + eslint: + optional: true + typescript: + optional: true + dependencies: + '@eslint-community/regexpp': 4.8.1 + '@typescript-eslint/parser': 5.62.0(eslint@8.50.0)(typescript@4.9.5) + '@typescript-eslint/scope-manager': 5.62.0 + '@typescript-eslint/type-utils': 5.62.0(eslint@8.50.0)(typescript@4.9.5) + '@typescript-eslint/utils': 5.62.0(eslint@8.50.0)(typescript@4.9.5) + debug: 4.3.4 + eslint: 8.50.0 + graphemer: 1.4.0 + ignore: 5.2.4 + natural-compare-lite: 1.4.0 + semver: 7.5.4 + tsutils: 3.21.0(typescript@4.9.5) + typescript: 4.9.5 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/parser@5.62.0(eslint@8.50.0)(typescript@4.9.5): + resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + eslint: + optional: true + typescript: + optional: true + dependencies: + '@typescript-eslint/scope-manager': 5.62.0 + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/typescript-estree': 5.62.0(typescript@4.9.5) + debug: 4.3.4 + eslint: 8.50.0 + typescript: 4.9.5 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/scope-manager@5.62.0: + resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/visitor-keys': 5.62.0 + dev: true + + /@typescript-eslint/type-utils@5.62.0(eslint@8.50.0)(typescript@4.9.5): + resolution: {integrity: sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '*' + typescript: '*' + peerDependenciesMeta: + eslint: + optional: true + typescript: + optional: true + dependencies: + '@typescript-eslint/typescript-estree': 5.62.0(typescript@4.9.5) + '@typescript-eslint/utils': 5.62.0(eslint@8.50.0)(typescript@4.9.5) + debug: 4.3.4 + eslint: 8.50.0 + tsutils: 3.21.0(typescript@4.9.5) + typescript: 4.9.5 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/types@5.62.0: + resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + /@typescript-eslint/typescript-estree@5.62.0(typescript@4.9.5): + resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/visitor-keys': 5.62.0 + debug: 4.3.4 + globby: 11.1.0 + is-glob: 4.0.3 + semver: 7.5.4 + tsutils: 3.21.0(typescript@4.9.5) + typescript: 4.9.5 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/utils@5.62.0(eslint@8.50.0)(typescript@4.9.5): + resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + peerDependenciesMeta: + eslint: + optional: true + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.50.0) + '@types/json-schema': 7.0.13 + '@types/semver': 7.5.2 + '@typescript-eslint/scope-manager': 5.62.0 + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/typescript-estree': 5.62.0(typescript@4.9.5) + eslint: 8.50.0 + eslint-scope: 5.1.1 + semver: 7.5.4 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /@typescript-eslint/visitor-keys@5.62.0: + resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': 5.62.0 + eslint-visitor-keys: 3.4.3 + dev: true + + /@vitest/coverage-v8@0.34.5(vitest@0.26.3): + resolution: {integrity: sha512-97xjhRTSdmeeHCm2nNHhT3hLsMYkAhHXm/rwj6SZ3voka8xiCJrwgtfIjoZIFEL4OO0KezGmVuHWQXcMunULIA==} + peerDependencies: + vitest: '>=0.32.0 <1' + dependencies: + '@ampproject/remapping': 2.2.1 + '@bcoe/v8-coverage': 0.2.3 + istanbul-lib-coverage: 3.2.0 + istanbul-lib-report: 3.0.1 + istanbul-lib-source-maps: 4.0.1 + istanbul-reports: 3.1.6 + magic-string: 0.30.3 + picocolors: 1.0.0 + std-env: 3.4.3 + test-exclude: 6.0.0 + v8-to-istanbul: 9.1.0 + vitest: 0.26.3(@vitest/ui@0.28.5)(jsdom@20.0.3) + transitivePeerDependencies: + - supports-color + dev: true + + /@vitest/ui@0.28.5: + resolution: {integrity: sha512-hzzZzv38mH/LMFh54QEJpWFuGixZZBOD+C0fHU81d1lsvochPwNZhWJbuRJQNyZLSMZYCYW4hF6PpNQJXDHDmg==} + dependencies: + fast-glob: 3.3.1 + flatted: 3.2.9 + pathe: 1.1.1 + picocolors: 1.0.0 + sirv: 2.0.3 + dev: true + + /@webassemblyjs/ast@1.11.6: + resolution: {integrity: sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==} + dependencies: + '@webassemblyjs/helper-numbers': 1.11.6 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + + /@webassemblyjs/floating-point-hex-parser@1.11.6: + resolution: {integrity: sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==} + + /@webassemblyjs/helper-api-error@1.11.6: + resolution: {integrity: sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==} + + /@webassemblyjs/helper-buffer@1.11.6: + resolution: {integrity: sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==} + + /@webassemblyjs/helper-numbers@1.11.6: + resolution: {integrity: sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==} + dependencies: + '@webassemblyjs/floating-point-hex-parser': 1.11.6 + '@webassemblyjs/helper-api-error': 1.11.6 + '@xtuc/long': 4.2.2 + + /@webassemblyjs/helper-wasm-bytecode@1.11.6: + resolution: {integrity: sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==} + + /@webassemblyjs/helper-wasm-section@1.11.6: + resolution: {integrity: sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==} + dependencies: + '@webassemblyjs/ast': 1.11.6 + '@webassemblyjs/helper-buffer': 1.11.6 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + '@webassemblyjs/wasm-gen': 1.11.6 + + /@webassemblyjs/ieee754@1.11.6: + resolution: {integrity: sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==} + dependencies: + '@xtuc/ieee754': 1.2.0 + + /@webassemblyjs/leb128@1.11.6: + resolution: {integrity: sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==} + dependencies: + '@xtuc/long': 4.2.2 + + /@webassemblyjs/utf8@1.11.6: + resolution: {integrity: sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==} + + /@webassemblyjs/wasm-edit@1.11.6: + resolution: {integrity: sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==} + dependencies: + '@webassemblyjs/ast': 1.11.6 + '@webassemblyjs/helper-buffer': 1.11.6 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + '@webassemblyjs/helper-wasm-section': 1.11.6 + '@webassemblyjs/wasm-gen': 1.11.6 + '@webassemblyjs/wasm-opt': 1.11.6 + '@webassemblyjs/wasm-parser': 1.11.6 + '@webassemblyjs/wast-printer': 1.11.6 + + /@webassemblyjs/wasm-gen@1.11.6: + resolution: {integrity: sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==} + dependencies: + '@webassemblyjs/ast': 1.11.6 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + '@webassemblyjs/ieee754': 1.11.6 + '@webassemblyjs/leb128': 1.11.6 + '@webassemblyjs/utf8': 1.11.6 + + /@webassemblyjs/wasm-opt@1.11.6: + resolution: {integrity: sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==} + dependencies: + '@webassemblyjs/ast': 1.11.6 + '@webassemblyjs/helper-buffer': 1.11.6 + '@webassemblyjs/wasm-gen': 1.11.6 + '@webassemblyjs/wasm-parser': 1.11.6 + + /@webassemblyjs/wasm-parser@1.11.6: + resolution: {integrity: sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==} + dependencies: + '@webassemblyjs/ast': 1.11.6 + '@webassemblyjs/helper-api-error': 1.11.6 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + '@webassemblyjs/ieee754': 1.11.6 + '@webassemblyjs/leb128': 1.11.6 + '@webassemblyjs/utf8': 1.11.6 + + /@webassemblyjs/wast-printer@1.11.6: + resolution: {integrity: sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==} + dependencies: + '@webassemblyjs/ast': 1.11.6 + '@xtuc/long': 4.2.2 + + /@webpack-cli/configtest@1.2.0(webpack-cli@4.10.0)(webpack@5.88.2): + resolution: {integrity: sha512-4FB8Tj6xyVkyqjj1OaTqCjXYULB9FMkqQ8yGrZjRDrYh0nOE+7Lhs45WioWQQMV+ceFlE368Ukhe6xdvJM9Egg==} + peerDependencies: + webpack: 4.x.x || 5.x.x + webpack-cli: 4.x.x + dependencies: + webpack: 5.88.2(esbuild@0.15.18)(webpack-cli@4.10.0) + webpack-cli: 4.10.0(webpack@5.88.2) + + /@webpack-cli/info@1.5.0(webpack-cli@4.10.0): + resolution: {integrity: sha512-e8tSXZpw2hPl2uMJY6fsMswaok5FdlGNRTktvFk2sD8RjH0hE2+XistawJx1vmKteh4NmGmNUrp+Tb2w+udPcQ==} + peerDependencies: + webpack-cli: 4.x.x + dependencies: + envinfo: 7.10.0 + webpack-cli: 4.10.0(webpack@5.88.2) + + /@webpack-cli/serve@1.7.0(webpack-cli@4.10.0): + resolution: {integrity: sha512-oxnCNGj88fL+xzV+dacXs44HcDwf1ovs3AuEzvP7mqXw7fQntqIhQ1BRmynh4qEKQSSSRSWVyXRjmTbZIX9V2Q==} + peerDependencies: + webpack-cli: 4.x.x + webpack-dev-server: '*' + peerDependenciesMeta: + webpack-dev-server: + optional: true + dependencies: + webpack-cli: 4.10.0(webpack@5.88.2) + + /@xtuc/ieee754@1.2.0: + resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} + + /@xtuc/long@4.2.2: + resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} + + /abab@2.0.6: + resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} + dev: true + + /acorn-globals@6.0.0: + resolution: {integrity: sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==} + dependencies: + acorn: 7.4.1 + acorn-walk: 7.2.0 + dev: true + + /acorn-globals@7.0.1: + resolution: {integrity: sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==} + dependencies: + acorn: 8.10.0 + acorn-walk: 8.2.0 + dev: true + + /acorn-import-assertions@1.9.0(acorn@8.10.0): + resolution: {integrity: sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==} + peerDependencies: + acorn: ^8 + dependencies: + acorn: 8.10.0 + + /acorn-jsx@5.3.2(acorn@8.10.0): + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + acorn: 8.10.0 + dev: true + + /acorn-walk@7.2.0: + resolution: {integrity: sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==} + engines: {node: '>=0.4.0'} + dev: true + + /acorn-walk@8.2.0: + resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==} + engines: {node: '>=0.4.0'} + dev: true + + /acorn@7.4.1: + resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} + engines: {node: '>=0.4.0'} + hasBin: true + dev: true + + /acorn@8.10.0: + resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==} + engines: {node: '>=0.4.0'} + hasBin: true + + /aes-js@3.0.0: + resolution: {integrity: sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==} + dev: false + + /agent-base@6.0.2: + resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} + engines: {node: '>= 6.0.0'} + dependencies: + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: true + + /ajv-formats@2.1.1(ajv@8.12.0): + resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} + peerDependencies: + ajv: ^8.0.0 + peerDependenciesMeta: + ajv: + optional: true + dependencies: + ajv: 8.12.0 + dev: true + + /ajv-keywords@3.5.2(ajv@6.12.6): + resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} + peerDependencies: + ajv: ^6.9.1 + dependencies: + ajv: 6.12.6 + + /ajv-keywords@5.1.0(ajv@8.12.0): + resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==} + peerDependencies: + ajv: ^8.8.2 + dependencies: + ajv: 8.12.0 + fast-deep-equal: 3.1.3 + dev: true + + /ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + + /ajv@8.12.0: + resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} + dependencies: + fast-deep-equal: 3.1.3 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + uri-js: 4.4.1 + dev: true + + /ansi-colors@4.1.3: + resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} + engines: {node: '>=6'} + dev: true + + /ansi-escapes@4.3.2: + resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} + engines: {node: '>=8'} + dependencies: + type-fest: 0.21.3 + dev: true + + /ansi-escapes@5.0.0: + resolution: {integrity: sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA==} + engines: {node: '>=12'} + dependencies: + type-fest: 1.4.0 + dev: true + + /ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + dev: true + + /ansi-regex@6.0.1: + resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} + engines: {node: '>=12'} + dev: true + + /ansi-styles@3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} + dependencies: + color-convert: 1.9.3 + dev: true + + /ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + dependencies: + color-convert: 2.0.1 + dev: true + + /ansi-styles@5.2.0: + resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} + engines: {node: '>=10'} + dev: true + + /ansi-styles@6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + engines: {node: '>=12'} + dev: true + + /any-promise@1.3.0: + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + dev: true + + /anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + dev: true + + /arg@4.1.3: + resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} + dev: true + + /argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + dependencies: + sprintf-js: 1.0.3 + dev: true + + /argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + dev: true + + /array-buffer-byte-length@1.0.0: + resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} + dependencies: + call-bind: 1.0.2 + is-array-buffer: 3.0.2 + dev: true + + /array-includes@3.1.7: + resolution: {integrity: sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + get-intrinsic: 1.2.1 + is-string: 1.0.7 + dev: true + + /array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + dev: true + + /array.prototype.findlastindex@1.2.3: + resolution: {integrity: sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + es-shim-unscopables: 1.0.0 + get-intrinsic: 1.2.1 + dev: true + + /array.prototype.flat@1.3.2: + resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + es-shim-unscopables: 1.0.0 + dev: true + + /array.prototype.flatmap@1.3.2: + resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + es-shim-unscopables: 1.0.0 + dev: true + + /array.prototype.tosorted@1.1.2: + resolution: {integrity: sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + es-shim-unscopables: 1.0.0 + get-intrinsic: 1.2.1 + dev: true + + /arraybuffer.prototype.slice@1.0.2: + resolution: {integrity: sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==} + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: 1.0.0 + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + get-intrinsic: 1.2.1 + is-array-buffer: 3.0.2 + is-shared-array-buffer: 1.0.2 + dev: true + + /arrify@1.0.1: + resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} + engines: {node: '>=0.10.0'} + dev: true + + /asn1.js@5.4.1: + resolution: {integrity: sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==} + dependencies: + bn.js: 4.12.0 + inherits: 2.0.4 + minimalistic-assert: 1.0.1 + safer-buffer: 2.1.2 + dev: false + + /assertion-error@1.1.0: + resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} + dev: true + + /asynciterator.prototype@1.0.0: + resolution: {integrity: sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==} + dependencies: + has-symbols: 1.0.3 + dev: true + + /asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + + /available-typed-arrays@1.0.5: + resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} + engines: {node: '>= 0.4'} + dev: true + + /axios@1.5.0: + resolution: {integrity: sha512-D4DdjDo5CY50Qms0qGQTTw6Q44jl7zRwY7bthds06pUGfChBCTcQs+N743eFWGEd6pRTMd6A+I87aWyFV5wiZQ==} + dependencies: + follow-redirects: 1.15.3 + form-data: 4.0.0 + proxy-from-env: 1.1.0 + transitivePeerDependencies: + - debug + dev: false + + /babel-jest@28.1.3(@babel/core@7.22.20): + resolution: {integrity: sha512-epUaPOEWMk3cWX0M/sPvCHHCe9fMFAa/9hXEgKP8nFfNl/jlGkE9ucq9NqkZGXLDduCJYS0UvSlPUwC0S+rH6Q==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + peerDependencies: + '@babel/core': ^7.8.0 + dependencies: + '@babel/core': 7.22.20 + '@jest/transform': 28.1.3 + '@types/babel__core': 7.20.2 + babel-plugin-istanbul: 6.1.1 + babel-preset-jest: 28.1.3(@babel/core@7.22.20) + chalk: 4.1.2 + graceful-fs: 4.2.11 + slash: 3.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /babel-plugin-istanbul@6.1.1: + resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} + engines: {node: '>=8'} + dependencies: + '@babel/helper-plugin-utils': 7.22.5 + '@istanbuljs/load-nyc-config': 1.1.0 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-instrument: 5.2.1 + test-exclude: 6.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /babel-plugin-jest-hoist@28.1.3: + resolution: {integrity: sha512-Ys3tUKAmfnkRUpPdpa98eYrAR0nV+sSFUZZEGuQ2EbFd1y4SOLtD5QDNHAq+bb9a+bbXvYQC4b+ID/THIMcU6Q==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + '@babel/template': 7.22.15 + '@babel/types': 7.22.19 + '@types/babel__core': 7.20.2 + '@types/babel__traverse': 7.20.2 + dev: true + + /babel-preset-current-node-syntax@1.0.1(@babel/core@7.22.20): + resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.22.20 + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.22.20) + '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.22.20) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.22.20) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.22.20) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.22.20) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.22.20) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.22.20) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.22.20) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.22.20) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.22.20) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.22.20) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.22.20) + dev: true + + /babel-preset-jest@28.1.3(@babel/core@7.22.20): + resolution: {integrity: sha512-L+fupJvlWAHbQfn74coNX3zf60LXMJsezNvvx8eIh7iOR1luJ1poxYgQk1F8PYtNq/6QODDHCqsSnTFSWC491A==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.22.20 + babel-plugin-jest-hoist: 28.1.3 + babel-preset-current-node-syntax: 1.0.1(@babel/core@7.22.20) + dev: true + + /balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + /better-path-resolve@1.0.0: + resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==} + engines: {node: '>=4'} + dependencies: + is-windows: 1.0.2 + dev: true + + /binary-extensions@2.2.0: + resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} + engines: {node: '>=8'} + dev: true + + /blakejs@1.2.1: + resolution: {integrity: sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==} + dev: false + + /bn.js@4.12.0: + resolution: {integrity: sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==} + dev: false + + /bn.js@5.2.1: + resolution: {integrity: sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==} + dev: false + + /brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + + /braces@3.0.2: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + engines: {node: '>=8'} + dependencies: + fill-range: 7.0.1 + dev: true + + /breakword@1.0.6: + resolution: {integrity: sha512-yjxDAYyK/pBvws9H4xKYpLDpYKEH6CzrBPAuXq3x18I+c/2MkVtT3qAr7Oloi6Dss9qNhPVueAAVU1CSeNDIXw==} + dependencies: + wcwidth: 1.0.1 + dev: true + + /brorand@1.1.0: + resolution: {integrity: sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==} + dev: false + + /browser-process-hrtime@1.0.0: + resolution: {integrity: sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==} + dev: true + + /browserslist@4.21.11: + resolution: {integrity: sha512-xn1UXOKUz7DjdGlg9RrUr0GGiWzI97UQJnugHtH0OLDfJB7jMgoIkYvRIEO1l9EeEERVqeqLYOcFBW9ldjypbQ==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + dependencies: + caniuse-lite: 1.0.30001538 + electron-to-chromium: 1.4.528 + node-releases: 2.0.13 + update-browserslist-db: 1.0.13(browserslist@4.21.11) + + /bs-logger@0.2.6: + resolution: {integrity: sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==} + engines: {node: '>= 6'} + dependencies: + fast-json-stable-stringify: 2.1.0 + dev: true + + /bser@2.1.1: + resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} + dependencies: + node-int64: 0.4.0 + dev: true + + /buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + + /builtin-modules@3.3.0: + resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} + engines: {node: '>=6'} + dev: true + + /bundle-require@4.0.1(esbuild@0.17.19): + resolution: {integrity: sha512-9NQkRHlNdNpDBGmLpngF3EFDcwodhMUuLz9PaWYciVcQF9SE4LFjM2DB/xV1Li5JiuDMv7ZUWuC3rGbqR0MAXQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + peerDependencies: + esbuild: '>=0.17' + dependencies: + esbuild: 0.17.19 + load-tsconfig: 0.2.5 + dev: true + + /bundle-require@4.0.1(esbuild@0.18.20): + resolution: {integrity: sha512-9NQkRHlNdNpDBGmLpngF3EFDcwodhMUuLz9PaWYciVcQF9SE4LFjM2DB/xV1Li5JiuDMv7ZUWuC3rGbqR0MAXQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + peerDependencies: + esbuild: '>=0.17' + dependencies: + esbuild: 0.18.20 + load-tsconfig: 0.2.5 + dev: true + + /bytes@3.1.2: + resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} + engines: {node: '>= 0.8'} + dev: true + + /cac@6.7.14: + resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} + engines: {node: '>=8'} + dev: true + + /call-bind@1.0.2: + resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} + dependencies: + function-bind: 1.1.1 + get-intrinsic: 1.2.1 + dev: true + + /callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + dev: true + + /camelcase-keys@6.2.2: + resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} + engines: {node: '>=8'} + dependencies: + camelcase: 5.3.1 + map-obj: 4.3.0 + quick-lru: 4.0.1 + dev: true + + /camelcase@5.3.1: + resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} + engines: {node: '>=6'} + dev: true + + /camelcase@6.3.0: + resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} + engines: {node: '>=10'} + dev: true + + /caniuse-lite@1.0.30001538: + resolution: {integrity: sha512-HWJnhnID+0YMtGlzcp3T9drmBJUVDchPJ08tpUGFLs9CYlwWPH2uLgpHn8fND5pCgXVtnGS3H4QR9XLMHVNkHw==} + + /casper-js-sdk@2.15.0: + resolution: {integrity: sha512-95O1hOmJqTVteQMtt4G8G85hCw1P1Ezs7mKc+bj3chMMwTmg2iUrWK0wLGl1hrn0v11yYidRqkcdlLm6C/SBrg==} + dependencies: + '@ethersproject/bignumber': 5.7.0 + '@ethersproject/bytes': 5.7.0 + '@ethersproject/constants': 5.7.0 + '@noble/curves': 1.2.0 + '@noble/ed25519': 1.7.3 + '@noble/hashes': 1.3.2 + '@noble/secp256k1': 1.7.1 + '@open-rpc/client-js': 1.8.1 + '@scure/bip32': 1.3.2 + '@scure/bip39': 1.2.1 + '@types/ws': 8.5.5 + glob: 7.2.3 + humanize-duration: 3.30.0 + key-encoder: 2.0.3 + lodash: 4.17.21 + node-fetch: 2.7.0 + reflect-metadata: 0.1.13 + ts-results: /@casperlabs/ts-results@3.3.5 + typedjson: 1.8.0 + transitivePeerDependencies: + - bufferutil + - encoding + - utf-8-validate + dev: false + + /chai@4.3.8: + resolution: {integrity: sha512-vX4YvVVtxlfSZ2VecZgFUTU5qPCYsobVI2O9FmwEXBhDigYGQA6jRXCycIs1yJnnWbZ6/+a2zNIF5DfVCcJBFQ==} + engines: {node: '>=4'} + dependencies: + assertion-error: 1.1.0 + check-error: 1.0.2 + deep-eql: 4.1.3 + get-func-name: 2.0.0 + loupe: 2.3.6 + pathval: 1.1.1 + type-detect: 4.0.8 + dev: true + + /chalk@2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + dev: true + + /chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + dev: true + + /chalk@5.3.0: + resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + dev: true + + /char-regex@1.0.2: + resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} + engines: {node: '>=10'} + dev: true + + /chardet@0.7.0: + resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} + dev: true + + /check-error@1.0.2: + resolution: {integrity: sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==} + dev: true + + /chokidar@3.5.3: + resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} + engines: {node: '>= 8.10.0'} + dependencies: + anymatch: 3.1.3 + braces: 3.0.2 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + dev: true + + /chrome-trace-event@1.0.3: + resolution: {integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==} + engines: {node: '>=6.0'} + + /ci-info@3.8.0: + resolution: {integrity: sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==} + engines: {node: '>=8'} + dev: true + + /cjs-module-lexer@1.2.3: + resolution: {integrity: sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==} + dev: true + + /cli-cursor@4.0.0: + resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + restore-cursor: 4.0.0 + dev: true + + /cli-truncate@3.1.0: + resolution: {integrity: sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + slice-ansi: 5.0.0 + string-width: 5.1.2 + dev: true + + /cliui@6.0.0: + resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 6.2.0 + dev: true + + /cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + dev: true + + /clone-deep@4.0.1: + resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==} + engines: {node: '>=6'} + dependencies: + is-plain-object: 2.0.4 + kind-of: 6.0.3 + shallow-clone: 3.0.1 + + /clone@1.0.4: + resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} + engines: {node: '>=0.8'} + dev: true + + /co@4.6.0: + resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} + engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} + dev: true + + /collect-v8-coverage@1.0.2: + resolution: {integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==} + dev: true + + /color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + dependencies: + color-name: 1.1.3 + dev: true + + /color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + dependencies: + color-name: 1.1.4 + dev: true + + /color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + dev: true + + /color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + dev: true + + /colorette@2.0.20: + resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} + + /combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + dependencies: + delayed-stream: 1.0.0 + + /commander@11.0.0: + resolution: {integrity: sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ==} + engines: {node: '>=16'} + dev: true + + /commander@2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + + /commander@4.1.1: + resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} + engines: {node: '>= 6'} + dev: true + + /commander@7.2.0: + resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} + engines: {node: '>= 10'} + + /commander@9.5.0: + resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} + engines: {node: ^12.20.0 || >=14} + dev: true + + /concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + + /confusing-browser-globals@1.0.11: + resolution: {integrity: sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==} + dev: true + + /contract-client@0.0.5: + resolution: {integrity: sha512-pqqQ4QQEPTuJjUlygbbi/ifFYpicRVmeASOkuM4CyPQNcBgab3DXSu74Q7A60eW5Mi4QgEsPbrrlAN2YxJYoOw==} + dependencies: + casper-js-sdk: 2.15.0 + transitivePeerDependencies: + - bufferutil + - encoding + - utf-8-validate + dev: false + + /convert-source-map@1.9.0: + resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} + dev: true + + /copy-webpack-plugin@11.0.0(webpack@5.88.2): + resolution: {integrity: sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==} + engines: {node: '>= 14.15.0'} + peerDependencies: + webpack: ^5.1.0 + dependencies: + fast-glob: 3.3.1 + glob-parent: 6.0.2 + globby: 13.2.2 + normalize-path: 3.0.0 + schema-utils: 4.2.0 + serialize-javascript: 6.0.1 + webpack: 5.88.2(esbuild@0.15.18)(webpack-cli@4.10.0) + dev: true + + /create-require@1.1.1: + resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} + dev: true + + /cross-spawn@5.1.0: + resolution: {integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==} + dependencies: + lru-cache: 4.1.5 + shebang-command: 1.2.0 + which: 1.3.1 + dev: true + + /cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + /cssom@0.3.8: + resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==} + dev: true + + /cssom@0.5.0: + resolution: {integrity: sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==} + dev: true + + /cssstyle@2.3.0: + resolution: {integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==} + engines: {node: '>=8'} + dependencies: + cssom: 0.3.8 + dev: true + + /csv-generate@3.4.3: + resolution: {integrity: sha512-w/T+rqR0vwvHqWs/1ZyMDWtHHSJaN06klRqJXBEpDJaM/+dZkso0OKh1VcuuYvK3XM53KysVNq8Ko/epCK8wOw==} + dev: true + + /csv-parse@4.16.3: + resolution: {integrity: sha512-cO1I/zmz4w2dcKHVvpCr7JVRu8/FymG5OEpmvsZYlccYolPBLoVGKUHgNoc4ZGkFeFlWGEDmMyBM+TTqRdW/wg==} + dev: true + + /csv-stringify@5.6.5: + resolution: {integrity: sha512-PjiQ659aQ+fUTQqSrd1XEDnOr52jh30RBurfzkscaE2tPaFsDH5wOAHJiw8XAHphRknCwMUE9KRayc4K/NbO8A==} + dev: true + + /csv@5.5.3: + resolution: {integrity: sha512-QTaY0XjjhTQOdguARF0lGKm5/mEq9PD9/VhZZegHDIBq2tQwgNpHc3dneD4mGo2iJs+fTKv5Bp0fZ+BRuY3Z0g==} + engines: {node: '>= 0.1.90'} + dependencies: + csv-generate: 3.4.3 + csv-parse: 4.16.3 + csv-stringify: 5.6.5 + stream-transform: 2.1.3 + dev: true + + /data-urls@3.0.2: + resolution: {integrity: sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==} + engines: {node: '>=12'} + dependencies: + abab: 2.0.6 + whatwg-mimetype: 3.0.0 + whatwg-url: 11.0.0 + dev: true + + /dataloader@1.4.0: + resolution: {integrity: sha512-68s5jYdlvasItOJnCuI2Q9s4q98g0pCyL3HrcKJu8KNugUl8ahgmZYg38ysLTgQjjXX3H8CJLkAvWrclWfcalw==} + dev: true + + /debug@3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.3 + dev: true + + /debug@4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + dev: true + + /decamelize-keys@1.1.1: + resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} + engines: {node: '>=0.10.0'} + dependencies: + decamelize: 1.2.0 + map-obj: 1.0.1 + dev: true + + /decamelize@1.2.0: + resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} + engines: {node: '>=0.10.0'} + dev: true + + /decimal.js@10.4.3: + resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} + dev: true + + /dedent@0.7.0: + resolution: {integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==} + dev: true + + /deep-eql@4.1.3: + resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} + engines: {node: '>=6'} + dependencies: + type-detect: 4.0.8 + dev: true + + /deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + dev: true + + /deepmerge@4.3.1: + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} + engines: {node: '>=0.10.0'} + dev: true + + /defaults@1.0.4: + resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} + dependencies: + clone: 1.0.4 + dev: true + + /define-data-property@1.1.0: + resolution: {integrity: sha512-UzGwzcjyv3OtAvolTj1GoyNYzfFR+iqbGjcnBEENZVCpM4/Ng1yhGNvS3lR/xDS74Tb2wGG9WzNSNIOS9UVb2g==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.1 + gopd: 1.0.1 + has-property-descriptors: 1.0.0 + dev: true + + /define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.0 + has-property-descriptors: 1.0.0 + object-keys: 1.1.1 + dev: true + + /delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + + /detect-indent@6.1.0: + resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} + engines: {node: '>=8'} + dev: true + + /detect-newline@3.1.0: + resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} + engines: {node: '>=8'} + dev: true + + /diff-sequences@28.1.1: + resolution: {integrity: sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dev: true + + /diff@4.0.2: + resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} + engines: {node: '>=0.3.1'} + dev: true + + /dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + dependencies: + path-type: 4.0.0 + dev: true + + /doctrine@2.1.0: + resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} + engines: {node: '>=0.10.0'} + dependencies: + esutils: 2.0.3 + dev: true + + /doctrine@3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} + dependencies: + esutils: 2.0.3 + dev: true + + /domexception@4.0.0: + resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==} + engines: {node: '>=12'} + dependencies: + webidl-conversions: 7.0.0 + dev: true + + /dotenv@8.6.0: + resolution: {integrity: sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==} + engines: {node: '>=10'} + dev: true + + /eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + dev: true + + /electron-to-chromium@1.4.528: + resolution: {integrity: sha512-UdREXMXzLkREF4jA8t89FQjA8WHI6ssP38PMY4/4KhXFQbtImnghh4GkCgrtiZwLKUKVD2iTVXvDVQjfomEQuA==} + + /elliptic@6.5.4: + resolution: {integrity: sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==} + dependencies: + bn.js: 4.12.0 + brorand: 1.1.0 + hash.js: 1.1.7 + hmac-drbg: 1.0.1 + inherits: 2.0.4 + minimalistic-assert: 1.0.1 + minimalistic-crypto-utils: 1.0.1 + dev: false + + /emittery@0.10.2: + resolution: {integrity: sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==} + engines: {node: '>=12'} + dev: true + + /emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + dev: true + + /emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + dev: true + + /enhanced-resolve@5.15.0: + resolution: {integrity: sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==} + engines: {node: '>=10.13.0'} + dependencies: + graceful-fs: 4.2.11 + tapable: 2.2.1 + + /enquirer@2.4.1: + resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} + engines: {node: '>=8.6'} + dependencies: + ansi-colors: 4.1.3 + strip-ansi: 6.0.1 + dev: true + + /entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + dev: true + + /envinfo@7.10.0: + resolution: {integrity: sha512-ZtUjZO6l5mwTHvc1L9+1q5p/R3wTopcfqMW8r5t8SJSKqeVI/LtajORwRFEKpEFuekjD0VBjwu1HMxL4UalIRw==} + engines: {node: '>=4'} + hasBin: true + + /error-ex@1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + dependencies: + is-arrayish: 0.2.1 + dev: true + + /es-abstract@1.22.2: + resolution: {integrity: sha512-YoxfFcDmhjOgWPWsV13+2RNjq1F6UQnfs+8TftwNqtzlmFzEXvlUwdrNrYeaizfjQzRMxkZ6ElWMOJIFKdVqwA==} + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: 1.0.0 + arraybuffer.prototype.slice: 1.0.2 + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + es-set-tostringtag: 2.0.1 + es-to-primitive: 1.2.1 + function.prototype.name: 1.1.6 + get-intrinsic: 1.2.1 + get-symbol-description: 1.0.0 + globalthis: 1.0.3 + gopd: 1.0.1 + has: 1.0.3 + has-property-descriptors: 1.0.0 + has-proto: 1.0.1 + has-symbols: 1.0.3 + internal-slot: 1.0.5 + is-array-buffer: 3.0.2 + is-callable: 1.2.7 + is-negative-zero: 2.0.2 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.2 + is-string: 1.0.7 + is-typed-array: 1.1.12 + is-weakref: 1.0.2 + object-inspect: 1.12.3 + object-keys: 1.1.1 + object.assign: 4.1.4 + regexp.prototype.flags: 1.5.1 + safe-array-concat: 1.0.1 + safe-regex-test: 1.0.0 + string.prototype.trim: 1.2.8 + string.prototype.trimend: 1.0.7 + string.prototype.trimstart: 1.0.7 + typed-array-buffer: 1.0.0 + typed-array-byte-length: 1.0.0 + typed-array-byte-offset: 1.0.0 + typed-array-length: 1.0.4 + unbox-primitive: 1.0.2 + which-typed-array: 1.1.11 + dev: true + + /es-iterator-helpers@1.0.15: + resolution: {integrity: sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g==} + dependencies: + asynciterator.prototype: 1.0.0 + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + es-set-tostringtag: 2.0.1 + function-bind: 1.1.1 + get-intrinsic: 1.2.1 + globalthis: 1.0.3 + has-property-descriptors: 1.0.0 + has-proto: 1.0.1 + has-symbols: 1.0.3 + internal-slot: 1.0.5 + iterator.prototype: 1.1.2 + safe-array-concat: 1.0.1 + dev: true + + /es-module-lexer@1.3.1: + resolution: {integrity: sha512-JUFAyicQV9mXc3YRxPnDlrfBKpqt6hUYzz9/boprUJHs4e4KVr3XwOF70doO6gwXUor6EWZJAyWAfKki84t20Q==} + + /es-set-tostringtag@2.0.1: + resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.1 + has: 1.0.3 + has-tostringtag: 1.0.0 + dev: true + + /es-shim-unscopables@1.0.0: + resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==} + dependencies: + has: 1.0.3 + dev: true + + /es-to-primitive@1.2.1: + resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} + engines: {node: '>= 0.4'} + dependencies: + is-callable: 1.2.7 + is-date-object: 1.0.5 + is-symbol: 1.0.4 + dev: true + + /esbuild-android-64@0.15.18: + resolution: {integrity: sha512-wnpt3OXRhcjfIDSZu9bnzT4/TNTDsOUvip0foZOUBG7QbSt//w3QV4FInVJxNhKc/ErhUxc5z4QjHtMi7/TbgA==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + optional: true + + /esbuild-android-arm64@0.15.18: + resolution: {integrity: sha512-G4xu89B8FCzav9XU8EjsXacCKSG2FT7wW9J6hOc18soEHJdtWu03L3TQDGf0geNxfLTtxENKBzMSq9LlbjS8OQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + optional: true + + /esbuild-darwin-64@0.15.18: + resolution: {integrity: sha512-2WAvs95uPnVJPuYKP0Eqx+Dl/jaYseZEUUT1sjg97TJa4oBtbAKnPnl3b5M9l51/nbx7+QAEtuummJZW0sBEmg==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + optional: true + + /esbuild-darwin-arm64@0.15.18: + resolution: {integrity: sha512-tKPSxcTJ5OmNb1btVikATJ8NftlyNlc8BVNtyT/UAr62JFOhwHlnoPrhYWz09akBLHI9nElFVfWSTSRsrZiDUA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + optional: true + + /esbuild-freebsd-64@0.15.18: + resolution: {integrity: sha512-TT3uBUxkteAjR1QbsmvSsjpKjOX6UkCstr8nMr+q7zi3NuZ1oIpa8U41Y8I8dJH2fJgdC3Dj3CXO5biLQpfdZA==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + optional: true + + /esbuild-freebsd-arm64@0.15.18: + resolution: {integrity: sha512-R/oVr+X3Tkh+S0+tL41wRMbdWtpWB8hEAMsOXDumSSa6qJR89U0S/PpLXrGF7Wk/JykfpWNokERUpCeHDl47wA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + optional: true + + /esbuild-linux-32@0.15.18: + resolution: {integrity: sha512-lphF3HiCSYtaa9p1DtXndiQEeQDKPl9eN/XNoBf2amEghugNuqXNZA/ZovthNE2aa4EN43WroO0B85xVSjYkbg==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + optional: true + + /esbuild-linux-64@0.15.18: + resolution: {integrity: sha512-hNSeP97IviD7oxLKFuii5sDPJ+QHeiFTFLoLm7NZQligur8poNOWGIgpQ7Qf8Balb69hptMZzyOBIPtY09GZYw==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + optional: true + + /esbuild-linux-arm64@0.15.18: + resolution: {integrity: sha512-54qr8kg/6ilcxd+0V3h9rjT4qmjc0CccMVWrjOEM/pEcUzt8X62HfBSeZfT2ECpM7104mk4yfQXkosY8Quptug==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + optional: true + + /esbuild-linux-arm@0.15.18: + resolution: {integrity: sha512-UH779gstRblS4aoS2qpMl3wjg7U0j+ygu3GjIeTonCcN79ZvpPee12Qun3vcdxX+37O5LFxz39XeW2I9bybMVA==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + optional: true + + /esbuild-linux-mips64le@0.15.18: + resolution: {integrity: sha512-Mk6Ppwzzz3YbMl/ZZL2P0q1tnYqh/trYZ1VfNP47C31yT0K8t9s7Z077QrDA/guU60tGNp2GOwCQnp+DYv7bxQ==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + optional: true + + /esbuild-linux-ppc64le@0.15.18: + resolution: {integrity: sha512-b0XkN4pL9WUulPTa/VKHx2wLCgvIAbgwABGnKMY19WhKZPT+8BxhZdqz6EgkqCLld7X5qiCY2F/bfpUUlnFZ9w==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + optional: true + + /esbuild-linux-riscv64@0.15.18: + resolution: {integrity: sha512-ba2COaoF5wL6VLZWn04k+ACZjZ6NYniMSQStodFKH/Pu6RxzQqzsmjR1t9QC89VYJxBeyVPTaHuBMCejl3O/xg==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + optional: true + + /esbuild-linux-s390x@0.15.18: + resolution: {integrity: sha512-VbpGuXEl5FCs1wDVp93O8UIzl3ZrglgnSQ+Hu79g7hZu6te6/YHgVJxCM2SqfIila0J3k0csfnf8VD2W7u2kzQ==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + optional: true + + /esbuild-netbsd-64@0.15.18: + resolution: {integrity: sha512-98ukeCdvdX7wr1vUYQzKo4kQ0N2p27H7I11maINv73fVEXt2kyh4K4m9f35U1K43Xc2QGXlzAw0K9yoU7JUjOg==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + optional: true + + /esbuild-openbsd-64@0.15.18: + resolution: {integrity: sha512-yK5NCcH31Uae076AyQAXeJzt/vxIo9+omZRKj1pauhk3ITuADzuOx5N2fdHrAKPxN+zH3w96uFKlY7yIn490xQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + optional: true + + /esbuild-sunos-64@0.15.18: + resolution: {integrity: sha512-On22LLFlBeLNj/YF3FT+cXcyKPEI263nflYlAhz5crxtp3yRG1Ugfr7ITyxmCmjm4vbN/dGrb/B7w7U8yJR9yw==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + optional: true + + /esbuild-windows-32@0.15.18: + resolution: {integrity: sha512-o+eyLu2MjVny/nt+E0uPnBxYuJHBvho8vWsC2lV61A7wwTWC3jkN2w36jtA+yv1UgYkHRihPuQsL23hsCYGcOQ==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + optional: true + + /esbuild-windows-64@0.15.18: + resolution: {integrity: sha512-qinug1iTTaIIrCorAUjR0fcBk24fjzEedFYhhispP8Oc7SFvs+XeW3YpAKiKp8dRpizl4YYAhxMjlftAMJiaUw==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + optional: true + + /esbuild-windows-arm64@0.15.18: + resolution: {integrity: sha512-q9bsYzegpZcLziq0zgUi5KqGVtfhjxGbnksaBFYmWLxeV/S1fK4OLdq2DFYnXcLMjlZw2L0jLsk1eGoB522WXQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + optional: true + + /esbuild@0.15.18: + resolution: {integrity: sha512-x/R72SmW3sSFRm5zrrIjAhCeQSAWoni3CmHEqfQrZIQTM3lVCdehdwuIqaOtfC2slvpdlLa62GYoN8SxT23m6Q==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/android-arm': 0.15.18 + '@esbuild/linux-loong64': 0.15.18 + esbuild-android-64: 0.15.18 + esbuild-android-arm64: 0.15.18 + esbuild-darwin-64: 0.15.18 + esbuild-darwin-arm64: 0.15.18 + esbuild-freebsd-64: 0.15.18 + esbuild-freebsd-arm64: 0.15.18 + esbuild-linux-32: 0.15.18 + esbuild-linux-64: 0.15.18 + esbuild-linux-arm: 0.15.18 + esbuild-linux-arm64: 0.15.18 + esbuild-linux-mips64le: 0.15.18 + esbuild-linux-ppc64le: 0.15.18 + esbuild-linux-riscv64: 0.15.18 + esbuild-linux-s390x: 0.15.18 + esbuild-netbsd-64: 0.15.18 + esbuild-openbsd-64: 0.15.18 + esbuild-sunos-64: 0.15.18 + esbuild-windows-32: 0.15.18 + esbuild-windows-64: 0.15.18 + esbuild-windows-arm64: 0.15.18 + + /esbuild@0.17.19: + resolution: {integrity: sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/android-arm': 0.17.19 + '@esbuild/android-arm64': 0.17.19 + '@esbuild/android-x64': 0.17.19 + '@esbuild/darwin-arm64': 0.17.19 + '@esbuild/darwin-x64': 0.17.19 + '@esbuild/freebsd-arm64': 0.17.19 + '@esbuild/freebsd-x64': 0.17.19 + '@esbuild/linux-arm': 0.17.19 + '@esbuild/linux-arm64': 0.17.19 + '@esbuild/linux-ia32': 0.17.19 + '@esbuild/linux-loong64': 0.17.19 + '@esbuild/linux-mips64el': 0.17.19 + '@esbuild/linux-ppc64': 0.17.19 + '@esbuild/linux-riscv64': 0.17.19 + '@esbuild/linux-s390x': 0.17.19 + '@esbuild/linux-x64': 0.17.19 + '@esbuild/netbsd-x64': 0.17.19 + '@esbuild/openbsd-x64': 0.17.19 + '@esbuild/sunos-x64': 0.17.19 + '@esbuild/win32-arm64': 0.17.19 + '@esbuild/win32-ia32': 0.17.19 + '@esbuild/win32-x64': 0.17.19 + dev: true + + /esbuild@0.18.20: + resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/android-arm': 0.18.20 + '@esbuild/android-arm64': 0.18.20 + '@esbuild/android-x64': 0.18.20 + '@esbuild/darwin-arm64': 0.18.20 + '@esbuild/darwin-x64': 0.18.20 + '@esbuild/freebsd-arm64': 0.18.20 + '@esbuild/freebsd-x64': 0.18.20 + '@esbuild/linux-arm': 0.18.20 + '@esbuild/linux-arm64': 0.18.20 + '@esbuild/linux-ia32': 0.18.20 + '@esbuild/linux-loong64': 0.18.20 + '@esbuild/linux-mips64el': 0.18.20 + '@esbuild/linux-ppc64': 0.18.20 + '@esbuild/linux-riscv64': 0.18.20 + '@esbuild/linux-s390x': 0.18.20 + '@esbuild/linux-x64': 0.18.20 + '@esbuild/netbsd-x64': 0.18.20 + '@esbuild/openbsd-x64': 0.18.20 + '@esbuild/sunos-x64': 0.18.20 + '@esbuild/win32-arm64': 0.18.20 + '@esbuild/win32-ia32': 0.18.20 + '@esbuild/win32-x64': 0.18.20 + dev: true + + /escalade@3.1.1: + resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} + engines: {node: '>=6'} + + /escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} + dev: true + + /escape-string-regexp@2.0.0: + resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} + engines: {node: '>=8'} + dev: true + + /escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + dev: true + + /escodegen@2.1.0: + resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==} + engines: {node: '>=6.0'} + hasBin: true + dependencies: + esprima: 4.0.1 + estraverse: 5.3.0 + esutils: 2.0.3 + optionalDependencies: + source-map: 0.6.1 + dev: true + + /eslint-config-airbnb-base@15.0.0(eslint-plugin-import@2.28.1)(eslint@8.50.0): + resolution: {integrity: sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==} + engines: {node: ^10.12.0 || >=12.0.0} + peerDependencies: + eslint: ^7.32.0 || ^8.2.0 + eslint-plugin-import: ^2.25.2 + peerDependenciesMeta: + eslint: + optional: true + dependencies: + confusing-browser-globals: 1.0.11 + eslint: 8.50.0 + eslint-plugin-import: 2.28.1(@typescript-eslint/parser@5.62.0)(eslint@8.50.0) + object.assign: 4.1.4 + object.entries: 1.1.7 + semver: 6.3.1 + dev: true + + /eslint-config-airbnb-typescript@17.1.0(@typescript-eslint/eslint-plugin@5.62.0)(@typescript-eslint/parser@5.62.0)(eslint-plugin-import@2.28.1)(eslint@8.50.0): + resolution: {integrity: sha512-GPxI5URre6dDpJ0CtcthSZVBAfI+Uw7un5OYNVxP2EYi3H81Jw701yFP7AU+/vCE7xBtFmjge7kfhhk4+RAiig==} + peerDependencies: + '@typescript-eslint/eslint-plugin': ^5.13.0 || ^6.0.0 + '@typescript-eslint/parser': ^5.0.0 || ^6.0.0 + eslint: ^7.32.0 || ^8.2.0 + eslint-plugin-import: ^2.25.3 + peerDependenciesMeta: + eslint: + optional: true + dependencies: + '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.50.0)(typescript@4.9.5) + '@typescript-eslint/parser': 5.62.0(eslint@8.50.0)(typescript@4.9.5) + eslint: 8.50.0 + eslint-config-airbnb-base: 15.0.0(eslint-plugin-import@2.28.1)(eslint@8.50.0) + eslint-plugin-import: 2.28.1(@typescript-eslint/parser@5.62.0)(eslint@8.50.0) + dev: true + + /eslint-config-prettier@8.10.0(eslint@8.50.0): + resolution: {integrity: sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==} + hasBin: true + peerDependencies: + eslint: '>=7.0.0' + peerDependenciesMeta: + eslint: + optional: true + dependencies: + eslint: 8.50.0 + dev: true + + /eslint-import-resolver-node@0.3.9: + resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} + dependencies: + debug: 3.2.7 + is-core-module: 2.13.0 + resolve: 1.22.6 + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-module-utils@2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.9)(eslint@8.50.0): + resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: '*' + eslint-import-resolver-node: '*' + eslint-import-resolver-typescript: '*' + eslint-import-resolver-webpack: '*' + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + eslint: + optional: true + eslint-import-resolver-node: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-import-resolver-webpack: + optional: true + dependencies: + '@typescript-eslint/parser': 5.62.0(eslint@8.50.0)(typescript@4.9.5) + debug: 3.2.7 + eslint: 8.50.0 + eslint-import-resolver-node: 0.3.9 + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-plugin-import@2.28.1(@typescript-eslint/parser@5.62.0)(eslint@8.50.0): + resolution: {integrity: sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + eslint: + optional: true + dependencies: + '@typescript-eslint/parser': 5.62.0(eslint@8.50.0)(typescript@4.9.5) + array-includes: 3.1.7 + array.prototype.findlastindex: 1.2.3 + array.prototype.flat: 1.3.2 + array.prototype.flatmap: 1.3.2 + debug: 3.2.7 + doctrine: 2.1.0 + eslint: 8.50.0 + eslint-import-resolver-node: 0.3.9 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.9)(eslint@8.50.0) + has: 1.0.3 + is-core-module: 2.13.0 + is-glob: 4.0.3 + minimatch: 3.1.2 + object.fromentries: 2.0.7 + object.groupby: 1.0.1 + object.values: 1.1.7 + semver: 6.3.1 + tsconfig-paths: 3.14.2 + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color + dev: true + + /eslint-plugin-prettier@4.2.1(eslint-config-prettier@8.10.0)(eslint@8.50.0)(prettier@2.8.8): + resolution: {integrity: sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==} + engines: {node: '>=12.0.0'} + peerDependencies: + eslint: '>=7.28.0' + eslint-config-prettier: '*' + prettier: '>=2.0.0' + peerDependenciesMeta: + eslint: + optional: true + eslint-config-prettier: + optional: true + prettier: + optional: true + dependencies: + eslint: 8.50.0 + eslint-config-prettier: 8.10.0(eslint@8.50.0) + prettier: 2.8.8 + prettier-linter-helpers: 1.0.0 + dev: true + + /eslint-plugin-react-hooks@4.6.0(eslint@8.50.0): + resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} + engines: {node: '>=10'} + peerDependencies: + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 + peerDependenciesMeta: + eslint: + optional: true + dependencies: + eslint: 8.50.0 + dev: true + + /eslint-plugin-react@7.33.2(eslint@8.50.0): + resolution: {integrity: sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==} + engines: {node: '>=4'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + peerDependenciesMeta: + eslint: + optional: true + dependencies: + array-includes: 3.1.7 + array.prototype.flatmap: 1.3.2 + array.prototype.tosorted: 1.1.2 + doctrine: 2.1.0 + es-iterator-helpers: 1.0.15 + eslint: 8.50.0 + estraverse: 5.3.0 + jsx-ast-utils: 3.3.5 + minimatch: 3.1.2 + object.entries: 1.1.7 + object.fromentries: 2.0.7 + object.hasown: 1.1.3 + object.values: 1.1.7 + prop-types: 15.8.1 + resolve: 2.0.0-next.4 + semver: 6.3.1 + string.prototype.matchall: 4.0.10 + dev: true + + /eslint-plugin-sonar@0.9.2(@babel/core@7.22.20)(eslint@8.50.0)(typescript@4.9.5): + resolution: {integrity: sha512-Dl5wyk4UbIxhIMI/vv31PGM2z+VxLPMxl+1K0B3eauOU5Zv0EQ7biWOB3SFjcGPkrgMUEfm4FUeduyXWncF9/Q==} + engines: {node: '>=12.20'} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + typescript: ^4.0.0 + peerDependenciesMeta: + eslint: + optional: true + dependencies: + '@babel/eslint-parser': 7.22.15(@babel/core@7.22.20)(eslint@8.50.0) + builtin-modules: 3.3.0 + bytes: 3.1.2 + eslint: 8.50.0 + eslint-plugin-react: 7.33.2(eslint@8.50.0) + eslint-plugin-react-hooks: 4.6.0(eslint@8.50.0) + eslint-plugin-sonarjs: 0.13.0(eslint@8.50.0) + functional-red-black-tree: 1.0.1 + regexpp: 3.2.0 + scslre: 0.1.6 + typescript: 4.9.5 + transitivePeerDependencies: + - '@babel/core' + dev: true + + /eslint-plugin-sonarjs@0.13.0(eslint@8.50.0): + resolution: {integrity: sha512-t3m7ta0EspzDxSOZh3cEOJIJVZgN/TlJYaBGnQlK6W/PZNbWep8q4RQskkJkA7/zwNpX0BaoEOSUUrqaADVoqA==} + engines: {node: '>=12'} + peerDependencies: + eslint: ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 + peerDependenciesMeta: + eslint: + optional: true + dependencies: + eslint: 8.50.0 + dev: true + + /eslint-scope@5.1.1: + resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} + engines: {node: '>=8.0.0'} + dependencies: + esrecurse: 4.3.0 + estraverse: 4.3.0 + + /eslint-scope@7.2.2: + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + dev: true + + /eslint-visitor-keys@2.1.0: + resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} + engines: {node: '>=10'} + dev: true + + /eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + /eslint@8.50.0: + resolution: {integrity: sha512-FOnOGSuFuFLv/Sa+FDVRZl4GGVAAFFi8LecRsI5a1tMO5HIE8nCm4ivAlzt4dT3ol/PaaGC0rJEEXQmHJBGoOg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + hasBin: true + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.50.0) + '@eslint-community/regexpp': 4.8.1 + '@eslint/eslintrc': 2.1.2 + '@eslint/js': 8.50.0 + '@humanwhocodes/config-array': 0.11.11 + '@humanwhocodes/module-importer': 1.0.1 + '@nodelib/fs.walk': 1.2.8 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.3 + debug: 4.3.4 + doctrine: 3.0.0 + escape-string-regexp: 4.0.0 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + esquery: 1.5.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + find-up: 5.0.0 + glob-parent: 6.0.2 + globals: 13.22.0 + graphemer: 1.4.0 + ignore: 5.2.4 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + is-path-inside: 3.0.3 + js-yaml: 4.1.0 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.4.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.3 + strip-ansi: 6.0.1 + text-table: 0.2.0 + transitivePeerDependencies: + - supports-color + dev: true + + /espree@9.6.1: + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + acorn: 8.10.0 + acorn-jsx: 5.3.2(acorn@8.10.0) + eslint-visitor-keys: 3.4.3 + dev: true + + /esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + dev: true + + /esquery@1.5.0: + resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} + engines: {node: '>=0.10'} + dependencies: + estraverse: 5.3.0 + dev: true + + /esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + dependencies: + estraverse: 5.3.0 + + /estraverse@4.3.0: + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} + engines: {node: '>=4.0'} + + /estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + + /estree-walker@1.0.1: + resolution: {integrity: sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==} + dev: true + + /esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + dev: true + + /ethers@4.0.49: + resolution: {integrity: sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg==} + dependencies: + aes-js: 3.0.0 + bn.js: 4.12.0 + elliptic: 6.5.4 + hash.js: 1.1.3 + js-sha3: 0.5.7 + scrypt-js: 2.0.4 + setimmediate: 1.0.4 + uuid: 2.0.1 + xmlhttprequest: 1.8.0 + dev: false + + /eventemitter3@5.0.1: + resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} + dev: true + + /events@3.3.0: + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} + engines: {node: '>=0.8.x'} + + /execa@5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + engines: {node: '>=10'} + dependencies: + cross-spawn: 7.0.3 + get-stream: 6.0.1 + human-signals: 2.1.0 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + dev: true + + /execa@7.2.0: + resolution: {integrity: sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==} + engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0} + dependencies: + cross-spawn: 7.0.3 + get-stream: 6.0.1 + human-signals: 4.3.1 + is-stream: 3.0.0 + merge-stream: 2.0.0 + npm-run-path: 5.1.0 + onetime: 6.0.0 + signal-exit: 3.0.7 + strip-final-newline: 3.0.0 + dev: true + + /exit@0.1.2: + resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==} + engines: {node: '>= 0.8.0'} + dev: true + + /expect@28.1.3: + resolution: {integrity: sha512-eEh0xn8HlsuOBxFgIss+2mX85VAS4Qy3OSkjV7rlBWljtA4oWH37glVGyOZSZvErDT/yBywZdPGwCXuTvSG85g==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + '@jest/expect-utils': 28.1.3 + jest-get-type: 28.0.2 + jest-matcher-utils: 28.1.3 + jest-message-util: 28.1.3 + jest-util: 28.1.3 + dev: true + + /extendable-error@0.1.7: + resolution: {integrity: sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==} + dev: true + + /external-editor@3.1.0: + resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} + engines: {node: '>=4'} + dependencies: + chardet: 0.7.0 + iconv-lite: 0.4.24 + tmp: 0.0.33 + dev: true + + /fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + /fast-diff@1.3.0: + resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} + dev: true + + /fast-glob@3.3.1: + resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} + engines: {node: '>=8.6.0'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.5 + dev: true + + /fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + + /fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + dev: true + + /fastest-levenshtein@1.0.16: + resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} + engines: {node: '>= 4.9.1'} + + /fastq@1.15.0: + resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} + dependencies: + reusify: 1.0.4 + dev: true + + /fb-watchman@2.0.2: + resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} + dependencies: + bser: 2.1.1 + dev: true + + /file-entry-cache@6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flat-cache: 3.1.0 + dev: true + + /fill-range@7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + engines: {node: '>=8'} + dependencies: + to-regex-range: 5.0.1 + dev: true + + /find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + + /find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + dev: true + + /find-yarn-workspace-root2@1.2.16: + resolution: {integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==} + dependencies: + micromatch: 4.0.5 + pkg-dir: 4.2.0 + dev: true + + /flat-cache@3.1.0: + resolution: {integrity: sha512-OHx4Qwrrt0E4jEIcI5/Xb+f+QmJYNj2rrK8wiIdQOIrB9WrrJL8cjZvXdXuBTkkEwEqLycb5BeZDV1o2i9bTew==} + engines: {node: '>=12.0.0'} + dependencies: + flatted: 3.2.9 + keyv: 4.5.3 + rimraf: 3.0.2 + dev: true + + /flatted@3.2.9: + resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==} + dev: true + + /follow-redirects@1.15.3: + resolution: {integrity: sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + dev: false + + /for-each@0.3.3: + resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} + dependencies: + is-callable: 1.2.7 + dev: true + + /form-data@4.0.0: + resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} + engines: {node: '>= 6'} + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + + /fs-extra@7.0.1: + resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} + engines: {node: '>=6 <7 || >=8'} + dependencies: + graceful-fs: 4.2.11 + jsonfile: 4.0.0 + universalify: 0.1.2 + dev: true + + /fs-extra@8.1.0: + resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} + engines: {node: '>=6 <7 || >=8'} + dependencies: + graceful-fs: 4.2.11 + jsonfile: 4.0.0 + universalify: 0.1.2 + dev: true + + /fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + + /fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /function-bind@1.1.1: + resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} + + /function.prototype.name@1.1.6: + resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + functions-have-names: 1.2.3 + dev: true + + /functional-red-black-tree@1.0.1: + resolution: {integrity: sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==} + dev: true + + /functions-have-names@1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + dev: true + + /gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + dev: true + + /get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + dev: true + + /get-func-name@2.0.0: + resolution: {integrity: sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==} + dev: true + + /get-intrinsic@1.2.1: + resolution: {integrity: sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==} + dependencies: + function-bind: 1.1.1 + has: 1.0.3 + has-proto: 1.0.1 + has-symbols: 1.0.3 + dev: true + + /get-package-type@0.1.0: + resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} + engines: {node: '>=8.0.0'} + dev: true + + /get-stream@6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} + dev: true + + /get-symbol-description@1.0.0: + resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + dev: true + + /glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + dependencies: + is-glob: 4.0.3 + dev: true + + /glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + dependencies: + is-glob: 4.0.3 + dev: true + + /glob-to-regexp@0.4.1: + resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} + + /glob@7.1.6: + resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + dev: true + + /glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + + /globals@11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} + dev: true + + /globals@13.22.0: + resolution: {integrity: sha512-H1Ddc/PbZHTDVJSnj8kWptIRSD6AM3pK+mKytuIVF4uoBV7rshFlhhvA58ceJ5wp3Er58w6zj7bykMpYXt3ETw==} + engines: {node: '>=8'} + dependencies: + type-fest: 0.20.2 + dev: true + + /globalthis@1.0.3: + resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} + engines: {node: '>= 0.4'} + dependencies: + define-properties: 1.2.1 + dev: true + + /globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.3.1 + ignore: 5.2.4 + merge2: 1.4.1 + slash: 3.0.0 + dev: true + + /globby@13.2.2: + resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + dir-glob: 3.0.1 + fast-glob: 3.3.1 + ignore: 5.2.4 + merge2: 1.4.1 + slash: 4.0.0 + dev: true + + /globrex@0.1.2: + resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} + dev: true + + /gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + dependencies: + get-intrinsic: 1.2.1 + dev: true + + /graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + /grapheme-splitter@1.0.4: + resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} + dev: true + + /graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + dev: true + + /hard-rejection@2.1.0: + resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} + engines: {node: '>=6'} + dev: true + + /has-bigints@1.0.2: + resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} + dev: true + + /has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} + dev: true + + /has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + + /has-property-descriptors@1.0.0: + resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} + dependencies: + get-intrinsic: 1.2.1 + dev: true + + /has-proto@1.0.1: + resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} + engines: {node: '>= 0.4'} + dev: true + + /has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} + dev: true + + /has-tostringtag@1.0.0: + resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.3 + dev: true + + /has@1.0.3: + resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} + engines: {node: '>= 0.4.0'} + dependencies: + function-bind: 1.1.1 + + /hash.js@1.1.3: + resolution: {integrity: sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==} + dependencies: + inherits: 2.0.4 + minimalistic-assert: 1.0.1 + dev: false + + /hash.js@1.1.7: + resolution: {integrity: sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==} + dependencies: + inherits: 2.0.4 + minimalistic-assert: 1.0.1 + dev: false + + /hmac-drbg@1.0.1: + resolution: {integrity: sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==} + dependencies: + hash.js: 1.1.7 + minimalistic-assert: 1.0.1 + minimalistic-crypto-utils: 1.0.1 + dev: false + + /hosted-git-info@2.8.9: + resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} + dev: true + + /html-encoding-sniffer@3.0.0: + resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==} + engines: {node: '>=12'} + dependencies: + whatwg-encoding: 2.0.0 + dev: true + + /html-escaper@2.0.2: + resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} + dev: true + + /http-proxy-agent@5.0.0: + resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} + engines: {node: '>= 6'} + dependencies: + '@tootallnate/once': 2.0.0 + agent-base: 6.0.2 + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: true + + /https-proxy-agent@5.0.1: + resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} + engines: {node: '>= 6'} + dependencies: + agent-base: 6.0.2 + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: true + + /human-id@1.0.2: + resolution: {integrity: sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw==} + dev: true + + /human-signals@2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} + dev: true + + /human-signals@4.3.1: + resolution: {integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==} + engines: {node: '>=14.18.0'} + dev: true + + /humanize-duration@3.30.0: + resolution: {integrity: sha512-NxpT0fhQTFuMTLnuu1Xp+ozNpYirQnbV3NlOjEKBYlE3uvMRu3LDuq8EPc3gVXxVYnchQfqVM4/+T9iwHPLLeA==} + dev: false + + /husky@8.0.3: + resolution: {integrity: sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==} + engines: {node: '>=14'} + hasBin: true + dev: true + + /iconv-lite@0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} + dependencies: + safer-buffer: 2.1.2 + dev: true + + /iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} + dependencies: + safer-buffer: 2.1.2 + dev: true + + /ignore@5.2.4: + resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} + engines: {node: '>= 4'} + dev: true + + /import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + dev: true + + /import-local@3.1.0: + resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==} + engines: {node: '>=8'} + hasBin: true + dependencies: + pkg-dir: 4.2.0 + resolve-cwd: 3.0.0 + + /imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + dev: true + + /indent-string@4.0.0: + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} + engines: {node: '>=8'} + dev: true + + /inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + + /inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + /internal-slot@1.0.5: + resolution: {integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.1 + has: 1.0.3 + side-channel: 1.0.4 + dev: true + + /interpret@2.2.0: + resolution: {integrity: sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==} + engines: {node: '>= 0.10'} + + /is-array-buffer@3.0.2: + resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + is-typed-array: 1.1.12 + dev: true + + /is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + dev: true + + /is-async-function@2.0.0: + resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + + /is-bigint@1.0.4: + resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} + dependencies: + has-bigints: 1.0.2 + dev: true + + /is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + dependencies: + binary-extensions: 2.2.0 + dev: true + + /is-boolean-object@1.1.2: + resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + has-tostringtag: 1.0.0 + dev: true + + /is-builtin-module@3.2.1: + resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==} + engines: {node: '>=6'} + dependencies: + builtin-modules: 3.3.0 + dev: true + + /is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} + dev: true + + /is-ci@3.0.1: + resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==} + hasBin: true + dependencies: + ci-info: 3.8.0 + dev: true + + /is-core-module@2.13.0: + resolution: {integrity: sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==} + dependencies: + has: 1.0.3 + + /is-date-object@1.0.5: + resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + + /is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + dev: true + + /is-finalizationregistry@1.0.2: + resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==} + dependencies: + call-bind: 1.0.2 + dev: true + + /is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + dev: true + + /is-fullwidth-code-point@4.0.0: + resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} + engines: {node: '>=12'} + dev: true + + /is-generator-fn@2.1.0: + resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==} + engines: {node: '>=6'} + dev: true + + /is-generator-function@1.0.10: + resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + + /is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + dependencies: + is-extglob: 2.1.1 + dev: true + + /is-map@2.0.2: + resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==} + dev: true + + /is-module@1.0.0: + resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==} + dev: true + + /is-negative-zero@2.0.2: + resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} + engines: {node: '>= 0.4'} + dev: true + + /is-number-object@1.0.7: + resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + + /is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + dev: true + + /is-path-inside@3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} + dev: true + + /is-plain-obj@1.1.0: + resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} + engines: {node: '>=0.10.0'} + dev: true + + /is-plain-object@2.0.4: + resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} + engines: {node: '>=0.10.0'} + dependencies: + isobject: 3.0.1 + + /is-potential-custom-element-name@1.0.1: + resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} + dev: true + + /is-regex@1.1.4: + resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + has-tostringtag: 1.0.0 + dev: true + + /is-set@2.0.2: + resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==} + dev: true + + /is-shared-array-buffer@1.0.2: + resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} + dependencies: + call-bind: 1.0.2 + dev: true + + /is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + dev: true + + /is-stream@3.0.0: + resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: true + + /is-string@1.0.7: + resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + + /is-subdir@1.2.0: + resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==} + engines: {node: '>=4'} + dependencies: + better-path-resolve: 1.0.0 + dev: true + + /is-symbol@1.0.4: + resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.3 + dev: true + + /is-typed-array@1.1.12: + resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==} + engines: {node: '>= 0.4'} + dependencies: + which-typed-array: 1.1.11 + dev: true + + /is-weakmap@2.0.1: + resolution: {integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==} + dev: true + + /is-weakref@1.0.2: + resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} + dependencies: + call-bind: 1.0.2 + dev: true + + /is-weakset@2.0.2: + resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + dev: true + + /is-windows@1.0.2: + resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} + engines: {node: '>=0.10.0'} + dev: true + + /isarray@2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + dev: true + + /isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + /isobject@3.0.1: + resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} + engines: {node: '>=0.10.0'} + + /isomorphic-fetch@3.0.0: + resolution: {integrity: sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA==} + dependencies: + node-fetch: 2.7.0 + whatwg-fetch: 3.6.19 + transitivePeerDependencies: + - encoding + dev: false + + /isomorphic-ws@5.0.0(ws@7.5.9): + resolution: {integrity: sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw==} + peerDependencies: + ws: '*' + dependencies: + ws: 7.5.9 + dev: false + + /istanbul-lib-coverage@3.2.0: + resolution: {integrity: sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==} + engines: {node: '>=8'} + dev: true + + /istanbul-lib-instrument@5.2.1: + resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} + engines: {node: '>=8'} + dependencies: + '@babel/core': 7.22.20 + '@babel/parser': 7.22.16 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-coverage: 3.2.0 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + dev: true + + /istanbul-lib-report@3.0.1: + resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} + engines: {node: '>=10'} + dependencies: + istanbul-lib-coverage: 3.2.0 + make-dir: 4.0.0 + supports-color: 7.2.0 + dev: true + + /istanbul-lib-source-maps@4.0.1: + resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} + engines: {node: '>=10'} + dependencies: + debug: 4.3.4 + istanbul-lib-coverage: 3.2.0 + source-map: 0.6.1 + transitivePeerDependencies: + - supports-color + dev: true + + /istanbul-reports@3.1.6: + resolution: {integrity: sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==} + engines: {node: '>=8'} + dependencies: + html-escaper: 2.0.2 + istanbul-lib-report: 3.0.1 + dev: true + + /iterator.prototype@1.1.2: + resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==} + dependencies: + define-properties: 1.2.1 + get-intrinsic: 1.2.1 + has-symbols: 1.0.3 + reflect.getprototypeof: 1.0.4 + set-function-name: 2.0.1 + dev: true + + /jest-changed-files@28.1.3: + resolution: {integrity: sha512-esaOfUWJXk2nfZt9SPyC8gA1kNfdKLkQWyzsMlqq8msYSlNKfmZxfRgZn4Cd4MGVUF+7v6dBs0d5TOAKa7iIiA==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + execa: 5.1.1 + p-limit: 3.1.0 + dev: true + + /jest-circus@28.1.3: + resolution: {integrity: sha512-cZ+eS5zc79MBwt+IhQhiEp0OeBddpc1n8MBo1nMB8A7oPMKEO+Sre+wHaLJexQUj9Ya/8NOBY0RESUgYjB6fow==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + '@jest/environment': 28.1.3 + '@jest/expect': 28.1.3 + '@jest/test-result': 28.1.3 + '@jest/types': 28.1.3 + '@types/node': 20.6.3 + chalk: 4.1.2 + co: 4.6.0 + dedent: 0.7.0 + is-generator-fn: 2.1.0 + jest-each: 28.1.3 + jest-matcher-utils: 28.1.3 + jest-message-util: 28.1.3 + jest-runtime: 28.1.3 + jest-snapshot: 28.1.3 + jest-util: 28.1.3 + p-limit: 3.1.0 + pretty-format: 28.1.3 + slash: 3.0.0 + stack-utils: 2.0.6 + transitivePeerDependencies: + - supports-color + dev: true + + /jest-cli@28.1.3: + resolution: {integrity: sha512-roY3kvrv57Azn1yPgdTebPAXvdR2xfezaKKYzVxZ6It/5NCxzJym6tUI5P1zkdWhfUYkxEI9uZWcQdaFLo8mJQ==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + hasBin: true + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + dependencies: + '@jest/core': 28.1.3 + '@jest/test-result': 28.1.3 + '@jest/types': 28.1.3 + chalk: 4.1.2 + exit: 0.1.2 + graceful-fs: 4.2.11 + import-local: 3.1.0 + jest-config: 28.1.3(@types/node@20.6.3) + jest-util: 28.1.3 + jest-validate: 28.1.3 + prompts: 2.4.2 + yargs: 17.7.2 + transitivePeerDependencies: + - '@types/node' + - supports-color + - ts-node + dev: true + + /jest-config@28.1.3(@types/node@20.6.3): + resolution: {integrity: sha512-MG3INjByJ0J4AsNBm7T3hsuxKQqFIiRo/AUqb1q9LRKI5UU6Aar9JHbr9Ivn1TVwfUD9KirRoM/T6u8XlcQPHQ==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + peerDependencies: + '@types/node': '*' + ts-node: '>=9.0.0' + peerDependenciesMeta: + '@types/node': + optional: true + ts-node: + optional: true + dependencies: + '@babel/core': 7.22.20 + '@jest/test-sequencer': 28.1.3 + '@jest/types': 28.1.3 + '@types/node': 20.6.3 + babel-jest: 28.1.3(@babel/core@7.22.20) + chalk: 4.1.2 + ci-info: 3.8.0 + deepmerge: 4.3.1 + glob: 7.2.3 + graceful-fs: 4.2.11 + jest-circus: 28.1.3 + jest-environment-node: 28.1.3 + jest-get-type: 28.0.2 + jest-regex-util: 28.0.2 + jest-resolve: 28.1.3 + jest-runner: 28.1.3 + jest-util: 28.1.3 + jest-validate: 28.1.3 + micromatch: 4.0.5 + parse-json: 5.2.0 + pretty-format: 28.1.3 + slash: 3.0.0 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + dev: true + + /jest-diff@28.1.3: + resolution: {integrity: sha512-8RqP1B/OXzjjTWkqMX67iqgwBVJRgCyKD3L9nq+6ZqJMdvjE8RgHktqZ6jNrkdMT+dJuYNI3rhQpxaz7drJHfw==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + chalk: 4.1.2 + diff-sequences: 28.1.1 + jest-get-type: 28.0.2 + pretty-format: 28.1.3 + dev: true + + /jest-docblock@28.1.1: + resolution: {integrity: sha512-3wayBVNiOYx0cwAbl9rwm5kKFP8yHH3d/fkEaL02NPTkDojPtheGB7HZSFY4wzX+DxyrvhXz0KSCVksmCknCuA==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + detect-newline: 3.1.0 + dev: true + + /jest-each@28.1.3: + resolution: {integrity: sha512-arT1z4sg2yABU5uogObVPvSlSMQlDA48owx07BDPAiasW0yYpYHYOo4HHLz9q0BVzDVU4hILFjzJw0So9aCL/g==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + '@jest/types': 28.1.3 + chalk: 4.1.2 + jest-get-type: 28.0.2 + jest-util: 28.1.3 + pretty-format: 28.1.3 + dev: true + + /jest-environment-jsdom@28.1.3: + resolution: {integrity: sha512-HnlGUmZRdxfCByd3GM2F100DgQOajUBzEitjGqIREcb45kGjZvRrKUdlaF6escXBdcXNl0OBh+1ZrfeZT3GnAg==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + '@jest/environment': 28.1.3 + '@jest/fake-timers': 28.1.3 + '@jest/types': 28.1.3 + '@types/jsdom': 16.2.15 + '@types/node': 20.6.3 + jest-mock: 28.1.3 + jest-util: 28.1.3 + jsdom: 19.0.0 + transitivePeerDependencies: + - bufferutil + - canvas + - supports-color + - utf-8-validate + dev: true + + /jest-environment-node@28.1.3: + resolution: {integrity: sha512-ugP6XOhEpjAEhGYvp5Xj989ns5cB1K6ZdjBYuS30umT4CQEETaxSiPcZ/E1kFktX4GkrcM4qu07IIlDYX1gp+A==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + '@jest/environment': 28.1.3 + '@jest/fake-timers': 28.1.3 + '@jest/types': 28.1.3 + '@types/node': 20.6.3 + jest-mock: 28.1.3 + jest-util: 28.1.3 + dev: true + + /jest-get-type@28.0.2: + resolution: {integrity: sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dev: true + + /jest-haste-map@28.1.3: + resolution: {integrity: sha512-3S+RQWDXccXDKSWnkHa/dPwt+2qwA8CJzR61w3FoYCvoo3Pn8tvGcysmMF0Bj0EX5RYvAI2EIvC57OmotfdtKA==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + '@jest/types': 28.1.3 + '@types/graceful-fs': 4.1.7 + '@types/node': 20.6.3 + anymatch: 3.1.3 + fb-watchman: 2.0.2 + graceful-fs: 4.2.11 + jest-regex-util: 28.0.2 + jest-util: 28.1.3 + jest-worker: 28.1.3 + micromatch: 4.0.5 + walker: 1.0.8 + optionalDependencies: + fsevents: 2.3.3 + dev: true + + /jest-leak-detector@28.1.3: + resolution: {integrity: sha512-WFVJhnQsiKtDEo5lG2mM0v40QWnBM+zMdHHyJs8AWZ7J0QZJS59MsyKeJHWhpBZBH32S48FOVvGyOFT1h0DlqA==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + jest-get-type: 28.0.2 + pretty-format: 28.1.3 + dev: true + + /jest-matcher-utils@28.1.3: + resolution: {integrity: sha512-kQeJ7qHemKfbzKoGjHHrRKH6atgxMk8Enkk2iPQ3XwO6oE/KYD8lMYOziCkeSB9G4adPM4nR1DE8Tf5JeWH6Bw==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + chalk: 4.1.2 + jest-diff: 28.1.3 + jest-get-type: 28.0.2 + pretty-format: 28.1.3 + dev: true + + /jest-message-util@28.1.3: + resolution: {integrity: sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + '@babel/code-frame': 7.22.13 + '@jest/types': 28.1.3 + '@types/stack-utils': 2.0.1 + chalk: 4.1.2 + graceful-fs: 4.2.11 + micromatch: 4.0.5 + pretty-format: 28.1.3 + slash: 3.0.0 + stack-utils: 2.0.6 + dev: true + + /jest-mock@28.1.3: + resolution: {integrity: sha512-o3J2jr6dMMWYVH4Lh/NKmDXdosrsJgi4AviS8oXLujcjpCMBb1FMsblDnOXKZKfSiHLxYub1eS0IHuRXsio9eA==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + '@jest/types': 28.1.3 + '@types/node': 20.6.3 + dev: true + + /jest-pnp-resolver@1.2.3(jest-resolve@28.1.3): + resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==} + engines: {node: '>=6'} + peerDependencies: + jest-resolve: '*' + peerDependenciesMeta: + jest-resolve: + optional: true + dependencies: + jest-resolve: 28.1.3 + dev: true + + /jest-regex-util@28.0.2: + resolution: {integrity: sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dev: true + + /jest-resolve-dependencies@28.1.3: + resolution: {integrity: sha512-qa0QO2Q0XzQoNPouMbCc7Bvtsem8eQgVPNkwn9LnS+R2n8DaVDPL/U1gngC0LTl1RYXJU0uJa2BMC2DbTfFrHA==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + jest-regex-util: 28.0.2 + jest-snapshot: 28.1.3 + transitivePeerDependencies: + - supports-color + dev: true + + /jest-resolve@28.1.3: + resolution: {integrity: sha512-Z1W3tTjE6QaNI90qo/BJpfnvpxtaFTFw5CDgwpyE/Kz8U/06N1Hjf4ia9quUhCh39qIGWF1ZuxFiBiJQwSEYKQ==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + chalk: 4.1.2 + graceful-fs: 4.2.11 + jest-haste-map: 28.1.3 + jest-pnp-resolver: 1.2.3(jest-resolve@28.1.3) + jest-util: 28.1.3 + jest-validate: 28.1.3 + resolve: 1.22.6 + resolve.exports: 1.1.1 + slash: 3.0.0 + dev: true + + /jest-runner@28.1.3: + resolution: {integrity: sha512-GkMw4D/0USd62OVO0oEgjn23TM+YJa2U2Wu5zz9xsQB1MxWKDOlrnykPxnMsN0tnJllfLPinHTka61u0QhaxBA==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + '@jest/console': 28.1.3 + '@jest/environment': 28.1.3 + '@jest/test-result': 28.1.3 + '@jest/transform': 28.1.3 + '@jest/types': 28.1.3 + '@types/node': 20.6.3 + chalk: 4.1.2 + emittery: 0.10.2 + graceful-fs: 4.2.11 + jest-docblock: 28.1.1 + jest-environment-node: 28.1.3 + jest-haste-map: 28.1.3 + jest-leak-detector: 28.1.3 + jest-message-util: 28.1.3 + jest-resolve: 28.1.3 + jest-runtime: 28.1.3 + jest-util: 28.1.3 + jest-watcher: 28.1.3 + jest-worker: 28.1.3 + p-limit: 3.1.0 + source-map-support: 0.5.13 + transitivePeerDependencies: + - supports-color + dev: true + + /jest-runtime@28.1.3: + resolution: {integrity: sha512-NU+881ScBQQLc1JHG5eJGU7Ui3kLKrmwCPPtYsJtBykixrM2OhVQlpMmFWJjMyDfdkGgBMNjXCGB/ebzsgNGQw==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + '@jest/environment': 28.1.3 + '@jest/fake-timers': 28.1.3 + '@jest/globals': 28.1.3 + '@jest/source-map': 28.1.2 + '@jest/test-result': 28.1.3 + '@jest/transform': 28.1.3 + '@jest/types': 28.1.3 + chalk: 4.1.2 + cjs-module-lexer: 1.2.3 + collect-v8-coverage: 1.0.2 + execa: 5.1.1 + glob: 7.2.3 + graceful-fs: 4.2.11 + jest-haste-map: 28.1.3 + jest-message-util: 28.1.3 + jest-mock: 28.1.3 + jest-regex-util: 28.0.2 + jest-resolve: 28.1.3 + jest-snapshot: 28.1.3 + jest-util: 28.1.3 + slash: 3.0.0 + strip-bom: 4.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /jest-snapshot@28.1.3: + resolution: {integrity: sha512-4lzMgtiNlc3DU/8lZfmqxN3AYD6GGLbl+72rdBpXvcV+whX7mDrREzkPdp2RnmfIiWBg1YbuFSkXduF2JcafJg==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + '@babel/core': 7.22.20 + '@babel/generator': 7.22.15 + '@babel/plugin-syntax-typescript': 7.22.5(@babel/core@7.22.20) + '@babel/traverse': 7.22.20 + '@babel/types': 7.22.19 + '@jest/expect-utils': 28.1.3 + '@jest/transform': 28.1.3 + '@jest/types': 28.1.3 + '@types/babel__traverse': 7.20.2 + '@types/prettier': 2.7.3 + babel-preset-current-node-syntax: 1.0.1(@babel/core@7.22.20) + chalk: 4.1.2 + expect: 28.1.3 + graceful-fs: 4.2.11 + jest-diff: 28.1.3 + jest-get-type: 28.0.2 + jest-haste-map: 28.1.3 + jest-matcher-utils: 28.1.3 + jest-message-util: 28.1.3 + jest-util: 28.1.3 + natural-compare: 1.4.0 + pretty-format: 28.1.3 + semver: 7.5.4 + transitivePeerDependencies: + - supports-color + dev: true + + /jest-util@28.1.3: + resolution: {integrity: sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + '@jest/types': 28.1.3 + '@types/node': 20.6.3 + chalk: 4.1.2 + ci-info: 3.8.0 + graceful-fs: 4.2.11 + picomatch: 2.3.1 + dev: true + + /jest-validate@28.1.3: + resolution: {integrity: sha512-SZbOGBWEsaTxBGCOpsRWlXlvNkvTkY0XxRfh7zYmvd8uL5Qzyg0CHAXiXKROflh801quA6+/DsT4ODDthOC/OA==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + '@jest/types': 28.1.3 + camelcase: 6.3.0 + chalk: 4.1.2 + jest-get-type: 28.0.2 + leven: 3.1.0 + pretty-format: 28.1.3 + dev: true + + /jest-watcher@28.1.3: + resolution: {integrity: sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + '@jest/test-result': 28.1.3 + '@jest/types': 28.1.3 + '@types/node': 20.6.3 + ansi-escapes: 4.3.2 + chalk: 4.1.2 + emittery: 0.10.2 + jest-util: 28.1.3 + string-length: 4.0.2 + dev: true + + /jest-worker@27.5.1: + resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} + engines: {node: '>= 10.13.0'} + dependencies: + '@types/node': 20.6.3 + merge-stream: 2.0.0 + supports-color: 8.1.1 + + /jest-worker@28.1.3: + resolution: {integrity: sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + '@types/node': 20.6.3 + merge-stream: 2.0.0 + supports-color: 8.1.1 + dev: true + + /jest@28.1.3: + resolution: {integrity: sha512-N4GT5on8UkZgH0O5LUavMRV1EDEhNTL0KEfRmDIeZHSV7p2XgLoY9t9VDUgL6o+yfdgYHVxuz81G8oB9VG5uyA==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + hasBin: true + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + dependencies: + '@jest/core': 28.1.3 + '@jest/types': 28.1.3 + import-local: 3.1.0 + jest-cli: 28.1.3 + transitivePeerDependencies: + - '@types/node' + - supports-color + - ts-node + dev: true + + /joycon@3.1.1: + resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} + engines: {node: '>=10'} + dev: true + + /js-sha3@0.5.7: + resolution: {integrity: sha512-GII20kjaPX0zJ8wzkTbNDYMY7msuZcTWk8S5UOh6806Jq/wz1J8/bnr8uGU0DAUmYDjj2Mr4X1cW8v/GLYnR+g==} + dev: false + + /js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + dev: true + + /js-yaml@3.14.1: + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + hasBin: true + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + dev: true + + /js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + dependencies: + argparse: 2.0.1 + dev: true + + /jsdom@19.0.0: + resolution: {integrity: sha512-RYAyjCbxy/vri/CfnjUWJQQtZ3LKlLnDqj+9XLNnJPgEGeirZs3hllKR20re8LUZ6o1b1X4Jat+Qd26zmP41+A==} + engines: {node: '>=12'} + peerDependencies: + canvas: ^2.5.0 + peerDependenciesMeta: + canvas: + optional: true + dependencies: + abab: 2.0.6 + acorn: 8.10.0 + acorn-globals: 6.0.0 + cssom: 0.5.0 + cssstyle: 2.3.0 + data-urls: 3.0.2 + decimal.js: 10.4.3 + domexception: 4.0.0 + escodegen: 2.1.0 + form-data: 4.0.0 + html-encoding-sniffer: 3.0.0 + http-proxy-agent: 5.0.0 + https-proxy-agent: 5.0.1 + is-potential-custom-element-name: 1.0.1 + nwsapi: 2.2.7 + parse5: 6.0.1 + saxes: 5.0.1 + symbol-tree: 3.2.4 + tough-cookie: 4.1.3 + w3c-hr-time: 1.0.2 + w3c-xmlserializer: 3.0.0 + webidl-conversions: 7.0.0 + whatwg-encoding: 2.0.0 + whatwg-mimetype: 3.0.0 + whatwg-url: 10.0.0 + ws: 8.14.2 + xml-name-validator: 4.0.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + dev: true + + /jsdom@20.0.3: + resolution: {integrity: sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==} + engines: {node: '>=14'} + peerDependencies: + canvas: ^2.5.0 + peerDependenciesMeta: + canvas: + optional: true + dependencies: + abab: 2.0.6 + acorn: 8.10.0 + acorn-globals: 7.0.1 + cssom: 0.5.0 + cssstyle: 2.3.0 + data-urls: 3.0.2 + decimal.js: 10.4.3 + domexception: 4.0.0 + escodegen: 2.1.0 + form-data: 4.0.0 + html-encoding-sniffer: 3.0.0 + http-proxy-agent: 5.0.0 + https-proxy-agent: 5.0.1 + is-potential-custom-element-name: 1.0.1 + nwsapi: 2.2.7 + parse5: 7.1.2 + saxes: 6.0.0 + symbol-tree: 3.2.4 + tough-cookie: 4.1.3 + w3c-xmlserializer: 4.0.0 + webidl-conversions: 7.0.0 + whatwg-encoding: 2.0.0 + whatwg-mimetype: 3.0.0 + whatwg-url: 11.0.0 + ws: 8.14.2 + xml-name-validator: 4.0.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + dev: true + + /jsesc@2.5.2: + resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} + engines: {node: '>=4'} + hasBin: true + dev: true + + /json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + dev: true + + /json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + + /json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + + /json-schema-traverse@1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + dev: true + + /json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + dev: true + + /json5@1.0.2: + resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} + hasBin: true + dependencies: + minimist: 1.2.8 + dev: true + + /json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + dev: true + + /jsonc-parser@3.2.0: + resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} + dev: true + + /jsonfile@4.0.0: + resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} + optionalDependencies: + graceful-fs: 4.2.11 + dev: true + + /jsx-ast-utils@3.3.5: + resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} + engines: {node: '>=4.0'} + dependencies: + array-includes: 3.1.7 + array.prototype.flat: 1.3.2 + object.assign: 4.1.4 + object.values: 1.1.7 + dev: true + + /key-encoder@2.0.3: + resolution: {integrity: sha512-fgBtpAGIr/Fy5/+ZLQZIPPhsZEcbSlYu/Wu96tNDFNSjSACw5lEIOFeaVdQ/iwrb8oxjlWi6wmWdH76hV6GZjg==} + dependencies: + '@types/elliptic': 6.4.15 + asn1.js: 5.4.1 + bn.js: 4.12.0 + elliptic: 6.5.4 + dev: false + + /keyv@4.5.3: + resolution: {integrity: sha512-QCiSav9WaX1PgETJ+SpNnx2PRRapJ/oRSXM4VO5OGYGSjrxbKPVFVhB3l2OCbLCk329N8qyAtsJjSjvVBWzEug==} + dependencies: + json-buffer: 3.0.1 + dev: true + + /kind-of@6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} + + /kleur@3.0.3: + resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} + engines: {node: '>=6'} + dev: true + + /kleur@4.1.5: + resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} + engines: {node: '>=6'} + dev: true + + /leven@3.1.0: + resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} + engines: {node: '>=6'} + dev: true + + /levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + dev: true + + /lilconfig@2.1.0: + resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} + engines: {node: '>=10'} + dev: true + + /lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + dev: true + + /lint-staged@13.3.0: + resolution: {integrity: sha512-mPRtrYnipYYv1FEE134ufbWpeggNTo+O/UPzngoaKzbzHAthvR55am+8GfHTnqNRQVRRrYQLGW9ZyUoD7DsBHQ==} + engines: {node: ^16.14.0 || >=18.0.0} + hasBin: true + dependencies: + chalk: 5.3.0 + commander: 11.0.0 + debug: 4.3.4 + execa: 7.2.0 + lilconfig: 2.1.0 + listr2: 6.6.1 + micromatch: 4.0.5 + pidtree: 0.6.0 + string-argv: 0.3.2 + yaml: 2.3.1 + transitivePeerDependencies: + - enquirer + - supports-color + dev: true + + /listr2@6.6.1: + resolution: {integrity: sha512-+rAXGHh0fkEWdXBmX+L6mmfmXmXvDGEKzkjxO+8mP3+nI/r/CWznVBvsibXdxda9Zz0OW2e2ikphN3OwCT/jSg==} + engines: {node: '>=16.0.0'} + peerDependencies: + enquirer: '>= 2.3.0 < 3' + peerDependenciesMeta: + enquirer: + optional: true + dependencies: + cli-truncate: 3.1.0 + colorette: 2.0.20 + eventemitter3: 5.0.1 + log-update: 5.0.1 + rfdc: 1.3.0 + wrap-ansi: 8.1.0 + dev: true + + /load-tsconfig@0.2.5: + resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: true + + /load-yaml-file@0.2.0: + resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==} + engines: {node: '>=6'} + dependencies: + graceful-fs: 4.2.11 + js-yaml: 3.14.1 + pify: 4.0.1 + strip-bom: 3.0.0 + dev: true + + /loader-runner@4.3.0: + resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} + engines: {node: '>=6.11.5'} + + /local-pkg@0.4.3: + resolution: {integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==} + engines: {node: '>=14'} + dev: true + + /locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + dependencies: + p-locate: 4.1.0 + + /locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + dependencies: + p-locate: 5.0.0 + dev: true + + /lodash.memoize@4.1.2: + resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} + dev: true + + /lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + dev: true + + /lodash.sortby@4.7.0: + resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} + dev: true + + /lodash.startcase@4.4.0: + resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} + dev: true + + /lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + dev: false + + /log-update@5.0.1: + resolution: {integrity: sha512-5UtUDQ/6edw4ofyljDNcOVJQ4c7OjDro4h3y8e1GQL5iYElYclVHJ3zeWchylvMaKnDbDilC8irOVyexnA/Slw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + ansi-escapes: 5.0.0 + cli-cursor: 4.0.0 + slice-ansi: 5.0.0 + strip-ansi: 7.1.0 + wrap-ansi: 8.1.0 + dev: true + + /loose-envify@1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true + dependencies: + js-tokens: 4.0.0 + dev: true + + /loupe@2.3.6: + resolution: {integrity: sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==} + dependencies: + get-func-name: 2.0.0 + dev: true + + /lru-cache@4.1.5: + resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==} + dependencies: + pseudomap: 1.0.2 + yallist: 2.1.2 + dev: true + + /lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + dependencies: + yallist: 3.1.1 + dev: true + + /lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} + dependencies: + yallist: 4.0.0 + dev: true + + /magic-string@0.30.3: + resolution: {integrity: sha512-B7xGbll2fG/VjP+SWg4sX3JynwIU0mjoTc6MPpKNuIvftk6u6vqhDnk1R80b8C2GBR6ywqy+1DcKBrevBg+bmw==} + engines: {node: '>=12'} + dependencies: + '@jridgewell/sourcemap-codec': 1.4.15 + dev: true + + /make-dir@4.0.0: + resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} + engines: {node: '>=10'} + dependencies: + semver: 7.5.4 + dev: true + + /make-error@1.3.6: + resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} + dev: true + + /makeerror@1.0.12: + resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} + dependencies: + tmpl: 1.0.5 + dev: true + + /map-obj@1.0.1: + resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} + engines: {node: '>=0.10.0'} + dev: true + + /map-obj@4.3.0: + resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} + engines: {node: '>=8'} + dev: true + + /meow@6.1.1: + resolution: {integrity: sha512-3YffViIt2QWgTy6Pale5QpopX/IvU3LPL03jOTqp6pGj3VjesdO/U8CuHMKpnQr4shCNCM5fd5XFFvIIl6JBHg==} + engines: {node: '>=8'} + dependencies: + '@types/minimist': 1.2.2 + camelcase-keys: 6.2.2 + decamelize-keys: 1.1.1 + hard-rejection: 2.1.0 + minimist-options: 4.1.0 + normalize-package-data: 2.5.0 + read-pkg-up: 7.0.1 + redent: 3.0.0 + trim-newlines: 3.0.1 + type-fest: 0.13.1 + yargs-parser: 18.1.3 + dev: true + + /merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + + /merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + dev: true + + /micromatch@4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + engines: {node: '>=8.6'} + dependencies: + braces: 3.0.2 + picomatch: 2.3.1 + dev: true + + /mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + + /mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + dependencies: + mime-db: 1.52.0 + + /mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + dev: true + + /mimic-fn@4.0.0: + resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} + engines: {node: '>=12'} + dev: true + + /min-indent@1.0.1: + resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} + engines: {node: '>=4'} + dev: true + + /minimalistic-assert@1.0.1: + resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} + dev: false + + /minimalistic-crypto-utils@1.0.1: + resolution: {integrity: sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==} + dev: false + + /minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + dependencies: + brace-expansion: 1.1.11 + + /minimist-options@4.1.0: + resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} + engines: {node: '>= 6'} + dependencies: + arrify: 1.0.1 + is-plain-obj: 1.1.0 + kind-of: 6.0.3 + dev: true + + /minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + dev: true + + /mixme@0.5.9: + resolution: {integrity: sha512-VC5fg6ySUscaWUpI4gxCBTQMH2RdUpNrk+MsbpCYtIvf9SBJdiUey4qE7BXviJsJR4nDQxCZ+3yaYNW3guz/Pw==} + engines: {node: '>= 8.0.0'} + dev: true + + /mlly@1.4.2: + resolution: {integrity: sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg==} + dependencies: + acorn: 8.10.0 + pathe: 1.1.1 + pkg-types: 1.0.3 + ufo: 1.3.0 + dev: true + + /mrmime@1.0.1: + resolution: {integrity: sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==} + engines: {node: '>=10'} + dev: true + + /ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + dev: true + + /ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + dev: true + + /mylas@2.1.13: + resolution: {integrity: sha512-+MrqnJRtxdF+xngFfUUkIMQrUUL0KsxbADUkn23Z/4ibGg192Q+z+CQyiYwvWTsYjJygmMR8+w3ZDa98Zh6ESg==} + engines: {node: '>=12.0.0'} + dev: true + + /mz@2.7.0: + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + dependencies: + any-promise: 1.3.0 + object-assign: 4.1.1 + thenify-all: 1.6.0 + dev: true + + /nanoid@3.3.6: + resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + dev: true + + /natural-compare-lite@1.4.0: + resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} + dev: true + + /natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + dev: true + + /neo-async@2.6.2: + resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + + /node-fetch@2.7.0: + resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + dependencies: + whatwg-url: 5.0.0 + + /node-int64@0.4.0: + resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} + dev: true + + /node-releases@2.0.13: + resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==} + + /normalize-package-data@2.5.0: + resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} + dependencies: + hosted-git-info: 2.8.9 + resolve: 1.22.6 + semver: 5.7.2 + validate-npm-package-license: 3.0.4 + dev: true + + /normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + dev: true + + /npm-run-path@4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} + dependencies: + path-key: 3.1.1 + dev: true + + /npm-run-path@5.1.0: + resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + path-key: 4.0.0 + dev: true + + /nwsapi@2.2.7: + resolution: {integrity: sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==} + dev: true + + /object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + dev: true + + /object-inspect@1.12.3: + resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==} + dev: true + + /object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + dev: true + + /object.assign@4.1.4: + resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + has-symbols: 1.0.3 + object-keys: 1.1.1 + dev: true + + /object.entries@1.1.7: + resolution: {integrity: sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + dev: true + + /object.fromentries@2.0.7: + resolution: {integrity: sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + dev: true + + /object.groupby@1.0.1: + resolution: {integrity: sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + get-intrinsic: 1.2.1 + dev: true + + /object.hasown@1.1.3: + resolution: {integrity: sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==} + dependencies: + define-properties: 1.2.1 + es-abstract: 1.22.2 + dev: true + + /object.values@1.1.7: + resolution: {integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + dev: true + + /once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + dependencies: + wrappy: 1.0.2 + + /onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} + dependencies: + mimic-fn: 2.1.0 + dev: true + + /onetime@6.0.0: + resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} + engines: {node: '>=12'} + dependencies: + mimic-fn: 4.0.0 + dev: true + + /optionator@0.9.3: + resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} + engines: {node: '>= 0.8.0'} + dependencies: + '@aashutoshrathi/word-wrap': 1.2.6 + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + dev: true + + /os-tmpdir@1.0.2: + resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} + engines: {node: '>=0.10.0'} + dev: true + + /outdent@0.5.0: + resolution: {integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==} + dev: true + + /p-filter@2.1.0: + resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==} + engines: {node: '>=8'} + dependencies: + p-map: 2.1.0 + dev: true + + /p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + dependencies: + p-try: 2.2.0 + + /p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + dependencies: + yocto-queue: 0.1.0 + dev: true + + /p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + dependencies: + p-limit: 2.3.0 + + /p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + dependencies: + p-limit: 3.1.0 + dev: true + + /p-map@2.1.0: + resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} + engines: {node: '>=6'} + dev: true + + /p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + + /parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + dependencies: + callsites: 3.1.0 + dev: true + + /parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} + dependencies: + '@babel/code-frame': 7.22.13 + error-ex: 1.3.2 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.2.4 + dev: true + + /parse5@6.0.1: + resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} + dev: true + + /parse5@7.1.2: + resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} + dependencies: + entities: 4.5.0 + dev: true + + /path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + + /path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + + /path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + /path-key@4.0.0: + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} + engines: {node: '>=12'} + dev: true + + /path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + + /path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + dev: true + + /pathe@0.2.0: + resolution: {integrity: sha512-sTitTPYnn23esFR3RlqYBWn4c45WGeLcsKzQiUpXJAyfcWkolvlYpV8FLo7JishK946oQwMFUCHXQ9AjGPKExw==} + dev: true + + /pathe@1.1.1: + resolution: {integrity: sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==} + dev: true + + /pathval@1.1.1: + resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} + dev: true + + /picocolors@1.0.0: + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + + /picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + dev: true + + /pidtree@0.6.0: + resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} + engines: {node: '>=0.10'} + hasBin: true + dev: true + + /pify@4.0.1: + resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} + engines: {node: '>=6'} + dev: true + + /pirates@4.0.6: + resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} + engines: {node: '>= 6'} + dev: true + + /pkg-dir@4.2.0: + resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} + engines: {node: '>=8'} + dependencies: + find-up: 4.1.0 + + /pkg-types@1.0.3: + resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==} + dependencies: + jsonc-parser: 3.2.0 + mlly: 1.4.2 + pathe: 1.1.1 + dev: true + + /plimit-lit@1.5.0: + resolution: {integrity: sha512-Eb/MqCb1Iv/ok4m1FqIXqvUKPISufcjZ605hl3KM/n8GaX8zfhtgdLwZU3vKjuHGh2O9Rjog/bHTq8ofIShdng==} + dependencies: + queue-lit: 1.5.0 + dev: true + + /postcss-load-config@3.1.4: + resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} + engines: {node: '>= 10'} + peerDependencies: + postcss: '>=8.0.9' + ts-node: '>=9.0.0' + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true + dependencies: + lilconfig: 2.1.0 + yaml: 1.10.2 + dev: true + + /postcss-load-config@4.0.1: + resolution: {integrity: sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==} + engines: {node: '>= 14'} + peerDependencies: + postcss: '>=8.0.9' + ts-node: '>=9.0.0' + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true + dependencies: + lilconfig: 2.1.0 + yaml: 2.3.2 + dev: true + + /postcss@8.4.30: + resolution: {integrity: sha512-7ZEao1g4kd68l97aWG/etQKPKq07us0ieSZ2TnFDk11i0ZfDW2AwKHYU8qv4MZKqN2fdBfg+7q0ES06UA73C1g==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.6 + picocolors: 1.0.0 + source-map-js: 1.0.2 + dev: true + + /preferred-pm@3.1.2: + resolution: {integrity: sha512-nk7dKrcW8hfCZ4H6klWcdRknBOXWzNQByJ0oJyX97BOupsYD+FzLS4hflgEu/uPUEHZCuRfMxzCBsuWd7OzT8Q==} + engines: {node: '>=10'} + dependencies: + find-up: 5.0.0 + find-yarn-workspace-root2: 1.2.16 + path-exists: 4.0.0 + which-pm: 2.0.0 + dev: true + + /prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + dev: true + + /prettier-linter-helpers@1.0.0: + resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} + engines: {node: '>=6.0.0'} + dependencies: + fast-diff: 1.3.0 + dev: true + + /prettier@2.8.8: + resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} + engines: {node: '>=10.13.0'} + hasBin: true + dev: true + + /pretty-format@28.1.3: + resolution: {integrity: sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + '@jest/schemas': 28.1.3 + ansi-regex: 5.0.1 + ansi-styles: 5.2.0 + react-is: 18.2.0 + dev: true + + /prompts@2.4.2: + resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} + engines: {node: '>= 6'} + dependencies: + kleur: 3.0.3 + sisteransi: 1.0.5 + dev: true + + /prop-types@15.8.1: + resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} + dependencies: + loose-envify: 1.4.0 + object-assign: 4.1.1 + react-is: 16.13.1 + dev: true + + /proxy-from-env@1.1.0: + resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + dev: false + + /pseudomap@1.0.2: + resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==} + dev: true + + /psl@1.9.0: + resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} + dev: true + + /punycode@2.3.0: + resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} + engines: {node: '>=6'} + + /querystringify@2.2.0: + resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} + dev: true + + /queue-lit@1.5.0: + resolution: {integrity: sha512-IslToJ4eiCEE9xwMzq3viOO5nH8sUWUCwoElrhNMozzr9IIt2qqvB4I+uHu/zJTQVqc9R5DFwok4ijNK1pU3fA==} + dev: true + + /queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + dev: true + + /quick-lru@4.0.1: + resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} + engines: {node: '>=8'} + dev: true + + /randombytes@2.1.0: + resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} + dependencies: + safe-buffer: 5.2.1 + + /react-is@16.13.1: + resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + dev: true + + /react-is@18.2.0: + resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} + dev: true + + /read-pkg-up@7.0.1: + resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} + engines: {node: '>=8'} + dependencies: + find-up: 4.1.0 + read-pkg: 5.2.0 + type-fest: 0.8.1 + dev: true + + /read-pkg@5.2.0: + resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} + engines: {node: '>=8'} + dependencies: + '@types/normalize-package-data': 2.4.1 + normalize-package-data: 2.5.0 + parse-json: 5.2.0 + type-fest: 0.6.0 + dev: true + + /read-yaml-file@1.1.0: + resolution: {integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==} + engines: {node: '>=6'} + dependencies: + graceful-fs: 4.2.11 + js-yaml: 3.14.1 + pify: 4.0.1 + strip-bom: 3.0.0 + dev: true + + /readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + dependencies: + picomatch: 2.3.1 + dev: true + + /rechoir@0.7.1: + resolution: {integrity: sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==} + engines: {node: '>= 0.10'} + dependencies: + resolve: 1.22.6 + + /redent@3.0.0: + resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} + engines: {node: '>=8'} + dependencies: + indent-string: 4.0.0 + strip-indent: 3.0.0 + dev: true + + /refa@0.9.1: + resolution: {integrity: sha512-egU8LgFq2VXlAfUi8Jcbr5X38wEOadMFf8tCbshgcpVCYlE7k84pJOSlnvXF+muDB4igkdVMq7Z/kiNPqDT9TA==} + dependencies: + regexpp: 3.2.0 + dev: true + + /reflect-metadata@0.1.13: + resolution: {integrity: sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==} + dev: false + + /reflect.getprototypeof@1.0.4: + resolution: {integrity: sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + get-intrinsic: 1.2.1 + globalthis: 1.0.3 + which-builtin-type: 1.1.3 + dev: true + + /regenerator-runtime@0.14.0: + resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==} + dev: true + + /regexp-ast-analysis@0.2.4: + resolution: {integrity: sha512-8L7kOZQaKPxKKAwGuUZxTQtlO3WZ+tiXy4s6G6PKL6trbOXcZoumwC3AOHHFtI/xoSbNxt7jgLvCnP1UADLWqg==} + dependencies: + refa: 0.9.1 + regexpp: 3.2.0 + dev: true + + /regexp.prototype.flags@1.5.1: + resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + set-function-name: 2.0.1 + dev: true + + /regexpp@3.2.0: + resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} + engines: {node: '>=8'} + dev: true + + /require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + dev: true + + /require-from-string@2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} + dev: true + + /require-main-filename@2.0.0: + resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} + dev: true + + /requires-port@1.0.0: + resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} + dev: true + + /resolve-cwd@3.0.0: + resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} + engines: {node: '>=8'} + dependencies: + resolve-from: 5.0.0 + + /resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + dev: true + + /resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + + /resolve.exports@1.1.1: + resolution: {integrity: sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ==} + engines: {node: '>=10'} + dev: true + + /resolve@1.22.6: + resolution: {integrity: sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw==} + hasBin: true + dependencies: + is-core-module: 2.13.0 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + + /resolve@2.0.0-next.4: + resolution: {integrity: sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==} + hasBin: true + dependencies: + is-core-module: 2.13.0 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + dev: true + + /restore-cursor@4.0.0: + resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + onetime: 5.1.2 + signal-exit: 3.0.7 + dev: true + + /reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + dev: true + + /rfdc@1.3.0: + resolution: {integrity: sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==} + dev: true + + /rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + hasBin: true + dependencies: + glob: 7.2.3 + dev: true + + /rollup@2.79.1: + resolution: {integrity: sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==} + engines: {node: '>=10.0.0'} + hasBin: true + optionalDependencies: + fsevents: 2.3.3 + dev: true + + /rollup@3.29.2: + resolution: {integrity: sha512-CJouHoZ27v6siztc21eEQGo0kIcE5D1gVPA571ez0mMYb25LGYGKnVNXpEj5MGlepmDWGXNjDB5q7uNiPHC11A==} + engines: {node: '>=14.18.0', npm: '>=8.0.0'} + hasBin: true + optionalDependencies: + fsevents: 2.3.3 + dev: true + + /run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + dependencies: + queue-microtask: 1.2.3 + dev: true + + /safe-array-concat@1.0.1: + resolution: {integrity: sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==} + engines: {node: '>=0.4'} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + has-symbols: 1.0.3 + isarray: 2.0.5 + dev: true + + /safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + + /safe-regex-test@1.0.0: + resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + is-regex: 1.1.4 + dev: true + + /safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + + /saxes@5.0.1: + resolution: {integrity: sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==} + engines: {node: '>=10'} + dependencies: + xmlchars: 2.2.0 + dev: true + + /saxes@6.0.0: + resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} + engines: {node: '>=v12.22.7'} + dependencies: + xmlchars: 2.2.0 + dev: true + + /schema-utils@3.3.0: + resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} + engines: {node: '>= 10.13.0'} + dependencies: + '@types/json-schema': 7.0.13 + ajv: 6.12.6 + ajv-keywords: 3.5.2(ajv@6.12.6) + + /schema-utils@4.2.0: + resolution: {integrity: sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==} + engines: {node: '>= 12.13.0'} + dependencies: + '@types/json-schema': 7.0.13 + ajv: 8.12.0 + ajv-formats: 2.1.1(ajv@8.12.0) + ajv-keywords: 5.1.0(ajv@8.12.0) + dev: true + + /scrypt-js@2.0.4: + resolution: {integrity: sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw==} + dev: false + + /scslre@0.1.6: + resolution: {integrity: sha512-JORxVRlQTfjvlOAaiQKebgFElyAm5/W8b50lgaZ0OkEnKnagJW2ufDh3xRfU75UD9z3FGIu1gL1IyR3Poa6Qmw==} + dependencies: + refa: 0.9.1 + regexp-ast-analysis: 0.2.4 + regexpp: 3.2.0 + dev: true + + /semver@5.7.2: + resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} + hasBin: true + dev: true + + /semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + dev: true + + /semver@7.5.4: + resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 + dev: true + + /serialize-javascript@6.0.1: + resolution: {integrity: sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==} + dependencies: + randombytes: 2.1.0 + + /set-blocking@2.0.0: + resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} + dev: true + + /set-function-name@2.0.1: + resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.0 + functions-have-names: 1.2.3 + has-property-descriptors: 1.0.0 + dev: true + + /setimmediate@1.0.4: + resolution: {integrity: sha512-/TjEmXQVEzdod/FFskf3o7oOAsGhHf2j1dZqRFbDzq4F3mvvxflIIi4Hd3bLQE9y/CpwqfSQam5JakI/mi3Pog==} + dev: false + + /shallow-clone@3.0.1: + resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==} + engines: {node: '>=8'} + dependencies: + kind-of: 6.0.3 + + /shebang-command@1.2.0: + resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} + engines: {node: '>=0.10.0'} + dependencies: + shebang-regex: 1.0.0 + dev: true + + /shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + dependencies: + shebang-regex: 3.0.0 + + /shebang-regex@1.0.0: + resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==} + engines: {node: '>=0.10.0'} + dev: true + + /shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + /side-channel@1.0.4: + resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + object-inspect: 1.12.3 + dev: true + + /signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + dev: true + + /sirv@2.0.3: + resolution: {integrity: sha512-O9jm9BsID1P+0HOi81VpXPoDxYP374pkOLzACAoyUQ/3OUVndNpsz6wMnY2z+yOxzbllCKZrM+9QrWsv4THnyA==} + engines: {node: '>= 10'} + dependencies: + '@polka/url': 1.0.0-next.23 + mrmime: 1.0.1 + totalist: 3.0.1 + dev: true + + /sisteransi@1.0.5: + resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + dev: true + + /slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + dev: true + + /slash@4.0.0: + resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} + engines: {node: '>=12'} + dev: true + + /slice-ansi@5.0.0: + resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} + engines: {node: '>=12'} + dependencies: + ansi-styles: 6.2.1 + is-fullwidth-code-point: 4.0.0 + dev: true + + /smartwrap@2.0.2: + resolution: {integrity: sha512-vCsKNQxb7PnCNd2wY1WClWifAc2lwqsG8OaswpJkVJsvMGcnEntdTCDajZCkk93Ay1U3t/9puJmb525Rg5MZBA==} + engines: {node: '>=6'} + hasBin: true + dependencies: + array.prototype.flat: 1.3.2 + breakword: 1.0.6 + grapheme-splitter: 1.0.4 + strip-ansi: 6.0.1 + wcwidth: 1.0.1 + yargs: 15.4.1 + dev: true + + /source-map-js@1.0.2: + resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} + engines: {node: '>=0.10.0'} + dev: true + + /source-map-support@0.5.13: + resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==} + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + dev: true + + /source-map-support@0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + + /source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + + /source-map@0.8.0-beta.0: + resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} + engines: {node: '>= 8'} + dependencies: + whatwg-url: 7.1.0 + dev: true + + /spawndamnit@2.0.0: + resolution: {integrity: sha512-j4JKEcncSjFlqIwU5L/rp2N5SIPsdxaRsIv678+TZxZ0SRDJTm8JrxJMjE/XuiEZNEir3S8l0Fa3Ke339WI4qA==} + dependencies: + cross-spawn: 5.1.0 + signal-exit: 3.0.7 + dev: true + + /spdx-correct@3.2.0: + resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} + dependencies: + spdx-expression-parse: 3.0.1 + spdx-license-ids: 3.0.15 + dev: true + + /spdx-exceptions@2.3.0: + resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==} + dev: true + + /spdx-expression-parse@3.0.1: + resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} + dependencies: + spdx-exceptions: 2.3.0 + spdx-license-ids: 3.0.15 + dev: true + + /spdx-license-ids@3.0.15: + resolution: {integrity: sha512-lpT8hSQp9jAKp9mhtBU4Xjon8LPGBvLIuBiSVhMEtmLecTh2mO0tlqrAMp47tBXzMr13NJMQ2lf7RpQGLJ3HsQ==} + dev: true + + /sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + dev: true + + /stack-utils@2.0.6: + resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} + engines: {node: '>=10'} + dependencies: + escape-string-regexp: 2.0.0 + dev: true + + /std-env@3.4.3: + resolution: {integrity: sha512-f9aPhy8fYBuMN+sNfakZV18U39PbalgjXG3lLB9WkaYTxijru61wb57V9wxxNthXM5Sd88ETBWi29qLAsHO52Q==} + dev: true + + /stream-transform@2.1.3: + resolution: {integrity: sha512-9GHUiM5hMiCi6Y03jD2ARC1ettBXkQBoQAe7nJsPknnI0ow10aXjTnew8QtYQmLjzn974BnmWEAJgCY6ZP1DeQ==} + dependencies: + mixme: 0.5.9 + dev: true + + /strict-event-emitter-types@2.0.0: + resolution: {integrity: sha512-Nk/brWYpD85WlOgzw5h173aci0Teyv8YdIAEtV+N88nDB0dLlazZyJMIsN6eo1/AR61l+p6CJTG1JIyFaoNEEA==} + dev: false + + /string-argv@0.3.2: + resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} + engines: {node: '>=0.6.19'} + dev: true + + /string-length@4.0.2: + resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==} + engines: {node: '>=10'} + dependencies: + char-regex: 1.0.2 + strip-ansi: 6.0.1 + dev: true + + /string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + dev: true + + /string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.1.0 + dev: true + + /string.prototype.matchall@4.0.10: + resolution: {integrity: sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + get-intrinsic: 1.2.1 + has-symbols: 1.0.3 + internal-slot: 1.0.5 + regexp.prototype.flags: 1.5.1 + set-function-name: 2.0.1 + side-channel: 1.0.4 + dev: true + + /string.prototype.trim@1.2.8: + resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + dev: true + + /string.prototype.trimend@1.0.7: + resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + dev: true + + /string.prototype.trimstart@1.0.7: + resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + dev: true + + /strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + dependencies: + ansi-regex: 5.0.1 + dev: true + + /strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} + dependencies: + ansi-regex: 6.0.1 + dev: true + + /strip-bom@3.0.0: + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} + engines: {node: '>=4'} + dev: true + + /strip-bom@4.0.0: + resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} + engines: {node: '>=8'} + dev: true + + /strip-final-newline@2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} + dev: true + + /strip-final-newline@3.0.0: + resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} + engines: {node: '>=12'} + dev: true + + /strip-indent@3.0.0: + resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} + engines: {node: '>=8'} + dependencies: + min-indent: 1.0.1 + dev: true + + /strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + dev: true + + /strip-literal@1.3.0: + resolution: {integrity: sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==} + dependencies: + acorn: 8.10.0 + dev: true + + /sucrase@3.34.0: + resolution: {integrity: sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==} + engines: {node: '>=8'} + hasBin: true + dependencies: + '@jridgewell/gen-mapping': 0.3.3 + commander: 4.1.1 + glob: 7.1.6 + lines-and-columns: 1.2.4 + mz: 2.7.0 + pirates: 4.0.6 + ts-interface-checker: 0.1.13 + dev: true + + /supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + dependencies: + has-flag: 3.0.0 + dev: true + + /supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + dependencies: + has-flag: 4.0.0 + dev: true + + /supports-color@8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} + dependencies: + has-flag: 4.0.0 + + /supports-hyperlinks@2.3.0: + resolution: {integrity: sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==} + engines: {node: '>=8'} + dependencies: + has-flag: 4.0.0 + supports-color: 7.2.0 + dev: true + + /supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + + /symbol-tree@3.2.4: + resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} + dev: true + + /tapable@2.2.1: + resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} + engines: {node: '>=6'} + + /term-size@2.2.1: + resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==} + engines: {node: '>=8'} + dev: true + + /terminal-link@2.1.1: + resolution: {integrity: sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==} + engines: {node: '>=8'} + dependencies: + ansi-escapes: 4.3.2 + supports-hyperlinks: 2.3.0 + dev: true + + /terser-webpack-plugin@5.3.9(esbuild@0.15.18)(webpack@5.88.2): + resolution: {integrity: sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==} + engines: {node: '>= 10.13.0'} + peerDependencies: + '@swc/core': '*' + esbuild: '*' + uglify-js: '*' + webpack: ^5.1.0 + peerDependenciesMeta: + '@swc/core': + optional: true + esbuild: + optional: true + uglify-js: + optional: true + dependencies: + '@jridgewell/trace-mapping': 0.3.19 + esbuild: 0.15.18 + jest-worker: 27.5.1 + schema-utils: 3.3.0 + serialize-javascript: 6.0.1 + terser: 5.20.0 + webpack: 5.88.2(esbuild@0.15.18)(webpack-cli@4.10.0) + + /terser@5.20.0: + resolution: {integrity: sha512-e56ETryaQDyebBwJIWYB2TT6f2EZ0fL0sW/JRXNMN26zZdKi2u/E/5my5lG6jNxym6qsrVXfFRmOdV42zlAgLQ==} + engines: {node: '>=10'} + hasBin: true + dependencies: + '@jridgewell/source-map': 0.3.5 + acorn: 8.10.0 + commander: 2.20.3 + source-map-support: 0.5.21 + + /test-exclude@6.0.0: + resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} + engines: {node: '>=8'} + dependencies: + '@istanbuljs/schema': 0.1.3 + glob: 7.2.3 + minimatch: 3.1.2 + dev: true + + /text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + dev: true + + /thenify-all@1.6.0: + resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} + engines: {node: '>=0.8'} + dependencies: + thenify: 3.3.1 + dev: true + + /thenify@3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + dependencies: + any-promise: 1.3.0 + dev: true + + /tinybench@2.5.1: + resolution: {integrity: sha512-65NKvSuAVDP/n4CqH+a9w2kTlLReS9vhsAP06MWx+/89nMinJyB2icyl58RIcqCmIggpojIGeuJGhjU1aGMBSg==} + dev: true + + /tinypool@0.3.1: + resolution: {integrity: sha512-zLA1ZXlstbU2rlpA4CIeVaqvWq41MTWqLY3FfsAXgC8+f7Pk7zroaJQxDgxn1xNudKW6Kmj4808rPFShUlIRmQ==} + engines: {node: '>=14.0.0'} + dev: true + + /tinyspy@1.1.1: + resolution: {integrity: sha512-UVq5AXt/gQlti7oxoIg5oi/9r0WpF7DGEVwXgqWSMmyN16+e3tl5lIvTaOpJ3TAtu5xFzWccFRM4R5NaWHF+4g==} + engines: {node: '>=14.0.0'} + dev: true + + /tmp@0.0.33: + resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} + engines: {node: '>=0.6.0'} + dependencies: + os-tmpdir: 1.0.2 + dev: true + + /tmpl@1.0.5: + resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} + dev: true + + /to-fast-properties@2.0.0: + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} + engines: {node: '>=4'} + dev: true + + /to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + dependencies: + is-number: 7.0.0 + dev: true + + /totalist@3.0.1: + resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} + engines: {node: '>=6'} + dev: true + + /tough-cookie@4.1.3: + resolution: {integrity: sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==} + engines: {node: '>=6'} + dependencies: + psl: 1.9.0 + punycode: 2.3.0 + universalify: 0.2.0 + url-parse: 1.5.10 + dev: true + + /tr46@0.0.3: + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + + /tr46@1.0.1: + resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} + dependencies: + punycode: 2.3.0 + dev: true + + /tr46@3.0.0: + resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==} + engines: {node: '>=12'} + dependencies: + punycode: 2.3.0 + dev: true + + /tree-kill@1.2.2: + resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} + hasBin: true + dev: true + + /trim-newlines@3.0.1: + resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==} + engines: {node: '>=8'} + dev: true + + /ts-interface-checker@0.1.13: + resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + dev: true + + /ts-jest@28.0.8(@babel/core@7.22.20)(esbuild@0.15.18)(jest@28.1.3)(typescript@4.9.5): + resolution: {integrity: sha512-5FaG0lXmRPzApix8oFG8RKjAz4ehtm8yMKOTy5HX3fY6W8kmvOrmcY0hKDElW52FJov+clhUbrKAqofnj4mXTg==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + hasBin: true + peerDependencies: + '@babel/core': '>=7.0.0-beta.0 <8' + '@jest/types': ^28.0.0 + babel-jest: ^28.0.0 + esbuild: '*' + jest: ^28.0.0 + typescript: '>=4.3' + peerDependenciesMeta: + '@babel/core': + optional: true + '@jest/types': + optional: true + babel-jest: + optional: true + esbuild: + optional: true + dependencies: + '@babel/core': 7.22.20 + bs-logger: 0.2.6 + esbuild: 0.15.18 + fast-json-stable-stringify: 2.1.0 + jest: 28.1.3 + jest-util: 28.1.3 + json5: 2.2.3 + lodash.memoize: 4.1.2 + make-error: 1.3.6 + semver: 7.5.4 + typescript: 4.9.5 + yargs-parser: 21.1.1 + dev: true + + /ts-loader@9.4.4(typescript@4.9.5)(webpack@5.88.2): + resolution: {integrity: sha512-MLukxDHBl8OJ5Dk3y69IsKVFRA/6MwzEqBgh+OXMPB/OD01KQuWPFd1WAQP8a5PeSCAxfnkhiuWqfmFJzJQt9w==} + engines: {node: '>=12.0.0'} + peerDependencies: + typescript: '*' + webpack: ^5.0.0 + dependencies: + chalk: 4.1.2 + enhanced-resolve: 5.15.0 + micromatch: 4.0.5 + semver: 7.5.4 + typescript: 4.9.5 + webpack: 5.88.2(esbuild@0.15.18)(webpack-cli@4.10.0) + dev: true + + /ts-node@10.9.1(@types/node@20.6.3)(typescript@5.2.2): + resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} + hasBin: true + peerDependencies: + '@swc/core': '>=1.2.50' + '@swc/wasm': '>=1.2.50' + '@types/node': '*' + typescript: '>=2.7' + peerDependenciesMeta: + '@swc/core': + optional: true + '@swc/wasm': + optional: true + dependencies: + '@cspotcode/source-map-support': 0.8.1 + '@tsconfig/node10': 1.0.9 + '@tsconfig/node12': 1.0.11 + '@tsconfig/node14': 1.0.3 + '@tsconfig/node16': 1.0.4 + '@types/node': 20.6.3 + acorn: 8.10.0 + acorn-walk: 8.2.0 + arg: 4.1.3 + create-require: 1.1.1 + diff: 4.0.2 + make-error: 1.3.6 + typescript: 5.2.2 + v8-compile-cache-lib: 3.0.1 + yn: 3.1.1 + dev: true + + /ts-results@3.3.0: + resolution: {integrity: sha512-FWqxGX2NHp5oCyaMd96o2y2uMQmSu8Dey6kvyuFdRJ2AzfmWo3kWa4UsPlCGlfQ/qu03m09ZZtppMoY8EMHuiA==} + dev: false + + /tsc-alias@1.8.8: + resolution: {integrity: sha512-OYUOd2wl0H858NvABWr/BoSKNERw3N9GTi3rHPK8Iv4O1UyUXIrTTOAZNHsjlVpXFOhpJBVARI1s+rzwLivN3Q==} + hasBin: true + dependencies: + chokidar: 3.5.3 + commander: 9.5.0 + globby: 11.1.0 + mylas: 2.1.13 + normalize-path: 3.0.0 + plimit-lit: 1.5.0 + dev: true + + /tsconfck@2.1.2(typescript@4.9.5): + resolution: {integrity: sha512-ghqN1b0puy3MhhviwO2kGF8SeMDNhEbnKxjK7h6+fvY9JAxqvXi8y5NAHSQv687OVboS2uZIByzGd45/YxrRHg==} + engines: {node: ^14.13.1 || ^16 || >=18} + hasBin: true + peerDependencies: + typescript: ^4.3.5 || ^5.0.0 + peerDependenciesMeta: + typescript: + optional: true + dependencies: + typescript: 4.9.5 + dev: true + + /tsconfig-paths@3.14.2: + resolution: {integrity: sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==} + dependencies: + '@types/json5': 0.0.29 + json5: 1.0.2 + minimist: 1.2.8 + strip-bom: 3.0.0 + dev: true + + /tslib@1.14.1: + resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} + dev: true + + /tslib@2.6.2: + resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} + dev: false + + /tsup@6.7.0(typescript@4.9.5): + resolution: {integrity: sha512-L3o8hGkaHnu5TdJns+mCqFsDBo83bJ44rlK7e6VdanIvpea4ArPcU3swWGsLVbXak1PqQx/V+SSmFPujBK+zEQ==} + engines: {node: '>=14.18'} + hasBin: true + peerDependencies: + '@swc/core': ^1 + postcss: ^8.4.12 + typescript: '>=4.1.0' + peerDependenciesMeta: + '@swc/core': + optional: true + postcss: + optional: true + typescript: + optional: true + dependencies: + bundle-require: 4.0.1(esbuild@0.17.19) + cac: 6.7.14 + chokidar: 3.5.3 + debug: 4.3.4 + esbuild: 0.17.19 + execa: 5.1.1 + globby: 11.1.0 + joycon: 3.1.1 + postcss-load-config: 3.1.4 + resolve-from: 5.0.0 + rollup: 3.29.2 + source-map: 0.8.0-beta.0 + sucrase: 3.34.0 + tree-kill: 1.2.2 + typescript: 4.9.5 + transitivePeerDependencies: + - supports-color + - ts-node + dev: true + + /tsup@7.2.0(typescript@4.9.5): + resolution: {integrity: sha512-vDHlczXbgUvY3rWvqFEbSqmC1L7woozbzngMqTtL2PGBODTtWlRwGDDawhvWzr5c1QjKe4OAKqJGfE1xeXUvtQ==} + engines: {node: '>=16.14'} + hasBin: true + peerDependencies: + '@swc/core': ^1 + postcss: ^8.4.12 + typescript: '>=4.1.0' + peerDependenciesMeta: + '@swc/core': + optional: true + postcss: + optional: true + typescript: + optional: true + dependencies: + bundle-require: 4.0.1(esbuild@0.18.20) + cac: 6.7.14 + chokidar: 3.5.3 + debug: 4.3.4 + esbuild: 0.18.20 + execa: 5.1.1 + globby: 11.1.0 + joycon: 3.1.1 + postcss-load-config: 4.0.1 + resolve-from: 5.0.0 + rollup: 3.29.2 + source-map: 0.8.0-beta.0 + sucrase: 3.34.0 + tree-kill: 1.2.2 + typescript: 4.9.5 + transitivePeerDependencies: + - supports-color + - ts-node + dev: true + + /tsutils@3.21.0(typescript@4.9.5): + resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} + engines: {node: '>= 6'} + peerDependencies: + typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' + dependencies: + tslib: 1.14.1 + typescript: 4.9.5 + dev: true + + /tty-table@4.2.1: + resolution: {integrity: sha512-xz0uKo+KakCQ+Dxj1D/tKn2FSyreSYWzdkL/BYhgN6oMW808g8QRMuh1atAV9fjTPbWBjfbkKQpI/5rEcnAc7g==} + engines: {node: '>=8.0.0'} + hasBin: true + dependencies: + chalk: 4.1.2 + csv: 5.5.3 + kleur: 4.1.5 + smartwrap: 2.0.2 + strip-ansi: 6.0.1 + wcwidth: 1.0.1 + yargs: 17.7.2 + dev: true + + /type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.2.1 + dev: true + + /type-detect@4.0.8: + resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} + engines: {node: '>=4'} + dev: true + + /type-fest@0.13.1: + resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==} + engines: {node: '>=10'} + dev: true + + /type-fest@0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} + dev: true + + /type-fest@0.21.3: + resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} + engines: {node: '>=10'} + dev: true + + /type-fest@0.6.0: + resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} + engines: {node: '>=8'} + dev: true + + /type-fest@0.8.1: + resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} + engines: {node: '>=8'} + dev: true + + /type-fest@1.4.0: + resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==} + engines: {node: '>=10'} + dev: true + + /typed-array-buffer@1.0.0: + resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + is-typed-array: 1.1.12 + dev: true + + /typed-array-byte-length@1.0.0: + resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + for-each: 0.3.3 + has-proto: 1.0.1 + is-typed-array: 1.1.12 + dev: true + + /typed-array-byte-offset@1.0.0: + resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + for-each: 0.3.3 + has-proto: 1.0.1 + is-typed-array: 1.1.12 + dev: true + + /typed-array-length@1.0.4: + resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} + dependencies: + call-bind: 1.0.2 + for-each: 0.3.3 + is-typed-array: 1.1.12 + dev: true + + /typedjson@1.8.0: + resolution: {integrity: sha512-taVJVGebQDagEmVc3Cu6vVVLkWLnxqPcTrkVgbpAsI02ZDDrnHy5zvt1JVqXv4/yztBgZAX1oR07+bkiusGJLQ==} + dependencies: + tslib: 2.6.2 + dev: false + + /typescript@4.9.5: + resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} + engines: {node: '>=4.2.0'} + hasBin: true + dev: true + + /typescript@5.2.2: + resolution: {integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==} + engines: {node: '>=14.17'} + hasBin: true + dev: true + + /ufo@1.3.0: + resolution: {integrity: sha512-bRn3CsoojyNStCZe0BG0Mt4Nr/4KF+rhFlnNXybgqt5pXHNFRlqinSoQaTrGyzE4X8aHplSb+TorH+COin9Yxw==} + dev: true + + /unbox-primitive@1.0.2: + resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} + dependencies: + call-bind: 1.0.2 + has-bigints: 1.0.2 + has-symbols: 1.0.3 + which-boxed-primitive: 1.0.2 + dev: true + + /universalify@0.1.2: + resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} + engines: {node: '>= 4.0.0'} + dev: true + + /universalify@0.2.0: + resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} + engines: {node: '>= 4.0.0'} + dev: true + + /update-browserslist-db@1.0.13(browserslist@4.21.11): + resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + dependencies: + browserslist: 4.21.11 + escalade: 3.1.1 + picocolors: 1.0.0 + + /uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + dependencies: + punycode: 2.3.0 + + /url-parse@1.5.10: + resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} + dependencies: + querystringify: 2.2.0 + requires-port: 1.0.0 + dev: true + + /uuid@2.0.1: + resolution: {integrity: sha512-nWg9+Oa3qD2CQzHIP4qKUqwNfzKn8P0LtFhotaCTFchsV7ZfDhAybeip/HZVeMIpZi9JgY1E3nUlwaCmZT1sEg==} + deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. + dev: false + + /v8-compile-cache-lib@3.0.1: + resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} + dev: true + + /v8-to-istanbul@9.1.0: + resolution: {integrity: sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA==} + engines: {node: '>=10.12.0'} + dependencies: + '@jridgewell/trace-mapping': 0.3.19 + '@types/istanbul-lib-coverage': 2.0.4 + convert-source-map: 1.9.0 + dev: true + + /validate-npm-package-license@3.0.4: + resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} + dependencies: + spdx-correct: 3.2.0 + spdx-expression-parse: 3.0.1 + dev: true + + /vite-node@0.26.3(@types/node@20.6.3): + resolution: {integrity: sha512-Te2bq0Bfvq6XiO718I+1EinMjpNYKws6SNHKOmVbILAQimKoZKDd+IZLlkaYcBXPpK3HFe2U80k8Zw+m3w/a2w==} + engines: {node: '>=v14.16.0'} + hasBin: true + dependencies: + debug: 4.3.4 + mlly: 1.4.2 + pathe: 0.2.0 + source-map: 0.6.1 + source-map-support: 0.5.21 + vite: 4.4.9(@types/node@20.6.3) + transitivePeerDependencies: + - '@types/node' + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser + dev: true + + /vite-tsconfig-paths@4.2.1(typescript@4.9.5): + resolution: {integrity: sha512-GNUI6ZgPqT3oervkvzU+qtys83+75N/OuDaQl7HmOqFTb0pjZsuARrRipsyJhJ3enqV8beI1xhGbToR4o78nSQ==} + peerDependencies: + vite: '*' + peerDependenciesMeta: + vite: + optional: true + dependencies: + debug: 4.3.4 + globrex: 0.1.2 + tsconfck: 2.1.2(typescript@4.9.5) + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /vite@4.4.9(@types/node@20.6.3): + resolution: {integrity: sha512-2mbUn2LlUmNASWwSCNSJ/EG2HuSRTnVNaydp6vMCm5VIqJsjMfbIWtbH2kDuwUVW5mMUKKZvGPX/rqeqVvv1XA==} + engines: {node: ^14.18.0 || >=16.0.0} + hasBin: true + peerDependencies: + '@types/node': '>= 14' + less: '*' + lightningcss: ^1.21.0 + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: + '@types/node': 20.6.3 + esbuild: 0.18.20 + postcss: 8.4.30 + rollup: 3.29.2 + optionalDependencies: + fsevents: 2.3.3 + dev: true + + /vitest@0.26.3(@vitest/ui@0.28.5)(jsdom@20.0.3): + resolution: {integrity: sha512-FmHxU9aUCxTi23keF3vxb/Qp0lYXaaJ+jRLGOUmMS3qVTOJvgGE+f1VArupA6pEhaG2Ans4X+zV9dqM5WISMbg==} + engines: {node: '>=v14.16.0'} + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@vitest/browser': '*' + '@vitest/ui': '*' + happy-dom: '*' + jsdom: '*' + peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@vitest/browser': + optional: true + '@vitest/ui': + optional: true + happy-dom: + optional: true + jsdom: + optional: true + dependencies: + '@types/chai': 4.3.6 + '@types/chai-subset': 1.3.3 + '@types/node': 20.6.3 + '@vitest/ui': 0.28.5 + acorn: 8.10.0 + acorn-walk: 8.2.0 + chai: 4.3.8 + debug: 4.3.4 + jsdom: 20.0.3 + local-pkg: 0.4.3 + source-map: 0.6.1 + strip-literal: 1.3.0 + tinybench: 2.5.1 + tinypool: 0.3.1 + tinyspy: 1.1.1 + vite: 4.4.9(@types/node@20.6.3) + vite-node: 0.26.3(@types/node@20.6.3) + transitivePeerDependencies: + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser + dev: true + + /w3c-hr-time@1.0.2: + resolution: {integrity: sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==} + deprecated: Use your platform's native performance.now() and performance.timeOrigin. + dependencies: + browser-process-hrtime: 1.0.0 + dev: true + + /w3c-xmlserializer@3.0.0: + resolution: {integrity: sha512-3WFqGEgSXIyGhOmAFtlicJNMjEps8b1MG31NCA0/vOF9+nKMUW1ckhi9cnNHmf88Rzw5V+dwIwsm2C7X8k9aQg==} + engines: {node: '>=12'} + dependencies: + xml-name-validator: 4.0.0 + dev: true + + /w3c-xmlserializer@4.0.0: + resolution: {integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==} + engines: {node: '>=14'} + dependencies: + xml-name-validator: 4.0.0 + dev: true + + /walker@1.0.8: + resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} + dependencies: + makeerror: 1.0.12 + dev: true + + /watchpack@2.4.0: + resolution: {integrity: sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==} + engines: {node: '>=10.13.0'} + dependencies: + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.11 + + /wcwidth@1.0.1: + resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} + dependencies: + defaults: 1.0.4 + dev: true + + /webidl-conversions@3.0.1: + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + + /webidl-conversions@4.0.2: + resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} + dev: true + + /webidl-conversions@7.0.0: + resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} + engines: {node: '>=12'} + dev: true + + /webpack-cli@4.10.0(webpack@5.88.2): + resolution: {integrity: sha512-NLhDfH/h4O6UOy+0LSso42xvYypClINuMNBVVzX4vX98TmTaTUxwRbXdhucbFMd2qLaCTcLq/PdYrvi8onw90w==} + engines: {node: '>=10.13.0'} + hasBin: true + peerDependencies: + '@webpack-cli/generators': '*' + '@webpack-cli/migrate': '*' + webpack: 4.x.x || 5.x.x + webpack-bundle-analyzer: '*' + webpack-dev-server: '*' + peerDependenciesMeta: + '@webpack-cli/generators': + optional: true + '@webpack-cli/migrate': + optional: true + webpack-bundle-analyzer: + optional: true + webpack-dev-server: + optional: true + dependencies: + '@discoveryjs/json-ext': 0.5.7 + '@webpack-cli/configtest': 1.2.0(webpack-cli@4.10.0)(webpack@5.88.2) + '@webpack-cli/info': 1.5.0(webpack-cli@4.10.0) + '@webpack-cli/serve': 1.7.0(webpack-cli@4.10.0) + colorette: 2.0.20 + commander: 7.2.0 + cross-spawn: 7.0.3 + fastest-levenshtein: 1.0.16 + import-local: 3.1.0 + interpret: 2.2.0 + rechoir: 0.7.1 + webpack: 5.88.2(esbuild@0.15.18)(webpack-cli@4.10.0) + webpack-merge: 5.9.0 + + /webpack-merge@5.9.0: + resolution: {integrity: sha512-6NbRQw4+Sy50vYNTw7EyOn41OZItPiXB8GNv3INSoe3PSFaHJEz3SHTrYVaRm2LilNGnFUzh0FAwqPEmU/CwDg==} + engines: {node: '>=10.0.0'} + dependencies: + clone-deep: 4.0.1 + wildcard: 2.0.1 + + /webpack-node-externals@3.0.0: + resolution: {integrity: sha512-LnL6Z3GGDPht/AigwRh2dvL9PQPFQ8skEpVrWZXLWBYmqcaojHNN0onvHzie6rq7EWKrrBfPYqNEzTJgiwEQDQ==} + engines: {node: '>=6'} + dev: true + + /webpack-sources@3.2.3: + resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} + engines: {node: '>=10.13.0'} + + /webpack@5.88.2(esbuild@0.15.18)(webpack-cli@4.10.0): + resolution: {integrity: sha512-JmcgNZ1iKj+aiR0OvTYtWQqJwq37Pf683dY9bVORwVbUrDhLhdn/PlO2sHsFHPkj7sHNQF3JwaAkp49V+Sq1tQ==} + engines: {node: '>=10.13.0'} + hasBin: true + peerDependencies: + webpack-cli: '*' + peerDependenciesMeta: + webpack-cli: + optional: true + dependencies: + '@types/eslint-scope': 3.7.5 + '@types/estree': 1.0.2 + '@webassemblyjs/ast': 1.11.6 + '@webassemblyjs/wasm-edit': 1.11.6 + '@webassemblyjs/wasm-parser': 1.11.6 + acorn: 8.10.0 + acorn-import-assertions: 1.9.0(acorn@8.10.0) + browserslist: 4.21.11 + chrome-trace-event: 1.0.3 + enhanced-resolve: 5.15.0 + es-module-lexer: 1.3.1 + eslint-scope: 5.1.1 + events: 3.3.0 + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.11 + json-parse-even-better-errors: 2.3.1 + loader-runner: 4.3.0 + mime-types: 2.1.35 + neo-async: 2.6.2 + schema-utils: 3.3.0 + tapable: 2.2.1 + terser-webpack-plugin: 5.3.9(esbuild@0.15.18)(webpack@5.88.2) + watchpack: 2.4.0 + webpack-cli: 4.10.0(webpack@5.88.2) + webpack-sources: 3.2.3 + transitivePeerDependencies: + - '@swc/core' + - esbuild + - uglify-js + + /whatwg-encoding@2.0.0: + resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==} + engines: {node: '>=12'} + dependencies: + iconv-lite: 0.6.3 + dev: true + + /whatwg-fetch@3.6.19: + resolution: {integrity: sha512-d67JP4dHSbm2TrpFj8AbO8DnL1JXL5J9u0Kq2xW6d0TFDbCA3Muhdt8orXC22utleTVj7Prqt82baN6RBvnEgw==} + dev: false + + /whatwg-mimetype@3.0.0: + resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} + engines: {node: '>=12'} + dev: true + + /whatwg-url@10.0.0: + resolution: {integrity: sha512-CLxxCmdUby142H5FZzn4D8ikO1cmypvXVQktsgosNy4a4BHrDHeciBBGZhb0bNoR5/MltoCatso+vFjjGx8t0w==} + engines: {node: '>=12'} + dependencies: + tr46: 3.0.0 + webidl-conversions: 7.0.0 + dev: true + + /whatwg-url@11.0.0: + resolution: {integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==} + engines: {node: '>=12'} + dependencies: + tr46: 3.0.0 + webidl-conversions: 7.0.0 + dev: true + + /whatwg-url@5.0.0: + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + dependencies: + tr46: 0.0.3 + webidl-conversions: 3.0.1 + + /whatwg-url@7.1.0: + resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} + dependencies: + lodash.sortby: 4.7.0 + tr46: 1.0.1 + webidl-conversions: 4.0.2 + dev: true + + /which-boxed-primitive@1.0.2: + resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} + dependencies: + is-bigint: 1.0.4 + is-boolean-object: 1.1.2 + is-number-object: 1.0.7 + is-string: 1.0.7 + is-symbol: 1.0.4 + dev: true + + /which-builtin-type@1.1.3: + resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==} + engines: {node: '>= 0.4'} + dependencies: + function.prototype.name: 1.1.6 + has-tostringtag: 1.0.0 + is-async-function: 2.0.0 + is-date-object: 1.0.5 + is-finalizationregistry: 1.0.2 + is-generator-function: 1.0.10 + is-regex: 1.1.4 + is-weakref: 1.0.2 + isarray: 2.0.5 + which-boxed-primitive: 1.0.2 + which-collection: 1.0.1 + which-typed-array: 1.1.11 + dev: true + + /which-collection@1.0.1: + resolution: {integrity: sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==} + dependencies: + is-map: 2.0.2 + is-set: 2.0.2 + is-weakmap: 2.0.1 + is-weakset: 2.0.2 + dev: true + + /which-module@2.0.1: + resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} + dev: true + + /which-pm@2.0.0: + resolution: {integrity: sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==} + engines: {node: '>=8.15'} + dependencies: + load-yaml-file: 0.2.0 + path-exists: 4.0.0 + dev: true + + /which-typed-array@1.1.11: + resolution: {integrity: sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + for-each: 0.3.3 + gopd: 1.0.1 + has-tostringtag: 1.0.0 + dev: true + + /which@1.3.1: + resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} + hasBin: true + dependencies: + isexe: 2.0.0 + dev: true + + /which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + dependencies: + isexe: 2.0.0 + + /wildcard@2.0.1: + resolution: {integrity: sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==} + + /wrap-ansi@6.2.0: + resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} + engines: {node: '>=8'} + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + dev: true + + /wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + dev: true + + /wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + dependencies: + ansi-styles: 6.2.1 + string-width: 5.1.2 + strip-ansi: 7.1.0 + dev: true + + /wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + /write-file-atomic@4.0.2: + resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + dependencies: + imurmurhash: 0.1.4 + signal-exit: 3.0.7 + dev: true + + /ws@7.5.9: + resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==} + engines: {node: '>=8.3.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + dev: false + + /ws@8.14.2: + resolution: {integrity: sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + dev: true + + /xml-name-validator@4.0.0: + resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} + engines: {node: '>=12'} + dev: true + + /xmlchars@2.2.0: + resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} + dev: true + + /xmlhttprequest@1.8.0: + resolution: {integrity: sha512-58Im/U0mlVBLM38NdZjHyhuMtCqa61469k2YP/AaPbvCoV9aQGUpbJBj1QRm2ytRiVQBD/fsw7L2bJGDVQswBA==} + engines: {node: '>=0.4.0'} + dev: false + + /y18n@4.0.3: + resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} + dev: true + + /y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + dev: true + + /yallist@2.1.2: + resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==} + dev: true + + /yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + dev: true + + /yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + dev: true + + /yaml@1.10.2: + resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} + engines: {node: '>= 6'} + dev: true + + /yaml@2.3.1: + resolution: {integrity: sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==} + engines: {node: '>= 14'} + dev: true + + /yaml@2.3.2: + resolution: {integrity: sha512-N/lyzTPaJasoDmfV7YTrYCI0G/3ivm/9wdG0aHuheKowWQwGTsK0Eoiw6utmzAnI6pkJa0DUVygvp3spqqEKXg==} + engines: {node: '>= 14'} + dev: true + + /yargs-parser@18.1.3: + resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} + engines: {node: '>=6'} + dependencies: + camelcase: 5.3.1 + decamelize: 1.2.0 + dev: true + + /yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + dev: true + + /yargs@15.4.1: + resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==} + engines: {node: '>=8'} + dependencies: + cliui: 6.0.0 + decamelize: 1.2.0 + find-up: 4.1.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + require-main-filename: 2.0.0 + set-blocking: 2.0.0 + string-width: 4.2.3 + which-module: 2.0.1 + y18n: 4.0.3 + yargs-parser: 18.1.3 + dev: true + + /yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + dependencies: + cliui: 8.0.1 + escalade: 3.1.1 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 + dev: true + + /yn@3.1.1: + resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} + engines: {node: '>=6'} + dev: true + + /yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + dev: true diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml new file mode 100644 index 0000000..7514726 --- /dev/null +++ b/pnpm-workspace.yaml @@ -0,0 +1,8 @@ +packages: + - 'docs' + - 'packages/contract-client' + - 'packages/*' + - '!**/test/**' + - 'examples/*' + +link-workspace-packages: true diff --git a/tsconfig.json b/tsconfig.json index 178b11a..7ba6e4e 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -11,16 +11,27 @@ "noImplicitReturns": true, "noImplicitThis": true, "noUnusedParameters": true, - "noUnusedLocals": true, "noFallthroughCasesInSwitch": true, "esModuleInterop": true, "resolveJsonModule": true, "module": "commonjs", - "target": "es5", - "lib": ["es2015", "dom"], + "target": "es2021", + "lib": ["es2021", "dom"], "skipLibCheck": true, - "typeRoots": ["./src/@types", "./node_modules/@types"] + "typeRoots": ["packages/contract-client/src/@types", "./node_modules/@types"], + "paths": { + "@casperdash/contract-client": ["./packages/contract-client/src"], + "@casperdash/cep47-client": ["./packages/cep47-client/src"], + "@casperdash/cep18-client": ["./packages/cep18-client/src"], + "@casperdash/cep78-client": ["./packages/cep78-client/src"], + }, }, - "include": ["./src/**/*"], - "exclude": ["./test/**/*", "*/*.test.ts"] + "exclude": ["**/node_modules/**", "**/dist/**"], + "include": [ + "docs/**/*", + "examples/**/*", + "packages/**/*", + "packages/**/*.ts", + "vitest.config.ts" + ] } diff --git a/yarn.lock b/yarn.lock index 9a79f47..3da3e21 100644 --- a/yarn.lock +++ b/yarn.lock @@ -628,7 +628,7 @@ resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-3.1.0.tgz#706b4524ee6dc8b103b3c995533e5ad680c02b9b" integrity sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg== dependencies: - "@types/estree" "0.0.39" + "@types/estree" "2.15.09" estree-walker "^1.0.1" picomatch "^2.2.2" @@ -732,9 +732,9 @@ resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.0.tgz#5fb2e536c1ae9bf35366eed879e827fa59ca41c2" integrity sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ== -"@types/estree@0.0.39": - version "0.0.39" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" +"@types/estree@2.15.09": + version "2.15.09" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-2.15.09.tgz#e177e699ee1b8c22d23174caaa7422644389509f" integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== "@types/estree@^0.0.51": @@ -3606,9 +3606,9 @@ tr46@^3.0.0: dependencies: punycode "^2.1.1" -tr46@~0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" +tr46@~2.15.0: + version "2.15.0" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-2.15.0.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== ts-jest@^28.0.7: @@ -3839,7 +3839,7 @@ whatwg-url@^5.0.0: resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== dependencies: - tr46 "~0.0.3" + tr46 "~2.15.0" webidl-conversions "^3.0.0" which@^2.0.1: