#!/usr/bin/env node
/* eslint-disable */
// @ts-nocheck
"use strict";

const RAW_RUNTIME_STATE =
'{\
  "__info": [\
    "This file is automatically generated. Do not touch it, or risk",\
    "your modifications being lost."\
  ],\
  "dependencyTreeRoots": [\
    {\
      "name": "iceshrimp",\
      "reference": "workspace:."\
    },\
    {\
      "name": "backend",\
      "reference": "workspace:packages/backend"\
    },\
    {\
      "name": "client",\
      "reference": "workspace:packages/client"\
    },\
    {\
      "name": "iceshrimp-sdk",\
      "reference": "workspace:packages/iceshrimp-sdk"\
    },\
    {\
      "name": "sw",\
      "reference": "workspace:packages/sw"\
    }\
  ],\
  "enableTopLevelFallback": true,\
  "ignorePatternData": "(^(?:\\\\.yarn\\\\/sdks(?:\\\\/(?!\\\\.{1,2}(?:\\\\/|$))(?:(?:(?!(?:^|\\\\/)\\\\.{1,2}(?:\\\\/|$)).)*?)|$))$)",\
  "fallbackExclusionList": [\
    ["backend", ["workspace:packages/backend"]],\
    ["client", ["workspace:packages/client"]],\
    ["iceshrimp", ["workspace:."]],\
    ["iceshrimp-sdk", ["workspace:packages/iceshrimp-sdk"]],\
    ["sw", ["workspace:packages/sw"]]\
  ],\
  "fallbackPool": [\
  ],\
  "packageRegistryData": [\
    [null, [\
      [null, {\
        "packageLocation": "./",\
        "packageDependencies": [\
          ["@bull-board/api", "virtual:6d3c013820dba430e71ebb352cb5205445a13ea3c7a848f57a7ff58fb0d6469fe4d374280277dac42cb77a6dbf8e924e64f2f0b3413c28a02da9d890c199e6d7#npm:5.6.0"],\
          ["@bull-board/ui", "npm:5.6.0"],\
          ["js-yaml", "npm:4.1.0"],\
          ["seedrandom", "npm:3.0.5"]\
        ],\
        "linkType": "SOFT"\
      }]\
    ]],\
    ["@aashutoshrathi/word-wrap", [\
      ["npm:1.2.6", {\
        "packageLocation": "./.yarn/cache/@aashutoshrathi-word-wrap-npm-1.2.6-5b1d95e487-6eebd12a5c.zip/node_modules/@aashutoshrathi/word-wrap/",\
        "packageDependencies": [\
          ["@aashutoshrathi/word-wrap", "npm:1.2.6"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@ampproject/remapping", [\
      ["npm:2.2.1", {\
        "packageLocation": "./.yarn/cache/@ampproject-remapping-npm-2.2.1-3da3d624be-e15fecbf3b.zip/node_modules/@ampproject/remapping/",\
        "packageDependencies": [\
          ["@ampproject/remapping", "npm:2.2.1"],\
          ["@jridgewell/gen-mapping", "npm:0.3.3"],\
          ["@jridgewell/trace-mapping", "npm:0.3.18"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@babel/code-frame", [\
      ["npm:7.22.13", {\
        "packageLocation": "./.yarn/cache/@babel-code-frame-npm-7.22.13-2782581d20-bf6ae6ba3a.zip/node_modules/@babel/code-frame/",\
        "packageDependencies": [\
          ["@babel/code-frame", "npm:7.22.13"],\
          ["@babel/highlight", "npm:7.22.20"],\
          ["chalk", "npm:2.4.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@babel/compat-data", [\
      ["npm:7.22.9", {\
        "packageLocation": "./.yarn/cache/@babel-compat-data-npm-7.22.9-f9e02d51b9-6797f59857.zip/node_modules/@babel/compat-data/",\
        "packageDependencies": [\
          ["@babel/compat-data", "npm:7.22.9"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@babel/core", [\
      ["npm:7.22.9", {\
        "packageLocation": "./.yarn/cache/@babel-core-npm-7.22.9-509b29c82e-0c209a8506.zip/node_modules/@babel/core/",\
        "packageDependencies": [\
          ["@babel/core", "npm:7.22.9"],\
          ["@ampproject/remapping", "npm:2.2.1"],\
          ["@babel/code-frame", "npm:7.22.13"],\
          ["@babel/generator", "npm:7.22.9"],\
          ["@babel/helper-compilation-targets", "npm:7.22.15"],\
          ["@babel/helper-module-transforms", "virtual:509b29c82e8a1a01d4a12c9b7b502644021e94d233fa6e64533c75d14d6b00effd5817505571c7d810fb20d5a5a3d43daecdfa19af8bd6ea86ef59fc4107ecfd#npm:7.23.0"],\
          ["@babel/helpers", "npm:7.23.2"],\
          ["@babel/parser", "npm:7.22.7"],\
          ["@babel/template", "npm:7.22.15"],\
          ["@babel/traverse", "npm:7.23.2"],\
          ["@babel/types", "npm:7.22.5"],\
          ["convert-source-map", "npm:1.9.0"],\
          ["debug", "virtual:c8a47bd44e78262f6ba81f94852e5b6ec2a824806d82727a6ba6fdf6dc4be2b7d8b5dea8ceb347fa00fa505716d763276ebc48239b4faa6fbc5f8f9d2aa668e2#npm:4.3.4"],\
          ["gensync", "npm:1.0.0-beta.2"],\
          ["json5", "npm:2.2.3"],\
          ["semver", "npm:6.3.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@babel/generator", [\
      ["npm:7.22.9", {\
        "packageLocation": "./.yarn/cache/@babel-generator-npm-7.22.9-d9fccf9328-1ee43f9951.zip/node_modules/@babel/generator/",\
        "packageDependencies": [\
          ["@babel/generator", "npm:7.22.9"],\
          ["@babel/types", "npm:7.22.5"],\
          ["@jridgewell/gen-mapping", "npm:0.3.3"],\
          ["@jridgewell/trace-mapping", "npm:0.3.18"],\
          ["jsesc", "npm:2.5.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@babel/helper-compilation-targets", [\
      ["npm:7.22.15", {\
        "packageLocation": "./.yarn/cache/@babel-helper-compilation-targets-npm-7.22.15-7aac9e71ad-9706decaa1.zip/node_modules/@babel/helper-compilation-targets/",\
        "packageDependencies": [\
          ["@babel/helper-compilation-targets", "npm:7.22.15"],\
          ["@babel/compat-data", "npm:7.22.9"],\
          ["@babel/helper-validator-option", "npm:7.22.15"],\
          ["browserslist", "npm:4.21.9"],\
          ["lru-cache", "npm:5.1.1"],\
          ["semver", "npm:6.3.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@babel/helper-environment-visitor", [\
      ["npm:7.22.20", {\
        "packageLocation": "./.yarn/cache/@babel-helper-environment-visitor-npm-7.22.20-260909e014-d80ee98ff6.zip/node_modules/@babel/helper-environment-visitor/",\
        "packageDependencies": [\
          ["@babel/helper-environment-visitor", "npm:7.22.20"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@babel/helper-function-name", [\
      ["npm:7.23.0", {\
        "packageLocation": "./.yarn/cache/@babel-helper-function-name-npm-7.23.0-ce38271242-7b2ae024cd.zip/node_modules/@babel/helper-function-name/",\
        "packageDependencies": [\
          ["@babel/helper-function-name", "npm:7.23.0"],\
          ["@babel/template", "npm:7.22.15"],\
          ["@babel/types", "npm:7.22.5"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@babel/helper-hoist-variables", [\
      ["npm:7.22.5", {\
        "packageLocation": "./.yarn/cache/@babel-helper-hoist-variables-npm-7.22.5-6db3192347-394ca191b4.zip/node_modules/@babel/helper-hoist-variables/",\
        "packageDependencies": [\
          ["@babel/helper-hoist-variables", "npm:7.22.5"],\
          ["@babel/types", "npm:7.22.5"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@babel/helper-module-imports", [\
      ["npm:7.22.15", {\
        "packageLocation": "./.yarn/cache/@babel-helper-module-imports-npm-7.22.15-687e77ee50-5ecf9345a7.zip/node_modules/@babel/helper-module-imports/",\
        "packageDependencies": [\
          ["@babel/helper-module-imports", "npm:7.22.15"],\
          ["@babel/types", "npm:7.22.5"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@babel/helper-module-transforms", [\
      ["npm:7.23.0", {\
        "packageLocation": "./.yarn/cache/@babel-helper-module-transforms-npm-7.23.0-6d065838a4-d72fe444f7.zip/node_modules/@babel/helper-module-transforms/",\
        "packageDependencies": [\
          ["@babel/helper-module-transforms", "npm:7.23.0"]\
        ],\
        "linkType": "SOFT"\
      }],\
      ["virtual:509b29c82e8a1a01d4a12c9b7b502644021e94d233fa6e64533c75d14d6b00effd5817505571c7d810fb20d5a5a3d43daecdfa19af8bd6ea86ef59fc4107ecfd#npm:7.23.0", {\
        "packageLocation": "./.yarn/__virtual__/@babel-helper-module-transforms-virtual-665f2ffd8e/0/cache/@babel-helper-module-transforms-npm-7.23.0-6d065838a4-d72fe444f7.zip/node_modules/@babel/helper-module-transforms/",\
        "packageDependencies": [\
          ["@babel/helper-module-transforms", "virtual:509b29c82e8a1a01d4a12c9b7b502644021e94d233fa6e64533c75d14d6b00effd5817505571c7d810fb20d5a5a3d43daecdfa19af8bd6ea86ef59fc4107ecfd#npm:7.23.0"],\
          ["@babel/core", "npm:7.22.9"],\
          ["@babel/helper-environment-visitor", "npm:7.22.20"],\
          ["@babel/helper-module-imports", "npm:7.22.15"],\
          ["@babel/helper-simple-access", "npm:7.22.5"],\
          ["@babel/helper-split-export-declaration", "npm:7.22.6"],\
          ["@babel/helper-validator-identifier", "npm:7.22.20"],\
          ["@types/babel__core", null]\
        ],\
        "packagePeers": [\
          "@babel/core",\
          "@types/babel__core"\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@babel/helper-plugin-utils", [\
      ["npm:7.22.5", {\
        "packageLocation": "./.yarn/cache/@babel-helper-plugin-utils-npm-7.22.5-192e38e1de-ab220db218.zip/node_modules/@babel/helper-plugin-utils/",\
        "packageDependencies": [\
          ["@babel/helper-plugin-utils", "npm:7.22.5"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@babel/helper-simple-access", [\
      ["npm:7.22.5", {\
        "packageLocation": "./.yarn/cache/@babel-helper-simple-access-npm-7.22.5-0a3f578780-7d5430eecf.zip/node_modules/@babel/helper-simple-access/",\
        "packageDependencies": [\
          ["@babel/helper-simple-access", "npm:7.22.5"],\
          ["@babel/types", "npm:7.22.5"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@babel/helper-split-export-declaration", [\
      ["npm:7.22.6", {\
        "packageLocation": "./.yarn/cache/@babel-helper-split-export-declaration-npm-7.22.6-e723505aef-e141cace58.zip/node_modules/@babel/helper-split-export-declaration/",\
        "packageDependencies": [\
          ["@babel/helper-split-export-declaration", "npm:7.22.6"],\
          ["@babel/types", "npm:7.22.5"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@babel/helper-string-parser", [\
      ["npm:7.22.5", {\
        "packageLocation": "./.yarn/cache/@babel-helper-string-parser-npm-7.22.5-448ff0e489-7f275a7f1a.zip/node_modules/@babel/helper-string-parser/",\
        "packageDependencies": [\
          ["@babel/helper-string-parser", "npm:7.22.5"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@babel/helper-validator-identifier", [\
      ["npm:7.22.20", {\
        "packageLocation": "./.yarn/cache/@babel-helper-validator-identifier-npm-7.22.20-18305bb306-df882d2675.zip/node_modules/@babel/helper-validator-identifier/",\
        "packageDependencies": [\
          ["@babel/helper-validator-identifier", "npm:7.22.20"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@babel/helper-validator-option", [\
      ["npm:7.22.15", {\
        "packageLocation": "./.yarn/cache/@babel-helper-validator-option-npm-7.22.15-29aa330042-68da52b1e1.zip/node_modules/@babel/helper-validator-option/",\
        "packageDependencies": [\
          ["@babel/helper-validator-option", "npm:7.22.15"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@babel/helpers", [\
      ["npm:7.23.2", {\
        "packageLocation": "./.yarn/cache/@babel-helpers-npm-7.23.2-aa45e8b40c-d66d949d41.zip/node_modules/@babel/helpers/",\
        "packageDependencies": [\
          ["@babel/helpers", "npm:7.23.2"],\
          ["@babel/template", "npm:7.22.15"],\
          ["@babel/traverse", "npm:7.23.2"],\
          ["@babel/types", "npm:7.22.5"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@babel/highlight", [\
      ["npm:7.22.20", {\
        "packageLocation": "./.yarn/cache/@babel-highlight-npm-7.22.20-5de7aba88d-1aabc95b2c.zip/node_modules/@babel/highlight/",\
        "packageDependencies": [\
          ["@babel/highlight", "npm:7.22.20"],\
          ["@babel/helper-validator-identifier", "npm:7.22.20"],\
          ["chalk", "npm:2.4.2"],\
          ["js-tokens", "npm:4.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@babel/parser", [\
      ["npm:7.22.7", {\
        "packageLocation": "./.yarn/cache/@babel-parser-npm-7.22.7-7fbdf28552-f420f89ea8.zip/node_modules/@babel/parser/",\
        "packageDependencies": [\
          ["@babel/parser", "npm:7.22.7"],\
          ["@babel/types", "npm:7.22.5"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@babel/plugin-proposal-export-namespace-from", [\
      ["npm:7.18.9", {\
        "packageLocation": "./.yarn/cache/@babel-plugin-proposal-export-namespace-from-npm-7.18.9-6093116864-84ff22bacc.zip/node_modules/@babel/plugin-proposal-export-namespace-from/",\
        "packageDependencies": [\
          ["@babel/plugin-proposal-export-namespace-from", "npm:7.18.9"]\
        ],\
        "linkType": "SOFT"\
      }],\
      ["virtual:f37e52f4cec6962b293da6ad0f4c1028db6eb2e4c3a4cd4cb87e83e042f6fd08f654e6021358fe8265be1877a4951ad87003fac4d8116131553d25625b431de2#npm:7.18.9", {\
        "packageLocation": "./.yarn/__virtual__/@babel-plugin-proposal-export-namespace-from-virtual-9a4149e628/0/cache/@babel-plugin-proposal-export-namespace-from-npm-7.18.9-6093116864-84ff22bacc.zip/node_modules/@babel/plugin-proposal-export-namespace-from/",\
        "packageDependencies": [\
          ["@babel/plugin-proposal-export-namespace-from", "virtual:f37e52f4cec6962b293da6ad0f4c1028db6eb2e4c3a4cd4cb87e83e042f6fd08f654e6021358fe8265be1877a4951ad87003fac4d8116131553d25625b431de2#npm:7.18.9"],\
          ["@babel/core", "npm:7.22.9"],\
          ["@babel/helper-plugin-utils", "npm:7.22.5"],\
          ["@babel/plugin-syntax-export-namespace-from", "virtual:9a4149e62847815d8044fd7a034c9be87554bc983fc82a33a153135ded7da0597f21f5156757b71a1b9fb5ad18987d6dc6604eabdb1b6cab71126a2eca2474a3#npm:7.8.3"],\
          ["@types/babel__core", null]\
        ],\
        "packagePeers": [\
          "@babel/core",\
          "@types/babel__core"\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@babel/plugin-syntax-export-namespace-from", [\
      ["npm:7.8.3", {\
        "packageLocation": "./.yarn/cache/@babel-plugin-syntax-export-namespace-from-npm-7.8.3-1747201aa9-85740478be.zip/node_modules/@babel/plugin-syntax-export-namespace-from/",\
        "packageDependencies": [\
          ["@babel/plugin-syntax-export-namespace-from", "npm:7.8.3"]\
        ],\
        "linkType": "SOFT"\
      }],\
      ["virtual:9a4149e62847815d8044fd7a034c9be87554bc983fc82a33a153135ded7da0597f21f5156757b71a1b9fb5ad18987d6dc6604eabdb1b6cab71126a2eca2474a3#npm:7.8.3", {\
        "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-export-namespace-from-virtual-f15b6c462a/0/cache/@babel-plugin-syntax-export-namespace-from-npm-7.8.3-1747201aa9-85740478be.zip/node_modules/@babel/plugin-syntax-export-namespace-from/",\
        "packageDependencies": [\
          ["@babel/plugin-syntax-export-namespace-from", "virtual:9a4149e62847815d8044fd7a034c9be87554bc983fc82a33a153135ded7da0597f21f5156757b71a1b9fb5ad18987d6dc6604eabdb1b6cab71126a2eca2474a3#npm:7.8.3"],\
          ["@babel/core", "npm:7.22.9"],\
          ["@babel/helper-plugin-utils", "npm:7.22.5"],\
          ["@types/babel__core", null]\
        ],\
        "packagePeers": [\
          "@babel/core",\
          "@types/babel__core"\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@babel/plugin-transform-modules-commonjs", [\
      ["npm:7.22.5", {\
        "packageLocation": "./.yarn/cache/@babel-plugin-transform-modules-commonjs-npm-7.22.5-9fb6bd76fa-bf8bcc7a0f.zip/node_modules/@babel/plugin-transform-modules-commonjs/",\
        "packageDependencies": [\
          ["@babel/plugin-transform-modules-commonjs", "npm:7.22.5"]\
        ],\
        "linkType": "SOFT"\
      }],\
      ["virtual:f37e52f4cec6962b293da6ad0f4c1028db6eb2e4c3a4cd4cb87e83e042f6fd08f654e6021358fe8265be1877a4951ad87003fac4d8116131553d25625b431de2#npm:7.22.5", {\
        "packageLocation": "./.yarn/__virtual__/@babel-plugin-transform-modules-commonjs-virtual-00d911f3a8/0/cache/@babel-plugin-transform-modules-commonjs-npm-7.22.5-9fb6bd76fa-bf8bcc7a0f.zip/node_modules/@babel/plugin-transform-modules-commonjs/",\
        "packageDependencies": [\
          ["@babel/plugin-transform-modules-commonjs", "virtual:f37e52f4cec6962b293da6ad0f4c1028db6eb2e4c3a4cd4cb87e83e042f6fd08f654e6021358fe8265be1877a4951ad87003fac4d8116131553d25625b431de2#npm:7.22.5"],\
          ["@babel/core", "npm:7.22.9"],\
          ["@babel/helper-module-transforms", "virtual:509b29c82e8a1a01d4a12c9b7b502644021e94d233fa6e64533c75d14d6b00effd5817505571c7d810fb20d5a5a3d43daecdfa19af8bd6ea86ef59fc4107ecfd#npm:7.23.0"],\
          ["@babel/helper-plugin-utils", "npm:7.22.5"],\
          ["@babel/helper-simple-access", "npm:7.22.5"],\
          ["@types/babel__core", null]\
        ],\
        "packagePeers": [\
          "@babel/core",\
          "@types/babel__core"\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@babel/runtime", [\
      ["npm:7.22.6", {\
        "packageLocation": "./.yarn/cache/@babel-runtime-npm-7.22.6-493f6b7ad0-1d2f56797f.zip/node_modules/@babel/runtime/",\
        "packageDependencies": [\
          ["@babel/runtime", "npm:7.22.6"],\
          ["regenerator-runtime", "npm:0.13.11"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@babel/template", [\
      ["npm:7.22.15", {\
        "packageLocation": "./.yarn/cache/@babel-template-npm-7.22.15-0b464facb4-21e768e4ee.zip/node_modules/@babel/template/",\
        "packageDependencies": [\
          ["@babel/template", "npm:7.22.15"],\
          ["@babel/code-frame", "npm:7.22.13"],\
          ["@babel/parser", "npm:7.22.7"],\
          ["@babel/types", "npm:7.22.5"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@babel/traverse", [\
      ["npm:7.23.2", {\
        "packageLocation": "./.yarn/cache/@babel-traverse-npm-7.23.2-4758feee42-e4fcb8f839.zip/node_modules/@babel/traverse/",\
        "packageDependencies": [\
          ["@babel/traverse", "npm:7.23.2"],\
          ["@babel/code-frame", "npm:7.22.13"],\
          ["@babel/generator", "npm:7.22.9"],\
          ["@babel/helper-environment-visitor", "npm:7.22.20"],\
          ["@babel/helper-function-name", "npm:7.23.0"],\
          ["@babel/helper-hoist-variables", "npm:7.22.5"],\
          ["@babel/helper-split-export-declaration", "npm:7.22.6"],\
          ["@babel/parser", "npm:7.22.7"],\
          ["@babel/types", "npm:7.22.5"],\
          ["debug", "virtual:c8a47bd44e78262f6ba81f94852e5b6ec2a824806d82727a6ba6fdf6dc4be2b7d8b5dea8ceb347fa00fa505716d763276ebc48239b4faa6fbc5f8f9d2aa668e2#npm:4.3.4"],\
          ["globals", "npm:11.12.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@babel/types", [\
      ["npm:7.22.5", {\
        "packageLocation": "./.yarn/cache/@babel-types-npm-7.22.5-d1e4264bef-7f7edffe7e.zip/node_modules/@babel/types/",\
        "packageDependencies": [\
          ["@babel/types", "npm:7.22.5"],\
          ["@babel/helper-string-parser", "npm:7.22.5"],\
          ["@babel/helper-validator-identifier", "npm:7.22.20"],\
          ["to-fast-properties", "npm:2.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@bull-board/api", [\
      ["npm:5.6.0", {\
        "packageLocation": "./.yarn/cache/@bull-board-api-npm-5.6.0-a1466ed4c8-951b27f057.zip/node_modules/@bull-board/api/",\
        "packageDependencies": [\
          ["@bull-board/api", "npm:5.6.0"]\
        ],\
        "linkType": "SOFT"\
      }],\
      ["npm:6.0.0", {\
        "packageLocation": "./.yarn/cache/@bull-board-api-npm-6.0.0-78af39dbec-922e46f2c5.zip/node_modules/@bull-board/api/",\
        "packageDependencies": [\
          ["@bull-board/api", "npm:6.0.0"]\
        ],\
        "linkType": "SOFT"\
      }],\
      ["virtual:1a204444c80de4bcde4565c72a3b0d6571f4eb3f918d7d48d8cd7ddf8392bb94fcf59c7a20ab1f49717ca9715358d5e7cac35936b84d89d5579286a3dc50f306#npm:6.0.0", {\
        "packageLocation": "./.yarn/__virtual__/@bull-board-api-virtual-0339be2ffb/0/cache/@bull-board-api-npm-6.0.0-78af39dbec-922e46f2c5.zip/node_modules/@bull-board/api/",\
        "packageDependencies": [\
          ["@bull-board/api", "virtual:1a204444c80de4bcde4565c72a3b0d6571f4eb3f918d7d48d8cd7ddf8392bb94fcf59c7a20ab1f49717ca9715358d5e7cac35936b84d89d5579286a3dc50f306#npm:6.0.0"],\
          ["@bull-board/ui", "npm:6.0.0"],\
          ["@types/bull-board__ui", null],\
          ["redis-info", "npm:3.1.0"]\
        ],\
        "packagePeers": [\
          "@bull-board/ui",\
          "@types/bull-board__ui"\
        ],\
        "linkType": "HARD"\
      }],\
      ["virtual:6d3c013820dba430e71ebb352cb5205445a13ea3c7a848f57a7ff58fb0d6469fe4d374280277dac42cb77a6dbf8e924e64f2f0b3413c28a02da9d890c199e6d7#npm:5.6.0", {\
        "packageLocation": "./.yarn/__virtual__/@bull-board-api-virtual-7db979021f/0/cache/@bull-board-api-npm-5.6.0-a1466ed4c8-951b27f057.zip/node_modules/@bull-board/api/",\
        "packageDependencies": [\
          ["@bull-board/api", "virtual:6d3c013820dba430e71ebb352cb5205445a13ea3c7a848f57a7ff58fb0d6469fe4d374280277dac42cb77a6dbf8e924e64f2f0b3413c28a02da9d890c199e6d7#npm:5.6.0"],\
          ["@bull-board/ui", "npm:5.6.0"],\
          ["@types/bull-board__ui", null],\
          ["redis-info", "npm:3.1.0"]\
        ],\
        "packagePeers": [\
          "@bull-board/ui",\
          "@types/bull-board__ui"\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@bull-board/koa", [\
      ["npm:6.0.0", {\
        "packageLocation": "./.yarn/cache/@bull-board-koa-npm-6.0.0-47e7552797-0d1bac34e8.zip/node_modules/@bull-board/koa/",\
        "packageDependencies": [\
          ["@bull-board/koa", "npm:6.0.0"],\
          ["@bull-board/api", "virtual:1a204444c80de4bcde4565c72a3b0d6571f4eb3f918d7d48d8cd7ddf8392bb94fcf59c7a20ab1f49717ca9715358d5e7cac35936b84d89d5579286a3dc50f306#npm:6.0.0"],\
          ["@bull-board/ui", "npm:6.0.0"],\
          ["ejs", "npm:3.1.10"],\
          ["koa", "npm:2.14.2"],\
          ["koa-mount", "npm:4.0.0"],\
          ["koa-router", "npm:10.1.1"],\
          ["koa-static", "npm:5.0.0"],\
          ["koa-views", "virtual:47e7552797ac54a9c2afddff4b4e04d9d332a7c4ae9063d663783ce2e037b701b60b632afdcf95d0a9161f0abbca22d39846d9260e4899a8593e974d45bbf1e0#npm:7.0.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@bull-board/ui", [\
      ["npm:5.6.0", {\
        "packageLocation": "./.yarn/cache/@bull-board-ui-npm-5.6.0-6d3c013820-b7b982a983.zip/node_modules/@bull-board/ui/",\
        "packageDependencies": [\
          ["@bull-board/ui", "npm:5.6.0"],\
          ["@bull-board/api", "virtual:6d3c013820dba430e71ebb352cb5205445a13ea3c7a848f57a7ff58fb0d6469fe4d374280277dac42cb77a6dbf8e924e64f2f0b3413c28a02da9d890c199e6d7#npm:5.6.0"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:6.0.0", {\
        "packageLocation": "./.yarn/cache/@bull-board-ui-npm-6.0.0-1a204444c8-6d083063a3.zip/node_modules/@bull-board/ui/",\
        "packageDependencies": [\
          ["@bull-board/ui", "npm:6.0.0"],\
          ["@bull-board/api", "virtual:1a204444c80de4bcde4565c72a3b0d6571f4eb3f918d7d48d8cd7ddf8392bb94fcf59c7a20ab1f49717ca9715358d5e7cac35936b84d89d5579286a3dc50f306#npm:6.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@digitalbazaar/http-client", [\
      ["npm:3.4.1", {\
        "packageLocation": "./.yarn/cache/@digitalbazaar-http-client-npm-3.4.1-8f7eac0be7-a819dcbb20.zip/node_modules/@digitalbazaar/http-client/",\
        "packageDependencies": [\
          ["@digitalbazaar/http-client", "npm:3.4.1"],\
          ["ky", "npm:0.33.3"],\
          ["ky-universal", "virtual:8f7eac0be74664d725f06767d8b014c5441ef91d67e5f5b4d48b1eb4b262e4666123cac7be8dcbb99a7798fb4a21e6f4d9693a3957796c4a48c23e26af86514f#npm:0.11.0"],\
          ["undici", "npm:5.22.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@discordapp/twemoji", [\
      ["npm:16.0.1", {\
        "packageLocation": "./.yarn/unplugged/@discordapp-twemoji-npm-16.0.1-50d71ee905/node_modules/@discordapp/twemoji/",\
        "packageDependencies": [\
          ["@discordapp/twemoji", "npm:16.0.1"],\
          ["@twemoji/parser", "npm:16.0.0"],\
          ["fs-extra", "npm:8.1.0"],\
          ["jsonfile", "npm:5.0.0"],\
          ["universalify", "npm:0.1.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@emnapi/runtime", [\
      ["npm:1.3.1", {\
        "packageLocation": "./.yarn/cache/@emnapi-runtime-npm-1.3.1-64fd359241-619915ee44.zip/node_modules/@emnapi/runtime/",\
        "packageDependencies": [\
          ["@emnapi/runtime", "npm:1.3.1"],\
          ["tslib", "npm:2.6.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@eslint-community/eslint-utils", [\
      ["npm:4.4.0", {\
        "packageLocation": "./.yarn/cache/@eslint-community-eslint-utils-npm-4.4.0-d1791bd5a3-8d70bcdcd8.zip/node_modules/@eslint-community/eslint-utils/",\
        "packageDependencies": [\
          ["@eslint-community/eslint-utils", "npm:4.4.0"]\
        ],\
        "linkType": "SOFT"\
      }],\
      ["virtual:a03a909c3f5870829b2a1f1c58cd72dd0904272c636f0500be601a3bd781404d19a891ad23156b2b680426d08dbfc464b1e4ab195d463ee4ff16262a9e851f5e#npm:4.4.0", {\
        "packageLocation": "./.yarn/__virtual__/@eslint-community-eslint-utils-virtual-c51d166267/0/cache/@eslint-community-eslint-utils-npm-4.4.0-d1791bd5a3-8d70bcdcd8.zip/node_modules/@eslint-community/eslint-utils/",\
        "packageDependencies": [\
          ["@eslint-community/eslint-utils", "virtual:a03a909c3f5870829b2a1f1c58cd72dd0904272c636f0500be601a3bd781404d19a891ad23156b2b680426d08dbfc464b1e4ab195d463ee4ff16262a9e851f5e#npm:4.4.0"],\
          ["@types/eslint", null],\
          ["eslint", "npm:8.45.0"],\
          ["eslint-visitor-keys", "npm:3.4.1"]\
        ],\
        "packagePeers": [\
          "@types/eslint",\
          "eslint"\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@eslint-community/regexpp", [\
      ["npm:4.6.2", {\
        "packageLocation": "./.yarn/cache/@eslint-community-regexpp-npm-4.6.2-0fc083c210-59ea2fa13a.zip/node_modules/@eslint-community/regexpp/",\
        "packageDependencies": [\
          ["@eslint-community/regexpp", "npm:4.6.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@eslint/eslintrc", [\
      ["npm:2.1.0", {\
        "packageLocation": "./.yarn/cache/@eslint-eslintrc-npm-2.1.0-352060d453-923adf0fba.zip/node_modules/@eslint/eslintrc/",\
        "packageDependencies": [\
          ["@eslint/eslintrc", "npm:2.1.0"],\
          ["ajv", "npm:6.12.6"],\
          ["debug", "virtual:c8a47bd44e78262f6ba81f94852e5b6ec2a824806d82727a6ba6fdf6dc4be2b7d8b5dea8ceb347fa00fa505716d763276ebc48239b4faa6fbc5f8f9d2aa668e2#npm:4.3.4"],\
          ["espree", "npm:9.6.1"],\
          ["globals", "npm:13.20.0"],\
          ["ignore", "npm:5.2.4"],\
          ["import-fresh", "npm:3.3.0"],\
          ["js-yaml", "npm:4.1.0"],\
          ["minimatch", "npm:3.1.2"],\
          ["strip-json-comments", "npm:3.1.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@eslint/js", [\
      ["npm:8.44.0", {\
        "packageLocation": "./.yarn/cache/@eslint-js-npm-8.44.0-66b473d41b-06adec291c.zip/node_modules/@eslint/js/",\
        "packageDependencies": [\
          ["@eslint/js", "npm:8.44.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@humanwhocodes/config-array", [\
      ["npm:0.11.10", {\
        "packageLocation": "./.yarn/cache/@humanwhocodes-config-array-npm-0.11.10-7b63df9e7f-f93086ae6a.zip/node_modules/@humanwhocodes/config-array/",\
        "packageDependencies": [\
          ["@humanwhocodes/config-array", "npm:0.11.10"],\
          ["@humanwhocodes/object-schema", "npm:1.2.1"],\
          ["debug", "virtual:c8a47bd44e78262f6ba81f94852e5b6ec2a824806d82727a6ba6fdf6dc4be2b7d8b5dea8ceb347fa00fa505716d763276ebc48239b4faa6fbc5f8f9d2aa668e2#npm:4.3.4"],\
          ["minimatch", "npm:3.1.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@humanwhocodes/module-importer", [\
      ["npm:1.0.1", {\
        "packageLocation": "./.yarn/cache/@humanwhocodes-module-importer-npm-1.0.1-9d07ed2e4a-e993950e34.zip/node_modules/@humanwhocodes/module-importer/",\
        "packageDependencies": [\
          ["@humanwhocodes/module-importer", "npm:1.0.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@humanwhocodes/object-schema", [\
      ["npm:1.2.1", {\
        "packageLocation": "./.yarn/cache/@humanwhocodes-object-schema-npm-1.2.1-eb622b5d0e-b48a8f87fc.zip/node_modules/@humanwhocodes/object-schema/",\
        "packageDependencies": [\
          ["@humanwhocodes/object-schema", "npm:1.2.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@iceshrimp/summaly", [\
      ["npm:2.7.3::__archiveUrl=https%3A%2F%2Ficeshrimp.dev%2Fapi%2Fpackages%2Ficeshrimp%2Fnpm%2F%2540iceshrimp%252Fsummaly%2F-%2F2.7.3%2Fsummaly-2.7.3.tgz", {\
        "packageLocation": "./.yarn/cache/@iceshrimp-summaly-npm-2.7.3-74d1fab517-a8f0d0617b.zip/node_modules/@iceshrimp/summaly/",\
        "packageDependencies": [\
          ["@iceshrimp/summaly", "npm:2.7.3::__archiveUrl=https%3A%2F%2Ficeshrimp.dev%2Fapi%2Fpackages%2Ficeshrimp%2Fnpm%2F%2540iceshrimp%252Fsummaly%2F-%2F2.7.3%2Fsummaly-2.7.3.tgz"],\
          ["cheerio", "npm:0.22.0"],\
          ["debug", "virtual:74d1fab5177fa3d9b5330713f9165a97e07bf791e6588c23ea17dde3e0cee950bb18c0366fe88ff7556f854762863ea192e2ad8db90eee046b5cb7c387ad9e72#npm:4.3.3"],\
          ["escape-regexp", "npm:0.0.1"],\
          ["got", "npm:11.8.5"],\
          ["html-entities", "npm:2.3.2"],\
          ["iconv-lite", "npm:0.6.3"],\
          ["jschardet", "npm:3.0.0"],\
          ["koa", "npm:2.13.4"],\
          ["private-ip", "npm:2.3.3"],\
          ["require-all", "npm:3.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@img/sharp-darwin-arm64", [\
      ["npm:0.33.5", {\
        "packageLocation": "./.yarn/unplugged/@img-sharp-darwin-arm64-npm-0.33.5-c319591c53/node_modules/@img/sharp-darwin-arm64/",\
        "packageDependencies": [\
          ["@img/sharp-darwin-arm64", "npm:0.33.5"],\
          ["@img/sharp-libvips-darwin-arm64", "npm:1.0.4"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@img/sharp-darwin-x64", [\
      ["npm:0.33.5", {\
        "packageLocation": "./.yarn/unplugged/@img-sharp-darwin-x64-npm-0.33.5-785c54564a/node_modules/@img/sharp-darwin-x64/",\
        "packageDependencies": [\
          ["@img/sharp-darwin-x64", "npm:0.33.5"],\
          ["@img/sharp-libvips-darwin-x64", "npm:1.0.4"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@img/sharp-libvips-darwin-arm64", [\
      ["npm:1.0.4", {\
        "packageLocation": "./.yarn/unplugged/@img-sharp-libvips-darwin-arm64-npm-1.0.4-d0d063884a/node_modules/@img/sharp-libvips-darwin-arm64/",\
        "packageDependencies": [\
          ["@img/sharp-libvips-darwin-arm64", "npm:1.0.4"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@img/sharp-libvips-darwin-x64", [\
      ["npm:1.0.4", {\
        "packageLocation": "./.yarn/unplugged/@img-sharp-libvips-darwin-x64-npm-1.0.4-6fde8e50e0/node_modules/@img/sharp-libvips-darwin-x64/",\
        "packageDependencies": [\
          ["@img/sharp-libvips-darwin-x64", "npm:1.0.4"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@img/sharp-libvips-linux-arm", [\
      ["npm:1.0.5", {\
        "packageLocation": "./.yarn/unplugged/@img-sharp-libvips-linux-arm-npm-1.0.5-99ec104f55/node_modules/@img/sharp-libvips-linux-arm/",\
        "packageDependencies": [\
          ["@img/sharp-libvips-linux-arm", "npm:1.0.5"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@img/sharp-libvips-linux-arm64", [\
      ["npm:1.0.4", {\
        "packageLocation": "./.yarn/unplugged/@img-sharp-libvips-linux-arm64-npm-1.0.4-24a3d8b19a/node_modules/@img/sharp-libvips-linux-arm64/",\
        "packageDependencies": [\
          ["@img/sharp-libvips-linux-arm64", "npm:1.0.4"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@img/sharp-libvips-linux-s390x", [\
      ["npm:1.0.4", {\
        "packageLocation": "./.yarn/unplugged/@img-sharp-libvips-linux-s390x-npm-1.0.4-c4ea54fdc1/node_modules/@img/sharp-libvips-linux-s390x/",\
        "packageDependencies": [\
          ["@img/sharp-libvips-linux-s390x", "npm:1.0.4"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@img/sharp-libvips-linux-x64", [\
      ["npm:1.0.4", {\
        "packageLocation": "./.yarn/unplugged/@img-sharp-libvips-linux-x64-npm-1.0.4-0974f077b7/node_modules/@img/sharp-libvips-linux-x64/",\
        "packageDependencies": [\
          ["@img/sharp-libvips-linux-x64", "npm:1.0.4"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@img/sharp-libvips-linuxmusl-arm64", [\
      ["npm:1.0.4", {\
        "packageLocation": "./.yarn/unplugged/@img-sharp-libvips-linuxmusl-arm64-npm-1.0.4-c63b2fb991/node_modules/@img/sharp-libvips-linuxmusl-arm64/",\
        "packageDependencies": [\
          ["@img/sharp-libvips-linuxmusl-arm64", "npm:1.0.4"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@img/sharp-libvips-linuxmusl-x64", [\
      ["npm:1.0.4", {\
        "packageLocation": "./.yarn/unplugged/@img-sharp-libvips-linuxmusl-x64-npm-1.0.4-ea67a00cef/node_modules/@img/sharp-libvips-linuxmusl-x64/",\
        "packageDependencies": [\
          ["@img/sharp-libvips-linuxmusl-x64", "npm:1.0.4"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@img/sharp-linux-arm", [\
      ["npm:0.33.5", {\
        "packageLocation": "./.yarn/unplugged/@img-sharp-linux-arm-npm-0.33.5-2c7cd6ba15/node_modules/@img/sharp-linux-arm/",\
        "packageDependencies": [\
          ["@img/sharp-linux-arm", "npm:0.33.5"],\
          ["@img/sharp-libvips-linux-arm", "npm:1.0.5"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@img/sharp-linux-arm64", [\
      ["npm:0.33.5", {\
        "packageLocation": "./.yarn/unplugged/@img-sharp-linux-arm64-npm-0.33.5-9d6c17ffc3/node_modules/@img/sharp-linux-arm64/",\
        "packageDependencies": [\
          ["@img/sharp-linux-arm64", "npm:0.33.5"],\
          ["@img/sharp-libvips-linux-arm64", "npm:1.0.4"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@img/sharp-linux-s390x", [\
      ["npm:0.33.5", {\
        "packageLocation": "./.yarn/unplugged/@img-sharp-linux-s390x-npm-0.33.5-e9edc1d1ea/node_modules/@img/sharp-linux-s390x/",\
        "packageDependencies": [\
          ["@img/sharp-linux-s390x", "npm:0.33.5"],\
          ["@img/sharp-libvips-linux-s390x", "npm:1.0.4"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@img/sharp-linux-x64", [\
      ["npm:0.33.5", {\
        "packageLocation": "./.yarn/unplugged/@img-sharp-linux-x64-npm-0.33.5-1b6c430eb4/node_modules/@img/sharp-linux-x64/",\
        "packageDependencies": [\
          ["@img/sharp-linux-x64", "npm:0.33.5"],\
          ["@img/sharp-libvips-linux-x64", "npm:1.0.4"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@img/sharp-linuxmusl-arm64", [\
      ["npm:0.33.5", {\
        "packageLocation": "./.yarn/unplugged/@img-sharp-linuxmusl-arm64-npm-0.33.5-686a8ec1a7/node_modules/@img/sharp-linuxmusl-arm64/",\
        "packageDependencies": [\
          ["@img/sharp-linuxmusl-arm64", "npm:0.33.5"],\
          ["@img/sharp-libvips-linuxmusl-arm64", "npm:1.0.4"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@img/sharp-linuxmusl-x64", [\
      ["npm:0.33.5", {\
        "packageLocation": "./.yarn/unplugged/@img-sharp-linuxmusl-x64-npm-0.33.5-b88b11869b/node_modules/@img/sharp-linuxmusl-x64/",\
        "packageDependencies": [\
          ["@img/sharp-linuxmusl-x64", "npm:0.33.5"],\
          ["@img/sharp-libvips-linuxmusl-x64", "npm:1.0.4"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@img/sharp-wasm32", [\
      ["npm:0.33.5", {\
        "packageLocation": "./.yarn/unplugged/@img-sharp-wasm32-npm-0.33.5-e49bff60db/node_modules/@img/sharp-wasm32/",\
        "packageDependencies": [\
          ["@img/sharp-wasm32", "npm:0.33.5"],\
          ["@emnapi/runtime", "npm:1.3.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@img/sharp-win32-ia32", [\
      ["npm:0.33.5", {\
        "packageLocation": "./.yarn/unplugged/@img-sharp-win32-ia32-npm-0.33.5-531493b2d4/node_modules/@img/sharp-win32-ia32/",\
        "packageDependencies": [\
          ["@img/sharp-win32-ia32", "npm:0.33.5"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@img/sharp-win32-x64", [\
      ["npm:0.33.5", {\
        "packageLocation": "./.yarn/unplugged/@img-sharp-win32-x64-npm-0.33.5-e9e45d0448/node_modules/@img/sharp-win32-x64/",\
        "packageDependencies": [\
          ["@img/sharp-win32-x64", "npm:0.33.5"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@ioredis/commands", [\
      ["npm:1.2.0", {\
        "packageLocation": "./.yarn/cache/@ioredis-commands-npm-1.2.0-47541de88b-a8253c9539.zip/node_modules/@ioredis/commands/",\
        "packageDependencies": [\
          ["@ioredis/commands", "npm:1.2.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@isaacs/cliui", [\
      ["npm:8.0.2", {\
        "packageLocation": "./.yarn/cache/@isaacs-cliui-npm-8.0.2-f4364666d5-e9ed5fd27c.zip/node_modules/@isaacs/cliui/",\
        "packageDependencies": [\
          ["@isaacs/cliui", "npm:8.0.2"],\
          ["string-width", "npm:5.1.2"],\
          ["string-width-cjs", [\
            "string-width",\
            "npm:4.2.3"\
          ]],\
          ["strip-ansi", "npm:7.1.0"],\
          ["strip-ansi-cjs", [\
            "strip-ansi",\
            "npm:6.0.1"\
          ]],\
          ["wrap-ansi", "npm:8.1.0"],\
          ["wrap-ansi-cjs", [\
            "wrap-ansi",\
            "npm:7.0.0"\
          ]]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@isaacs/fs-minipass", [\
      ["npm:4.0.1", {\
        "packageLocation": "./.yarn/cache/@isaacs-fs-minipass-npm-4.0.1-677026e841-4412e9e671.zip/node_modules/@isaacs/fs-minipass/",\
        "packageDependencies": [\
          ["@isaacs/fs-minipass", "npm:4.0.1"],\
          ["minipass", "npm:7.1.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@jridgewell/gen-mapping", [\
      ["npm:0.3.3", {\
        "packageLocation": "./.yarn/cache/@jridgewell-gen-mapping-npm-0.3.3-1815eba94c-072ace159c.zip/node_modules/@jridgewell/gen-mapping/",\
        "packageDependencies": [\
          ["@jridgewell/gen-mapping", "npm:0.3.3"],\
          ["@jridgewell/set-array", "npm:1.1.2"],\
          ["@jridgewell/sourcemap-codec", "npm:1.4.15"],\
          ["@jridgewell/trace-mapping", "npm:0.3.18"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@jridgewell/resolve-uri", [\
      ["npm:3.1.0", {\
        "packageLocation": "./.yarn/cache/@jridgewell-resolve-uri-npm-3.1.0-6ff2351e61-320ceb37af.zip/node_modules/@jridgewell/resolve-uri/",\
        "packageDependencies": [\
          ["@jridgewell/resolve-uri", "npm:3.1.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@jridgewell/set-array", [\
      ["npm:1.1.2", {\
        "packageLocation": "./.yarn/cache/@jridgewell-set-array-npm-1.1.2-45b82d7fb6-69a84d5980.zip/node_modules/@jridgewell/set-array/",\
        "packageDependencies": [\
          ["@jridgewell/set-array", "npm:1.1.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@jridgewell/sourcemap-codec", [\
      ["npm:1.4.14", {\
        "packageLocation": "./.yarn/cache/@jridgewell-sourcemap-codec-npm-1.4.14-f5f0630788-26e768fae6.zip/node_modules/@jridgewell/sourcemap-codec/",\
        "packageDependencies": [\
          ["@jridgewell/sourcemap-codec", "npm:1.4.14"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:1.4.15", {\
        "packageLocation": "./.yarn/cache/@jridgewell-sourcemap-codec-npm-1.4.15-a055fb62cf-89960ac087.zip/node_modules/@jridgewell/sourcemap-codec/",\
        "packageDependencies": [\
          ["@jridgewell/sourcemap-codec", "npm:1.4.15"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@jridgewell/trace-mapping", [\
      ["npm:0.3.18", {\
        "packageLocation": "./.yarn/cache/@jridgewell-trace-mapping-npm-0.3.18-cd96571385-f4fabdddf8.zip/node_modules/@jridgewell/trace-mapping/",\
        "packageDependencies": [\
          ["@jridgewell/trace-mapping", "npm:0.3.18"],\
          ["@jridgewell/resolve-uri", "npm:3.1.0"],\
          ["@jridgewell/sourcemap-codec", "npm:1.4.14"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@koa/cors", [\
      ["npm:3.4.3", {\
        "packageLocation": "./.yarn/cache/@koa-cors-npm-3.4.3-2713c012f1-7e91b661a2.zip/node_modules/@koa/cors/",\
        "packageDependencies": [\
          ["@koa/cors", "npm:3.4.3"],\
          ["vary", "npm:1.1.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@koa/multer", [\
      ["npm:3.0.2", {\
        "packageLocation": "./.yarn/cache/@koa-multer-npm-3.0.2-f015419f43-6e66e4cf6d.zip/node_modules/@koa/multer/",\
        "packageDependencies": [\
          ["@koa/multer", "npm:3.0.2"]\
        ],\
        "linkType": "SOFT"\
      }],\
      ["virtual:aa59773ac87791c4813d53447077fcf8a847d6de5a301d34dc31286584b1dbb26d30d3adb5b4c41c1e8aea04371e926fda05c09c6253647c432e11d872a304ba#npm:3.0.2", {\
        "packageLocation": "./.yarn/__virtual__/@koa-multer-virtual-8f922d730f/0/cache/@koa-multer-npm-3.0.2-f015419f43-6e66e4cf6d.zip/node_modules/@koa/multer/",\
        "packageDependencies": [\
          ["@koa/multer", "virtual:aa59773ac87791c4813d53447077fcf8a847d6de5a301d34dc31286584b1dbb26d30d3adb5b4c41c1e8aea04371e926fda05c09c6253647c432e11d872a304ba#npm:3.0.2"],\
          ["@types/multer", null],\
          ["fix-esm", "npm:1.0.1"],\
          ["multer", "npm:1.4.4-lts.1"]\
        ],\
        "packagePeers": [\
          "@types/multer",\
          "multer"\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@koa/router", [\
      ["npm:9.0.1", {\
        "packageLocation": "./.yarn/cache/@koa-router-npm-9.0.1-1df2e7d8d0-bd13ffa9e3.zip/node_modules/@koa/router/",\
        "packageDependencies": [\
          ["@koa/router", "npm:9.0.1"],\
          ["debug", "virtual:c8a47bd44e78262f6ba81f94852e5b6ec2a824806d82727a6ba6fdf6dc4be2b7d8b5dea8ceb347fa00fa505716d763276ebc48239b4faa6fbc5f8f9d2aa668e2#npm:4.3.4"],\
          ["http-errors", "npm:1.8.1"],\
          ["koa-compose", "npm:4.1.0"],\
          ["methods", "npm:1.1.2"],\
          ["path-to-regexp", "npm:6.2.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@mapbox/node-pre-gyp", [\
      ["npm:1.0.11", {\
        "packageLocation": "./.yarn/cache/@mapbox-node-pre-gyp-npm-1.0.11-5547f15a2b-59529a2444.zip/node_modules/@mapbox/node-pre-gyp/",\
        "packageDependencies": [\
          ["@mapbox/node-pre-gyp", "npm:1.0.11"],\
          ["detect-libc", "npm:2.0.2"],\
          ["https-proxy-agent", "npm:5.0.1"],\
          ["make-dir", "npm:3.1.0"],\
          ["node-fetch", "virtual:5547f15a2bb3d361d141532d43f94523f31e9edfe533f8367b3e26e300194e2978be03f56c09e100afcfee4c02b7fbe13c6ffcf58c613b457a86da522a2979f2#npm:2.6.12"],\
          ["nopt", "npm:5.0.0"],\
          ["npmlog", "npm:5.0.1"],\
          ["rimraf", "npm:3.0.2"],\
          ["semver", "npm:7.5.4"],\
          ["tar", "npm:6.1.15"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@msgpackr-extract/msgpackr-extract-darwin-arm64", [\
      ["npm:3.0.2", {\
        "packageLocation": "./.yarn/unplugged/@msgpackr-extract-msgpackr-extract-darwin-arm64-npm-3.0.2-18ac236cc4/node_modules/@msgpackr-extract/msgpackr-extract-darwin-arm64/",\
        "packageDependencies": [\
          ["@msgpackr-extract/msgpackr-extract-darwin-arm64", "npm:3.0.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@msgpackr-extract/msgpackr-extract-darwin-x64", [\
      ["npm:3.0.2", {\
        "packageLocation": "./.yarn/unplugged/@msgpackr-extract-msgpackr-extract-darwin-x64-npm-3.0.2-39dd07082a/node_modules/@msgpackr-extract/msgpackr-extract-darwin-x64/",\
        "packageDependencies": [\
          ["@msgpackr-extract/msgpackr-extract-darwin-x64", "npm:3.0.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@msgpackr-extract/msgpackr-extract-linux-arm", [\
      ["npm:3.0.2", {\
        "packageLocation": "./.yarn/unplugged/@msgpackr-extract-msgpackr-extract-linux-arm-npm-3.0.2-808a652e0b/node_modules/@msgpackr-extract/msgpackr-extract-linux-arm/",\
        "packageDependencies": [\
          ["@msgpackr-extract/msgpackr-extract-linux-arm", "npm:3.0.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@msgpackr-extract/msgpackr-extract-linux-arm64", [\
      ["npm:3.0.2", {\
        "packageLocation": "./.yarn/unplugged/@msgpackr-extract-msgpackr-extract-linux-arm64-npm-3.0.2-cfbf50d4c6/node_modules/@msgpackr-extract/msgpackr-extract-linux-arm64/",\
        "packageDependencies": [\
          ["@msgpackr-extract/msgpackr-extract-linux-arm64", "npm:3.0.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@msgpackr-extract/msgpackr-extract-linux-x64", [\
      ["npm:3.0.2", {\
        "packageLocation": "./.yarn/unplugged/@msgpackr-extract-msgpackr-extract-linux-x64-npm-3.0.2-262fca760d/node_modules/@msgpackr-extract/msgpackr-extract-linux-x64/",\
        "packageDependencies": [\
          ["@msgpackr-extract/msgpackr-extract-linux-x64", "npm:3.0.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@msgpackr-extract/msgpackr-extract-win32-x64", [\
      ["npm:3.0.2", {\
        "packageLocation": "./.yarn/unplugged/@msgpackr-extract-msgpackr-extract-win32-x64-npm-3.0.2-c627beab89/node_modules/@msgpackr-extract/msgpackr-extract-win32-x64/",\
        "packageDependencies": [\
          ["@msgpackr-extract/msgpackr-extract-win32-x64", "npm:3.0.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@noble/hashes", [\
      ["npm:1.3.2", {\
        "packageLocation": "./.yarn/cache/@noble-hashes-npm-1.3.2-1e619f9da0-685f59d2d4.zip/node_modules/@noble/hashes/",\
        "packageDependencies": [\
          ["@noble/hashes", "npm:1.3.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@nodelib/fs.scandir", [\
      ["npm:2.1.5", {\
        "packageLocation": "./.yarn/cache/@nodelib-fs.scandir-npm-2.1.5-89c67370dd-6ab2a9b8a1.zip/node_modules/@nodelib/fs.scandir/",\
        "packageDependencies": [\
          ["@nodelib/fs.scandir", "npm:2.1.5"],\
          ["@nodelib/fs.stat", "npm:2.0.5"],\
          ["run-parallel", "npm:1.2.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@nodelib/fs.stat", [\
      ["npm:2.0.5", {\
        "packageLocation": "./.yarn/cache/@nodelib-fs.stat-npm-2.0.5-01f4dd3030-012480b5ca.zip/node_modules/@nodelib/fs.stat/",\
        "packageDependencies": [\
          ["@nodelib/fs.stat", "npm:2.0.5"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@nodelib/fs.walk", [\
      ["npm:1.2.8", {\
        "packageLocation": "./.yarn/cache/@nodelib-fs.walk-npm-1.2.8-b4a89da548-40033e33e9.zip/node_modules/@nodelib/fs.walk/",\
        "packageDependencies": [\
          ["@nodelib/fs.walk", "npm:1.2.8"],\
          ["@nodelib/fs.scandir", "npm:2.1.5"],\
          ["fastq", "npm:1.15.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@npmcli/agent", [\
      ["npm:3.0.0", {\
        "packageLocation": "./.yarn/cache/@npmcli-agent-npm-3.0.0-169e79294f-775c9a7eb1.zip/node_modules/@npmcli/agent/",\
        "packageDependencies": [\
          ["@npmcli/agent", "npm:3.0.0"],\
          ["agent-base", "npm:7.1.0"],\
          ["http-proxy-agent", "npm:7.0.0"],\
          ["https-proxy-agent", "npm:7.0.2"],\
          ["lru-cache", "npm:10.0.2"],\
          ["socks-proxy-agent", "npm:8.0.5"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@npmcli/fs", [\
      ["npm:3.1.0", {\
        "packageLocation": "./.yarn/cache/@npmcli-fs-npm-3.1.0-0844a57978-f3a7ab3a31.zip/node_modules/@npmcli/fs/",\
        "packageDependencies": [\
          ["@npmcli/fs", "npm:3.1.0"],\
          ["semver", "npm:7.5.4"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:4.0.0", {\
        "packageLocation": "./.yarn/cache/@npmcli-fs-npm-4.0.0-1d9cc8a27b-405c4490e1.zip/node_modules/@npmcli/fs/",\
        "packageDependencies": [\
          ["@npmcli/fs", "npm:4.0.0"],\
          ["semver", "npm:7.5.4"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@one-ini/wasm", [\
      ["npm:0.1.1", {\
        "packageLocation": "./.yarn/cache/@one-ini-wasm-npm-0.1.1-cee8120e33-673c11518d.zip/node_modules/@one-ini/wasm/",\
        "packageDependencies": [\
          ["@one-ini/wasm", "npm:0.1.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@opentelemetry/api", [\
      ["npm:1.7.0", {\
        "packageLocation": "./.yarn/cache/@opentelemetry-api-npm-1.7.0-6263fad98a-bcf7afa705.zip/node_modules/@opentelemetry/api/",\
        "packageDependencies": [\
          ["@opentelemetry/api", "npm:1.7.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@paralleldrive/cuid2", [\
      ["npm:2.2.2", {\
        "packageLocation": "./.yarn/cache/@paralleldrive-cuid2-npm-2.2.2-e6061749b2-40ee269d6e.zip/node_modules/@paralleldrive/cuid2/",\
        "packageDependencies": [\
          ["@paralleldrive/cuid2", "npm:2.2.2"],\
          ["@noble/hashes", "npm:1.3.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@peertube/http-signature", [\
      ["npm:1.7.0", {\
        "packageLocation": "./.yarn/cache/@peertube-http-signature-npm-1.7.0-86ceb52221-a4dd004ad9.zip/node_modules/@peertube/http-signature/",\
        "packageDependencies": [\
          ["@peertube/http-signature", "npm:1.7.0"],\
          ["assert-plus", "npm:1.0.0"],\
          ["jsprim", "npm:1.4.2"],\
          ["sshpk", "npm:1.17.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@phc/format", [\
      ["npm:1.0.0", {\
        "packageLocation": "./.yarn/cache/@phc-format-npm-1.0.0-9663606e18-26c4feccdc.zip/node_modules/@phc/format/",\
        "packageDependencies": [\
          ["@phc/format", "npm:1.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@pkgjs/parseargs", [\
      ["npm:0.11.0", {\
        "packageLocation": "./.yarn/cache/@pkgjs-parseargs-npm-0.11.0-cd2a3fe948-115e8ceeec.zip/node_modules/@pkgjs/parseargs/",\
        "packageDependencies": [\
          ["@pkgjs/parseargs", "npm:0.11.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@sindresorhus/is", [\
      ["npm:4.6.0", {\
        "packageLocation": "./.yarn/cache/@sindresorhus-is-npm-4.6.0-7cad05c55e-e7f36ed72a.zip/node_modules/@sindresorhus/is/",\
        "packageDependencies": [\
          ["@sindresorhus/is", "npm:4.6.0"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:5.6.0", {\
        "packageLocation": "./.yarn/cache/@sindresorhus-is-npm-5.6.0-a25321ecc2-b077c325ac.zip/node_modules/@sindresorhus/is/",\
        "packageDependencies": [\
          ["@sindresorhus/is", "npm:5.6.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@sqltools/formatter", [\
      ["npm:1.2.5", {\
        "packageLocation": "./.yarn/cache/@sqltools-formatter-npm-1.2.5-709e7c0ab8-ce9335025c.zip/node_modules/@sqltools/formatter/",\
        "packageDependencies": [\
          ["@sqltools/formatter", "npm:1.2.5"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@swc/core-android-arm64", [\
      ["npm:1.3.11", {\
        "packageLocation": "./.yarn/unplugged/@swc-core-android-arm64-npm-1.3.11-907d2c4730/node_modules/@swc/core-android-arm64/",\
        "packageDependencies": [\
          ["@swc/core-android-arm64", "npm:1.3.11"],\
          ["@swc/wasm", "npm:1.2.130"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@swc/wasm", [\
      ["npm:1.2.130", {\
        "packageLocation": "./.yarn/cache/@swc-wasm-npm-1.2.130-aa6df1a820-a0a12de133.zip/node_modules/@swc/wasm/",\
        "packageDependencies": [\
          ["@swc/wasm", "npm:1.2.130"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@szmarczak/http-timer", [\
      ["npm:4.0.6", {\
        "packageLocation": "./.yarn/cache/@szmarczak-http-timer-npm-4.0.6-6ace00d82d-c29df3bcec.zip/node_modules/@szmarczak/http-timer/",\
        "packageDependencies": [\
          ["@szmarczak/http-timer", "npm:4.0.6"],\
          ["defer-to-connect", "npm:2.0.1"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:5.0.1", {\
        "packageLocation": "./.yarn/cache/@szmarczak-http-timer-npm-5.0.1-52261e5986-fc9cb993e8.zip/node_modules/@szmarczak/http-timer/",\
        "packageDependencies": [\
          ["@szmarczak/http-timer", "npm:5.0.1"],\
          ["defer-to-connect", "npm:2.0.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@tokenizer/token", [\
      ["npm:0.3.0", {\
        "packageLocation": "./.yarn/cache/@tokenizer-token-npm-0.3.0-4441352cc5-889c1f1e63.zip/node_modules/@tokenizer/token/",\
        "packageDependencies": [\
          ["@tokenizer/token", "npm:0.3.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@tootallnate/once", [\
      ["npm:2.0.0", {\
        "packageLocation": "./.yarn/cache/@tootallnate-once-npm-2.0.0-e36cf4f140-ad87447820.zip/node_modules/@tootallnate/once/",\
        "packageDependencies": [\
          ["@tootallnate/once", "npm:2.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@twemoji/parser", [\
      ["npm:16.0.0", {\
        "packageLocation": "./.yarn/cache/@twemoji-parser-npm-16.0.0-4b53c6bc88-05bf357192.zip/node_modules/@twemoji/parser/",\
        "packageDependencies": [\
          ["@twemoji/parser", "npm:16.0.0"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:17.0.1", {\
        "packageLocation": "./.yarn/cache/@twemoji-parser-npm-17.0.1-a06a3acdab-814922e3e2.zip/node_modules/@twemoji/parser/",\
        "packageDependencies": [\
          ["@twemoji/parser", "npm:17.0.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@types/accepts", [\
      ["npm:1.3.5", {\
        "packageLocation": "./.yarn/cache/@types-accepts-npm-1.3.5-1d59cd2a7a-3984edd631.zip/node_modules/@types/accepts/",\
        "packageDependencies": [\
          ["@types/accepts", "npm:1.3.5"],\
          ["@types/node", "npm:20.4.5"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@types/body-parser", [\
      ["npm:1.19.2", {\
        "packageLocation": "./.yarn/cache/@types-body-parser-npm-1.19.2-f845b7b538-e17840c7d7.zip/node_modules/@types/body-parser/",\
        "packageDependencies": [\
          ["@types/body-parser", "npm:1.19.2"],\
          ["@types/connect", "npm:3.4.35"],\
          ["@types/node", "npm:20.4.5"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@types/cacheable-request", [\
      ["npm:6.0.3", {\
        "packageLocation": "./.yarn/cache/@types-cacheable-request-npm-6.0.3-770619032a-159f9fdb2a.zip/node_modules/@types/cacheable-request/",\
        "packageDependencies": [\
          ["@types/cacheable-request", "npm:6.0.3"],\
          ["@types/http-cache-semantics", "npm:4.0.1"],\
          ["@types/keyv", "npm:3.1.4"],\
          ["@types/node", "npm:20.4.5"],\
          ["@types/responselike", "npm:1.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@types/co-body", [\
      ["npm:6.1.0", {\
        "packageLocation": "./.yarn/cache/@types-co-body-npm-6.1.0-9c84c63ec0-95de9fe423.zip/node_modules/@types/co-body/",\
        "packageDependencies": [\
          ["@types/co-body", "npm:6.1.0"],\
          ["@types/node", "npm:20.4.5"],\
          ["@types/qs", "npm:6.9.7"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@types/connect", [\
      ["npm:3.4.35", {\
        "packageLocation": "./.yarn/cache/@types-connect-npm-3.4.35-7337eee0a3-fe81351470.zip/node_modules/@types/connect/",\
        "packageDependencies": [\
          ["@types/connect", "npm:3.4.35"],\
          ["@types/node", "npm:20.4.5"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@types/content-disposition", [\
      ["npm:0.5.5", {\
        "packageLocation": "./.yarn/cache/@types-content-disposition-npm-0.5.5-2219aba782-fdf7379db1.zip/node_modules/@types/content-disposition/",\
        "packageDependencies": [\
          ["@types/content-disposition", "npm:0.5.5"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@types/cookies", [\
      ["npm:0.7.7", {\
        "packageLocation": "./.yarn/cache/@types-cookies-npm-0.7.7-0fbdd53be5-0571f0f1da.zip/node_modules/@types/cookies/",\
        "packageDependencies": [\
          ["@types/cookies", "npm:0.7.7"],\
          ["@types/connect", "npm:3.4.35"],\
          ["@types/express", "npm:4.17.17"],\
          ["@types/keygrip", "npm:1.0.2"],\
          ["@types/node", "npm:20.4.5"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@types/disposable-email-domains", [\
      ["npm:1.0.4", {\
        "packageLocation": "./.yarn/cache/@types-disposable-email-domains-npm-1.0.4-07039890e8-cdcd6e04c3.zip/node_modules/@types/disposable-email-domains/",\
        "packageDependencies": [\
          ["@types/disposable-email-domains", "npm:1.0.4"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@types/express", [\
      ["npm:4.17.17", {\
        "packageLocation": "./.yarn/cache/@types-express-npm-4.17.17-46fe8173db-e2959a5fec.zip/node_modules/@types/express/",\
        "packageDependencies": [\
          ["@types/express", "npm:4.17.17"],\
          ["@types/body-parser", "npm:1.19.2"],\
          ["@types/express-serve-static-core", "npm:4.17.35"],\
          ["@types/qs", "npm:6.9.7"],\
          ["@types/serve-static", "npm:1.15.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@types/express-serve-static-core", [\
      ["npm:4.17.35", {\
        "packageLocation": "./.yarn/cache/@types-express-serve-static-core-npm-4.17.35-c86e5f6e4a-9f08212ac1.zip/node_modules/@types/express-serve-static-core/",\
        "packageDependencies": [\
          ["@types/express-serve-static-core", "npm:4.17.35"],\
          ["@types/node", "npm:20.4.5"],\
          ["@types/qs", "npm:6.9.7"],\
          ["@types/range-parser", "npm:1.2.4"],\
          ["@types/send", "npm:0.17.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@types/formidable", [\
      ["npm:2.0.6", {\
        "packageLocation": "./.yarn/cache/@types-formidable-npm-2.0.6-94d53f71b6-808a9bc112.zip/node_modules/@types/formidable/",\
        "packageDependencies": [\
          ["@types/formidable", "npm:2.0.6"],\
          ["@types/node", "npm:20.4.5"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@types/http-assert", [\
      ["npm:1.5.3", {\
        "packageLocation": "./.yarn/cache/@types-http-assert-npm-1.5.3-d45bf58309-9553e5a0b8.zip/node_modules/@types/http-assert/",\
        "packageDependencies": [\
          ["@types/http-assert", "npm:1.5.3"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@types/http-cache-semantics", [\
      ["npm:4.0.1", {\
        "packageLocation": "./.yarn/cache/@types-http-cache-semantics-npm-4.0.1-90863c7a3e-d059bf8a15.zip/node_modules/@types/http-cache-semantics/",\
        "packageDependencies": [\
          ["@types/http-cache-semantics", "npm:4.0.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@types/http-errors", [\
      ["npm:2.0.1", {\
        "packageLocation": "./.yarn/cache/@types-http-errors-npm-2.0.1-c59d5079a7-3bb0c50b0a.zip/node_modules/@types/http-errors/",\
        "packageDependencies": [\
          ["@types/http-errors", "npm:2.0.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@types/keygrip", [\
      ["npm:1.0.2", {\
        "packageLocation": "./.yarn/cache/@types-keygrip-npm-1.0.2-2e57be51bc-60bc2738a4.zip/node_modules/@types/keygrip/",\
        "packageDependencies": [\
          ["@types/keygrip", "npm:1.0.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@types/keyv", [\
      ["npm:3.1.4", {\
        "packageLocation": "./.yarn/cache/@types-keyv-npm-3.1.4-a8082ea56b-e009a2bfb5.zip/node_modules/@types/keyv/",\
        "packageDependencies": [\
          ["@types/keyv", "npm:3.1.4"],\
          ["@types/node", "npm:20.4.5"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@types/koa", [\
      ["npm:2.13.7", {\
        "packageLocation": "./.yarn/cache/@types-koa-npm-2.13.7-240d3cdcf2-4856cb68f7.zip/node_modules/@types/koa/",\
        "packageDependencies": [\
          ["@types/koa", "npm:2.13.7"],\
          ["@types/accepts", "npm:1.3.5"],\
          ["@types/content-disposition", "npm:0.5.5"],\
          ["@types/cookies", "npm:0.7.7"],\
          ["@types/http-assert", "npm:1.5.3"],\
          ["@types/http-errors", "npm:2.0.1"],\
          ["@types/keygrip", "npm:1.0.2"],\
          ["@types/koa-compose", "npm:3.2.5"],\
          ["@types/node", "npm:20.4.5"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@types/koa-compose", [\
      ["npm:3.2.5", {\
        "packageLocation": "./.yarn/cache/@types-koa-compose-npm-3.2.5-b9ab25d904-0f46016227.zip/node_modules/@types/koa-compose/",\
        "packageDependencies": [\
          ["@types/koa-compose", "npm:3.2.5"],\
          ["@types/koa", "npm:2.13.7"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@types/mime", [\
      ["npm:1.3.2", {\
        "packageLocation": "./.yarn/cache/@types-mime-npm-1.3.2-ea71878ab3-0493368244.zip/node_modules/@types/mime/",\
        "packageDependencies": [\
          ["@types/mime", "npm:1.3.2"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:3.0.1", {\
        "packageLocation": "./.yarn/cache/@types-mime-npm-3.0.1-dec03536dc-4040fac73f.zip/node_modules/@types/mime/",\
        "packageDependencies": [\
          ["@types/mime", "npm:3.0.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@types/node", [\
      ["npm:20.4.5", {\
        "packageLocation": "./.yarn/cache/@types-node-npm-20.4.5-7555fad0d4-aa31081f82.zip/node_modules/@types/node/",\
        "packageDependencies": [\
          ["@types/node", "npm:20.4.5"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@types/qs", [\
      ["npm:6.9.7", {\
        "packageLocation": "./.yarn/cache/@types-qs-npm-6.9.7-4a3e6ca0d0-7fd6f9c250.zip/node_modules/@types/qs/",\
        "packageDependencies": [\
          ["@types/qs", "npm:6.9.7"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@types/range-parser", [\
      ["npm:1.2.4", {\
        "packageLocation": "./.yarn/cache/@types-range-parser-npm-1.2.4-23d797fbde-b7c0dfd508.zip/node_modules/@types/range-parser/",\
        "packageDependencies": [\
          ["@types/range-parser", "npm:1.2.4"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@types/responselike", [\
      ["npm:1.0.0", {\
        "packageLocation": "./.yarn/cache/@types-responselike-npm-1.0.0-85dd08af42-e497238945.zip/node_modules/@types/responselike/",\
        "packageDependencies": [\
          ["@types/responselike", "npm:1.0.0"],\
          ["@types/node", "npm:20.4.5"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@types/send", [\
      ["npm:0.17.1", {\
        "packageLocation": "./.yarn/cache/@types-send-npm-0.17.1-5f715ca966-6420837887.zip/node_modules/@types/send/",\
        "packageDependencies": [\
          ["@types/send", "npm:0.17.1"],\
          ["@types/mime", "npm:1.3.2"],\
          ["@types/node", "npm:20.4.5"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["@types/serve-static", [\
      ["npm:1.15.2", {\
        "packageLocation": "./.yarn/cache/@types-serve-static-npm-1.15.2-fc398c0cea-d5f8f5aaa7.zip/node_modules/@types/serve-static/",\
        "packageDependencies": [\
          ["@types/serve-static", "npm:1.15.2"],\
          ["@types/http-errors", "npm:2.0.1"],\
          ["@types/mime", "npm:3.0.1"],\
          ["@types/node", "npm:20.4.5"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["abab", [\
      ["npm:2.0.6", {\
        "packageLocation": "./.yarn/cache/abab-npm-2.0.6-2662fba7f0-ebe95d7278.zip/node_modules/abab/",\
        "packageDependencies": [\
          ["abab", "npm:2.0.6"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["abbrev", [\
      ["npm:1.1.1", {\
        "packageLocation": "./.yarn/cache/abbrev-npm-1.1.1-3659247eab-2d88294118.zip/node_modules/abbrev/",\
        "packageDependencies": [\
          ["abbrev", "npm:1.1.1"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:3.0.1", {\
        "packageLocation": "./.yarn/cache/abbrev-npm-3.0.1-a34d600e50-ebd2c149dd.zip/node_modules/abbrev/",\
        "packageDependencies": [\
          ["abbrev", "npm:3.0.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["abort-controller", [\
      ["npm:3.0.0", {\
        "packageLocation": "./.yarn/cache/abort-controller-npm-3.0.0-2f3a9a2bcb-ed84af329f.zip/node_modules/abort-controller/",\
        "packageDependencies": [\
          ["abort-controller", "npm:3.0.0"],\
          ["event-target-shim", "npm:5.0.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["accepts", [\
      ["npm:1.3.8", {\
        "packageLocation": "./.yarn/cache/accepts-npm-1.3.8-9a812371c9-67eaaa90e2.zip/node_modules/accepts/",\
        "packageDependencies": [\
          ["accepts", "npm:1.3.8"],\
          ["mime-types", "npm:2.1.35"],\
          ["negotiator", "npm:0.6.3"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["acorn", [\
      ["npm:7.4.1", {\
        "packageLocation": "./.yarn/cache/acorn-npm-7.4.1-f450b4646c-8be2a40714.zip/node_modules/acorn/",\
        "packageDependencies": [\
          ["acorn", "npm:7.4.1"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:8.10.0", {\
        "packageLocation": "./.yarn/cache/acorn-npm-8.10.0-2230c9e83e-522310c20f.zip/node_modules/acorn/",\
        "packageDependencies": [\
          ["acorn", "npm:8.10.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["acorn-globals", [\
      ["npm:7.0.1", {\
        "packageLocation": "./.yarn/cache/acorn-globals-npm-7.0.1-97c48c0140-2a2998a547.zip/node_modules/acorn-globals/",\
        "packageDependencies": [\
          ["acorn-globals", "npm:7.0.1"],\
          ["acorn", "npm:8.10.0"],\
          ["acorn-walk", "npm:8.2.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["acorn-jsx", [\
      ["npm:5.3.2", {\
        "packageLocation": "./.yarn/cache/acorn-jsx-npm-5.3.2-d7594599ea-d4371eaef7.zip/node_modules/acorn-jsx/",\
        "packageDependencies": [\
          ["acorn-jsx", "npm:5.3.2"]\
        ],\
        "linkType": "SOFT"\
      }],\
      ["virtual:a50722a5a9326b6a5f12350c494c4db3aa0f4caeac45e3e9e5fe071da20014ecfe738fe2ebe2c9c98abae81a4ea86b42f56d776b3bd5ec37f9ad3670c242b242#npm:5.3.2", {\
        "packageLocation": "./.yarn/__virtual__/acorn-jsx-virtual-834321b202/0/cache/acorn-jsx-npm-5.3.2-d7594599ea-d4371eaef7.zip/node_modules/acorn-jsx/",\
        "packageDependencies": [\
          ["acorn-jsx", "virtual:a50722a5a9326b6a5f12350c494c4db3aa0f4caeac45e3e9e5fe071da20014ecfe738fe2ebe2c9c98abae81a4ea86b42f56d776b3bd5ec37f9ad3670c242b242#npm:5.3.2"],\
          ["@types/acorn", null],\
          ["acorn", "npm:8.10.0"]\
        ],\
        "packagePeers": [\
          "@types/acorn",\
          "acorn"\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["acorn-walk", [\
      ["npm:8.2.0", {\
        "packageLocation": "./.yarn/cache/acorn-walk-npm-8.2.0-2f2cac3177-e69f7234f2.zip/node_modules/acorn-walk/",\
        "packageDependencies": [\
          ["acorn-walk", "npm:8.2.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["adm-zip", [\
      ["npm:0.5.10", {\
        "packageLocation": "./.yarn/cache/adm-zip-npm-0.5.10-17a872f2fd-c5ab79b771.zip/node_modules/adm-zip/",\
        "packageDependencies": [\
          ["adm-zip", "npm:0.5.10"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["agent-base", [\
      ["npm:6.0.2", {\
        "packageLocation": "./.yarn/cache/agent-base-npm-6.0.2-428f325a93-21fb903e09.zip/node_modules/agent-base/",\
        "packageDependencies": [\
          ["agent-base", "npm:6.0.2"],\
          ["debug", "virtual:c8a47bd44e78262f6ba81f94852e5b6ec2a824806d82727a6ba6fdf6dc4be2b7d8b5dea8ceb347fa00fa505716d763276ebc48239b4faa6fbc5f8f9d2aa668e2#npm:4.3.4"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:7.1.0", {\
        "packageLocation": "./.yarn/cache/agent-base-npm-7.1.0-4b12ba5111-f7828f9914.zip/node_modules/agent-base/",\
        "packageDependencies": [\
          ["agent-base", "npm:7.1.0"],\
          ["debug", "virtual:c8a47bd44e78262f6ba81f94852e5b6ec2a824806d82727a6ba6fdf6dc4be2b7d8b5dea8ceb347fa00fa505716d763276ebc48239b4faa6fbc5f8f9d2aa668e2#npm:4.3.4"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:7.1.3", {\
        "packageLocation": "./.yarn/cache/agent-base-npm-7.1.3-b2c16e72fb-3db6d8d465.zip/node_modules/agent-base/",\
        "packageDependencies": [\
          ["agent-base", "npm:7.1.3"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["agentkeepalive", [\
      ["npm:4.3.0", {\
        "packageLocation": "./.yarn/cache/agentkeepalive-npm-4.3.0-ac3d8e6807-f791317eb4.zip/node_modules/agentkeepalive/",\
        "packageDependencies": [\
          ["agentkeepalive", "npm:4.3.0"],\
          ["debug", "virtual:c8a47bd44e78262f6ba81f94852e5b6ec2a824806d82727a6ba6fdf6dc4be2b7d8b5dea8ceb347fa00fa505716d763276ebc48239b4faa6fbc5f8f9d2aa668e2#npm:4.3.4"],\
          ["depd", "npm:2.0.0"],\
          ["humanize-ms", "npm:1.2.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["aggregate-error", [\
      ["npm:3.1.0", {\
        "packageLocation": "./.yarn/cache/aggregate-error-npm-3.1.0-415a406f4e-1101a33f21.zip/node_modules/aggregate-error/",\
        "packageDependencies": [\
          ["aggregate-error", "npm:3.1.0"],\
          ["clean-stack", "npm:2.2.0"],\
          ["indent-string", "npm:4.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["ajv", [\
      ["npm:6.12.6", {\
        "packageLocation": "./.yarn/cache/ajv-npm-6.12.6-4b5105e2b2-48d6ad2113.zip/node_modules/ajv/",\
        "packageDependencies": [\
          ["ajv", "npm:6.12.6"],\
          ["fast-deep-equal", "npm:3.1.3"],\
          ["fast-json-stable-stringify", "npm:2.1.0"],\
          ["json-schema-traverse", "npm:0.4.1"],\
          ["uri-js", "npm:4.4.1"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:8.12.0", {\
        "packageLocation": "./.yarn/cache/ajv-npm-8.12.0-3bf6e30741-b406f3b79b.zip/node_modules/ajv/",\
        "packageDependencies": [\
          ["ajv", "npm:8.12.0"],\
          ["fast-deep-equal", "npm:3.1.3"],\
          ["json-schema-traverse", "npm:1.0.0"],\
          ["require-from-string", "npm:2.0.2"],\
          ["uri-js", "npm:4.4.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["ansi-regex", [\
      ["npm:5.0.1", {\
        "packageLocation": "./.yarn/cache/ansi-regex-npm-5.0.1-c963a48615-2aa4bb54ca.zip/node_modules/ansi-regex/",\
        "packageDependencies": [\
          ["ansi-regex", "npm:5.0.1"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:6.0.1", {\
        "packageLocation": "./.yarn/cache/ansi-regex-npm-6.0.1-8d663a607d-1ff8b7667c.zip/node_modules/ansi-regex/",\
        "packageDependencies": [\
          ["ansi-regex", "npm:6.0.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["ansi-styles", [\
      ["npm:3.2.1", {\
        "packageLocation": "./.yarn/cache/ansi-styles-npm-3.2.1-8cb8107983-d85ade01c1.zip/node_modules/ansi-styles/",\
        "packageDependencies": [\
          ["ansi-styles", "npm:3.2.1"],\
          ["color-convert", "npm:1.9.3"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:4.3.0", {\
        "packageLocation": "./.yarn/cache/ansi-styles-npm-4.3.0-245c7d42c7-b4494dfbfc.zip/node_modules/ansi-styles/",\
        "packageDependencies": [\
          ["ansi-styles", "npm:4.3.0"],\
          ["color-convert", "npm:2.0.1"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:6.2.1", {\
        "packageLocation": "./.yarn/cache/ansi-styles-npm-6.2.1-d43647018c-70fdf883b7.zip/node_modules/ansi-styles/",\
        "packageDependencies": [\
          ["ansi-styles", "npm:6.2.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["any-promise", [\
      ["npm:1.3.0", {\
        "packageLocation": "./.yarn/cache/any-promise-npm-1.3.0-f34eeaa7e7-6737469ba3.zip/node_modules/any-promise/",\
        "packageDependencies": [\
          ["any-promise", "npm:1.3.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["app-root-path", [\
      ["npm:3.1.0", {\
        "packageLocation": "./.yarn/cache/app-root-path-npm-3.1.0-9822bb2a96-b4cdab5f7e.zip/node_modules/app-root-path/",\
        "packageDependencies": [\
          ["app-root-path", "npm:3.1.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["append-field", [\
      ["npm:1.0.0", {\
        "packageLocation": "./.yarn/cache/append-field-npm-1.0.0-bb98be199c-afb50f5ff6.zip/node_modules/append-field/",\
        "packageDependencies": [\
          ["append-field", "npm:1.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["aproba", [\
      ["npm:2.0.0", {\
        "packageLocation": "./.yarn/cache/aproba-npm-2.0.0-8716bcfde6-c2b9a63129.zip/node_modules/aproba/",\
        "packageDependencies": [\
          ["aproba", "npm:2.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["archiver", [\
      ["npm:5.3.1", {\
        "packageLocation": "./.yarn/cache/archiver-npm-5.3.1-db84171f80-f77b575694.zip/node_modules/archiver/",\
        "packageDependencies": [\
          ["archiver", "npm:5.3.1"],\
          ["archiver-utils", "npm:2.1.0"],\
          ["async", "npm:3.2.4"],\
          ["buffer-crc32", "npm:0.2.13"],\
          ["readable-stream", "npm:3.6.2"],\
          ["readdir-glob", "npm:1.1.3"],\
          ["tar-stream", "npm:2.2.0"],\
          ["zip-stream", "npm:4.1.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["archiver-utils", [\
      ["npm:2.1.0", {\
        "packageLocation": "./.yarn/cache/archiver-utils-npm-2.1.0-c06ce16cc3-4df493c0e6.zip/node_modules/archiver-utils/",\
        "packageDependencies": [\
          ["archiver-utils", "npm:2.1.0"],\
          ["glob", "npm:7.2.3"],\
          ["graceful-fs", "npm:4.2.11"],\
          ["lazystream", "npm:1.0.1"],\
          ["lodash.defaults", "npm:4.2.0"],\
          ["lodash.difference", "npm:4.5.0"],\
          ["lodash.flatten", "npm:4.4.0"],\
          ["lodash.isplainobject", "npm:4.0.6"],\
          ["lodash.union", "npm:4.6.0"],\
          ["normalize-path", "npm:3.0.0"],\
          ["readable-stream", "npm:2.3.8"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["are-we-there-yet", [\
      ["npm:2.0.0", {\
        "packageLocation": "./.yarn/cache/are-we-there-yet-npm-2.0.0-7d2f5201ce-ea6f47d14f.zip/node_modules/are-we-there-yet/",\
        "packageDependencies": [\
          ["are-we-there-yet", "npm:2.0.0"],\
          ["delegates", "npm:1.0.0"],\
          ["readable-stream", "npm:3.6.2"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:3.0.1", {\
        "packageLocation": "./.yarn/cache/are-we-there-yet-npm-3.0.1-3395b1512f-390731720e.zip/node_modules/are-we-there-yet/",\
        "packageDependencies": [\
          ["are-we-there-yet", "npm:3.0.1"],\
          ["delegates", "npm:1.0.0"],\
          ["readable-stream", "npm:3.6.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["argon2", [\
      ["npm:0.30.3", {\
        "packageLocation": "./.yarn/unplugged/argon2-npm-0.30.3-26d693a42c/node_modules/argon2/",\
        "packageDependencies": [\
          ["argon2", "npm:0.30.3"],\
          ["@mapbox/node-pre-gyp", "npm:1.0.11"],\
          ["@phc/format", "npm:1.0.0"],\
          ["node-addon-api", "npm:5.1.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["argparse", [\
      ["npm:2.0.1", {\
        "packageLocation": "./.yarn/cache/argparse-npm-2.0.1-faff7999e6-18640244e6.zip/node_modules/argparse/",\
        "packageDependencies": [\
          ["argparse", "npm:2.0.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["asap", [\
      ["npm:2.0.6", {\
        "packageLocation": "./.yarn/cache/asap-npm-2.0.6-36714d439d-b244c0458c.zip/node_modules/asap/",\
        "packageDependencies": [\
          ["asap", "npm:2.0.6"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["asn1", [\
      ["npm:0.2.6", {\
        "packageLocation": "./.yarn/cache/asn1-npm-0.2.6-bdd07356c4-cf629291fe.zip/node_modules/asn1/",\
        "packageDependencies": [\
          ["asn1", "npm:0.2.6"],\
          ["safer-buffer", "npm:2.1.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["asn1.js", [\
      ["npm:5.4.1", {\
        "packageLocation": "./.yarn/cache/asn1.js-npm-5.4.1-37c7edbcb0-63d57c766f.zip/node_modules/asn1.js/",\
        "packageDependencies": [\
          ["asn1.js", "npm:5.4.1"],\
          ["bn.js", "npm:4.12.0"],\
          ["inherits", "npm:2.0.4"],\
          ["minimalistic-assert", "npm:1.0.1"],\
          ["safer-buffer", "npm:2.1.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["assert-never", [\
      ["npm:1.2.1", {\
        "packageLocation": "./.yarn/cache/assert-never-npm-1.2.1-d423b480cd-ea4f1756d9.zip/node_modules/assert-never/",\
        "packageDependencies": [\
          ["assert-never", "npm:1.2.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["assert-plus", [\
      ["npm:1.0.0", {\
        "packageLocation": "./.yarn/cache/assert-plus-npm-1.0.0-cac95ef098-f4f991ae2d.zip/node_modules/assert-plus/",\
        "packageDependencies": [\
          ["assert-plus", "npm:1.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["async", [\
      ["npm:3.2.4", {\
        "packageLocation": "./.yarn/cache/async-npm-3.2.4-aba13508f9-bebb5dc225.zip/node_modules/async/",\
        "packageDependencies": [\
          ["async", "npm:3.2.4"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["async-lock", [\
      ["npm:1.4.0", {\
        "packageLocation": "./.yarn/cache/async-lock-npm-1.4.0-7a29f925c4-c57d5e741f.zip/node_modules/async-lock/",\
        "packageDependencies": [\
          ["async-lock", "npm:1.4.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["async-mutex", [\
      ["npm:0.4.0", {\
        "packageLocation": "./.yarn/cache/async-mutex-npm-0.4.0-f5a25d4255-4a55065aae.zip/node_modules/async-mutex/",\
        "packageDependencies": [\
          ["async-mutex", "npm:0.4.0"],\
          ["tslib", "npm:2.6.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["asynckit", [\
      ["npm:0.4.0", {\
        "packageLocation": "./.yarn/cache/asynckit-npm-0.4.0-c718858525-3ce727cbc7.zip/node_modules/asynckit/",\
        "packageDependencies": [\
          ["asynckit", "npm:0.4.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["available-typed-arrays", [\
      ["npm:1.0.5", {\
        "packageLocation": "./.yarn/cache/available-typed-arrays-npm-1.0.5-88f321e4d3-4d4d5e86ea.zip/node_modules/available-typed-arrays/",\
        "packageDependencies": [\
          ["available-typed-arrays", "npm:1.0.5"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["aws-sdk", [\
      ["npm:2.1413.0", {\
        "packageLocation": "./.yarn/cache/aws-sdk-npm-2.1413.0-1177d25708-cb231aaef2.zip/node_modules/aws-sdk/",\
        "packageDependencies": [\
          ["aws-sdk", "npm:2.1413.0"],\
          ["buffer", "npm:4.9.2"],\
          ["events", "npm:1.1.1"],\
          ["ieee754", "npm:1.1.13"],\
          ["jmespath", "npm:0.16.0"],\
          ["querystring", "npm:0.2.0"],\
          ["sax", "npm:1.2.1"],\
          ["url", "npm:0.10.3"],\
          ["util", "npm:0.12.5"],\
          ["uuid", "npm:8.0.0"],\
          ["xml2js", "npm:0.5.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["axios", [\
      ["npm:0.24.0", {\
        "packageLocation": "./.yarn/cache/axios-npm-0.24.0-39e5c1e79e-4c5a7a5a45.zip/node_modules/axios/",\
        "packageDependencies": [\
          ["axios", "npm:0.24.0"],\
          ["follow-redirects", "virtual:39e5c1e79ea63134f0cf339f4463df92854aaf708a45210afd29a0b4b9f67f95b34a1abbcabaae6d0033ad99a1d5f690ab51ed8e5d3283b87ccbc3a9ab3ec05f#npm:1.15.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["b4a", [\
      ["npm:1.6.4", {\
        "packageLocation": "./.yarn/cache/b4a-npm-1.6.4-080bcba845-223158e626.zip/node_modules/b4a/",\
        "packageDependencies": [\
          ["b4a", "npm:1.6.4"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["babel-eslint", [\
      ["npm:10.1.0", {\
        "packageLocation": "./.yarn/cache/babel-eslint-npm-10.1.0-6a6d2b1533-dc5dd948f8.zip/node_modules/babel-eslint/",\
        "packageDependencies": [\
          ["babel-eslint", "npm:10.1.0"]\
        ],\
        "linkType": "SOFT"\
      }],\
      ["virtual:1e3a1e45ed0e919595fadc2924df9fc49984d9bd66d08740bfc417c54eabc89d499a1458a951e9abe3067c7f7c07c2253eb1ed2a28ad34045e4bb5cb9fbc74dc#npm:10.1.0", {\
        "packageLocation": "./.yarn/__virtual__/babel-eslint-virtual-8dc6d627a7/0/cache/babel-eslint-npm-10.1.0-6a6d2b1533-dc5dd948f8.zip/node_modules/babel-eslint/",\
        "packageDependencies": [\
          ["babel-eslint", "virtual:1e3a1e45ed0e919595fadc2924df9fc49984d9bd66d08740bfc417c54eabc89d499a1458a951e9abe3067c7f7c07c2253eb1ed2a28ad34045e4bb5cb9fbc74dc#npm:10.1.0"],\
          ["@babel/code-frame", "npm:7.22.13"],\
          ["@babel/parser", "npm:7.22.7"],\
          ["@babel/traverse", "npm:7.23.2"],\
          ["@babel/types", "npm:7.22.5"],\
          ["@types/eslint", null],\
          ["eslint", null],\
          ["eslint-visitor-keys", "npm:1.3.0"],\
          ["resolve", "patch:resolve@npm%3A1.22.3#optional!builtin<compat/resolve>::version=1.22.3&hash=c3c19d"]\
        ],\
        "packagePeers": [\
          "@types/eslint",\
          "eslint"\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["babel-walk", [\
      ["npm:3.0.0-canary-5", {\
        "packageLocation": "./.yarn/cache/babel-walk-npm-3.0.0-canary-5-61b07ed745-f4cea17303.zip/node_modules/babel-walk/",\
        "packageDependencies": [\
          ["babel-walk", "npm:3.0.0-canary-5"],\
          ["@babel/types", "npm:7.22.5"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["backend", [\
      ["workspace:packages/backend", {\
        "packageLocation": "./packages/backend/",\
        "packageDependencies": [\
          ["backend", "workspace:packages/backend"],\
          ["@bull-board/api", "virtual:1a204444c80de4bcde4565c72a3b0d6571f4eb3f918d7d48d8cd7ddf8392bb94fcf59c7a20ab1f49717ca9715358d5e7cac35936b84d89d5579286a3dc50f306#npm:6.0.0"],\
          ["@bull-board/koa", "npm:6.0.0"],\
          ["@bull-board/ui", "npm:6.0.0"],\
          ["@discordapp/twemoji", "npm:16.0.1"],\
          ["@iceshrimp/summaly", "npm:2.7.3::__archiveUrl=https%3A%2F%2Ficeshrimp.dev%2Fapi%2Fpackages%2Ficeshrimp%2Fnpm%2F%2540iceshrimp%252Fsummaly%2F-%2F2.7.3%2Fsummaly-2.7.3.tgz"],\
          ["@koa/cors", "npm:3.4.3"],\
          ["@koa/multer", "virtual:aa59773ac87791c4813d53447077fcf8a847d6de5a301d34dc31286584b1dbb26d30d3adb5b4c41c1e8aea04371e926fda05c09c6253647c432e11d872a304ba#npm:3.0.2"],\
          ["@koa/router", "npm:9.0.1"],\
          ["@paralleldrive/cuid2", "npm:2.2.2"],\
          ["@peertube/http-signature", "npm:1.7.0"],\
          ["@swc/core-android-arm64", "npm:1.3.11"],\
          ["@twemoji/parser", "npm:17.0.1"],\
          ["@types/formidable", "npm:2.0.6"],\
          ["adm-zip", "npm:0.5.10"],\
          ["ajv", "npm:8.12.0"],\
          ["archiver", "npm:5.3.1"],\
          ["argon2", "npm:0.30.3"],\
          ["async-lock", "npm:1.4.0"],\
          ["async-mutex", "npm:0.4.0"],\
          ["aws-sdk", "npm:2.1413.0"],\
          ["bcryptjs", "npm:2.4.3"],\
          ["blurhash", "npm:2.0.5"],\
          ["bullmq", "npm:5.16.0"],\
          ["cacheable-lookup", "npm:7.0.0"],\
          ["cbor", "npm:8.1.0"],\
          ["chalk", "npm:5.3.0"],\
          ["chalk-template", "npm:0.4.0"],\
          ["cli-highlight", "npm:2.1.11"],\
          ["color-convert", "npm:2.0.1"],\
          ["content-disposition", "npm:0.5.4"],\
          ["date-fns", "npm:2.30.0"],\
          ["decompress", "npm:4.2.1"],\
          ["deep-email-validator", "npm:0.1.21"],\
          ["escape-regexp", "npm:0.0.1"],\
          ["fast-xml-parser", "npm:4.2.7"],\
          ["feed", "npm:4.2.2"],\
          ["file-type", "npm:17.1.6"],\
          ["fluent-ffmpeg", "npm:2.1.2"],\
          ["got", "npm:12.5.3"],\
          ["gunzip-maybe", "npm:1.4.2"],\
          ["happy-dom", "npm:12.10.3"],\
          ["hpagent", "npm:0.1.2"],\
          ["iceshrimp-sdk", "workspace:packages/iceshrimp-sdk"],\
          ["ioredis", "npm:5.4.1"],\
          ["ip-cidr", "npm:3.1.0"],\
          ["is-svg", "npm:4.3.2"],\
          ["js-yaml", "npm:4.1.0"],\
          ["jsdom", "virtual:aa59773ac87791c4813d53447077fcf8a847d6de5a301d34dc31286584b1dbb26d30d3adb5b4c41c1e8aea04371e926fda05c09c6253647c432e11d872a304ba#npm:20.0.3"],\
          ["json5", "npm:2.2.3"],\
          ["jsonld", "npm:8.2.0"],\
          ["jsrsasign", "npm:10.8.6"],\
          ["koa", "npm:2.14.2"],\
          ["koa-body", "npm:6.0.1"],\
          ["koa-bodyparser", "npm:4.4.1"],\
          ["koa-favicon", "npm:2.1.0"],\
          ["koa-logger", "npm:3.2.1"],\
          ["koa-mount", "npm:4.0.0"],\
          ["koa-remove-trailing-slashes", "npm:2.0.3"],\
          ["koa-send", "npm:5.0.1"],\
          ["koa-slow", "npm:2.1.0"],\
          ["koa-views", "virtual:47e7552797ac54a9c2afddff4b4e04d9d332a7c4ae9063d663783ce2e037b701b60b632afdcf95d0a9161f0abbca22d39846d9260e4899a8593e974d45bbf1e0#npm:7.0.2"],\
          ["mfm-js", "npm:0.25.0"],\
          ["mime-types", "npm:2.1.35"],\
          ["msgpackr", "npm:1.11.2"],\
          ["multer", "npm:1.4.4-lts.1"],\
          ["nested-property", "npm:4.0.0"],\
          ["node-fetch", "npm:3.3.2"],\
          ["nodemailer", "npm:6.9.3"],\
          ["oauth", "npm:0.10.0"],\
          ["os-utils", "npm:0.0.14"],\
          ["otpauth", "npm:9.1.4"],\
          ["parse-duration", "npm:1.1.0"],\
          ["parse5", "npm:7.1.2"],\
          ["pg", "virtual:aa59773ac87791c4813d53447077fcf8a847d6de5a301d34dc31286584b1dbb26d30d3adb5b4c41c1e8aea04371e926fda05c09c6253647c432e11d872a304ba#npm:8.11.1"],\
          ["private-ip", "npm:2.3.4"],\
          ["probe-image-size", "npm:7.2.3"],\
          ["prom-client", "npm:15.1.0"],\
          ["promise-limit", "npm:2.7.0"],\
          ["punycode", "npm:2.3.0"],\
          ["pureimage", "npm:0.3.15"],\
          ["qrcode", "npm:1.5.3"],\
          ["random-seed", "npm:0.3.0"],\
          ["ratelimiter", "npm:3.4.1"],\
          ["re2", "npm:1.22.1"],\
          ["redis-lock", "npm:0.1.4"],\
          ["redis-semaphore", "virtual:aa59773ac87791c4813d53447077fcf8a847d6de5a301d34dc31286584b1dbb26d30d3adb5b4c41c1e8aea04371e926fda05c09c6253647c432e11d872a304ba#npm:5.3.1"],\
          ["reflect-metadata", "npm:0.1.13"],\
          ["rename", "npm:1.0.4"],\
          ["rndstr", "npm:1.0.0"],\
          ["rss-parser", "npm:3.13.0"],\
          ["sanitize-html", "npm:2.10.0"],\
          ["semver", "npm:7.5.4"],\
          ["sharp", "npm:0.33.5"],\
          ["stringz", "npm:2.1.0"],\
          ["syslog-pro", "npm:1.0.0"],\
          ["systeminformation", "npm:5.21.12"],\
          ["tar-stream", "npm:3.1.6"],\
          ["tesseract.js", "npm:3.0.3"],\
          ["tinycolor2", "npm:1.5.2"],\
          ["tmp", "npm:0.2.1"],\
          ["typeorm", "virtual:aa59773ac87791c4813d53447077fcf8a847d6de5a301d34dc31286584b1dbb26d30d3adb5b4c41c1e8aea04371e926fda05c09c6253647c432e11d872a304ba#npm:0.3.17"],\
          ["uuid", "npm:9.0.0"],\
          ["web-push", "npm:3.6.3"],\
          ["websocket", "npm:1.0.34"],\
          ["xev", "npm:3.0.2"]\
        ],\
        "linkType": "SOFT"\
      }]\
    ]],\
    ["balanced-match", [\
      ["npm:1.0.2", {\
        "packageLocation": "./.yarn/cache/balanced-match-npm-1.0.2-a53c126459-9706c088a2.zip/node_modules/balanced-match/",\
        "packageDependencies": [\
          ["balanced-match", "npm:1.0.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["base64-js", [\
      ["npm:1.5.1", {\
        "packageLocation": "./.yarn/cache/base64-js-npm-1.5.1-b2f7275641-669632eb37.zip/node_modules/base64-js/",\
        "packageDependencies": [\
          ["base64-js", "npm:1.5.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["bcrypt-pbkdf", [\
      ["npm:1.0.2", {\
        "packageLocation": "./.yarn/cache/bcrypt-pbkdf-npm-1.0.2-80db8b16ed-13a4cde058.zip/node_modules/bcrypt-pbkdf/",\
        "packageDependencies": [\
          ["bcrypt-pbkdf", "npm:1.0.2"],\
          ["tweetnacl", "npm:0.14.5"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["bcryptjs", [\
      ["npm:2.4.3", {\
        "packageLocation": "./.yarn/cache/bcryptjs-npm-2.4.3-32de4957eb-f6798e57ea.zip/node_modules/bcryptjs/",\
        "packageDependencies": [\
          ["bcryptjs", "npm:2.4.3"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["bintrees", [\
      ["npm:1.0.2", {\
        "packageLocation": "./.yarn/cache/bintrees-npm-1.0.2-b28feeda03-071896cea5.zip/node_modules/bintrees/",\
        "packageDependencies": [\
          ["bintrees", "npm:1.0.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["bl", [\
      ["npm:1.2.3", {\
        "packageLocation": "./.yarn/cache/bl-npm-1.2.3-49c4213ca5-11d775b09e.zip/node_modules/bl/",\
        "packageDependencies": [\
          ["bl", "npm:1.2.3"],\
          ["readable-stream", "npm:2.3.8"],\
          ["safe-buffer", "npm:5.2.1"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:4.1.0", {\
        "packageLocation": "./.yarn/cache/bl-npm-4.1.0-7f94cdcf3f-b7904e66ed.zip/node_modules/bl/",\
        "packageDependencies": [\
          ["bl", "npm:4.1.0"],\
          ["buffer", "npm:5.7.1"],\
          ["inherits", "npm:2.0.4"],\
          ["readable-stream", "npm:3.6.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["bluebird", [\
      ["npm:3.7.2", {\
        "packageLocation": "./.yarn/cache/bluebird-npm-3.7.2-6a54136ee3-007c7bad22.zip/node_modules/bluebird/",\
        "packageDependencies": [\
          ["bluebird", "npm:3.7.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["blurhash", [\
      ["npm:2.0.5", {\
        "packageLocation": "./.yarn/cache/blurhash-npm-2.0.5-7648719b71-ff0e156c13.zip/node_modules/blurhash/",\
        "packageDependencies": [\
          ["blurhash", "npm:2.0.5"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["bmp-js", [\
      ["npm:0.1.0", {\
        "packageLocation": "./.yarn/cache/bmp-js-npm-0.1.0-5c9f284ca3-9597f41038.zip/node_modules/bmp-js/",\
        "packageDependencies": [\
          ["bmp-js", "npm:0.1.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["bn.js", [\
      ["npm:4.12.0", {\
        "packageLocation": "./.yarn/cache/bn.js-npm-4.12.0-3ec6c884f6-10f8db196d.zip/node_modules/bn.js/",\
        "packageDependencies": [\
          ["bn.js", "npm:4.12.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["boolbase", [\
      ["npm:1.0.0", {\
        "packageLocation": "./.yarn/cache/boolbase-npm-1.0.0-965fe9af6d-3e25c80ef6.zip/node_modules/boolbase/",\
        "packageDependencies": [\
          ["boolbase", "npm:1.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["brace-expansion", [\
      ["npm:1.1.11", {\
        "packageLocation": "./.yarn/cache/brace-expansion-npm-1.1.11-fb95eb05ad-faf34a7bb0.zip/node_modules/brace-expansion/",\
        "packageDependencies": [\
          ["brace-expansion", "npm:1.1.11"],\
          ["balanced-match", "npm:1.0.2"],\
          ["concat-map", "npm:0.0.1"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:2.0.1", {\
        "packageLocation": "./.yarn/cache/brace-expansion-npm-2.0.1-17aa2616f9-a61e7cd2e8.zip/node_modules/brace-expansion/",\
        "packageDependencies": [\
          ["brace-expansion", "npm:2.0.1"],\
          ["balanced-match", "npm:1.0.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["browserify-zlib", [\
      ["npm:0.1.4", {\
        "packageLocation": "./.yarn/cache/browserify-zlib-npm-0.1.4-34d70ed43d-cd506a1ef9.zip/node_modules/browserify-zlib/",\
        "packageDependencies": [\
          ["browserify-zlib", "npm:0.1.4"],\
          ["pako", "npm:0.2.9"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["browserslist", [\
      ["npm:4.21.9", {\
        "packageLocation": "./.yarn/cache/browserslist-npm-4.21.9-f6128308c1-f015dd3d97.zip/node_modules/browserslist/",\
        "packageDependencies": [\
          ["browserslist", "npm:4.21.9"],\
          ["caniuse-lite", "npm:1.0.30001517"],\
          ["electron-to-chromium", "npm:1.4.473"],\
          ["node-releases", "npm:2.0.13"],\
          ["update-browserslist-db", "virtual:f6128308c12e2b37fe427262226a88e213eb66128b3445db14a7af8a6dafb815a9c4562e232b574e216fb796ee19313d71844b195e41ad82170480289a6b575c#npm:1.0.11"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["buffer", [\
      ["npm:4.9.2", {\
        "packageLocation": "./.yarn/cache/buffer-npm-4.9.2-9e40b5e87a-4852a455e1.zip/node_modules/buffer/",\
        "packageDependencies": [\
          ["buffer", "npm:4.9.2"],\
          ["base64-js", "npm:1.5.1"],\
          ["ieee754", "npm:1.2.1"],\
          ["isarray", "npm:1.0.0"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:5.7.1", {\
        "packageLocation": "./.yarn/cache/buffer-npm-5.7.1-513ef8259e-997434d3c6.zip/node_modules/buffer/",\
        "packageDependencies": [\
          ["buffer", "npm:5.7.1"],\
          ["base64-js", "npm:1.5.1"],\
          ["ieee754", "npm:1.2.1"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:6.0.3", {\
        "packageLocation": "./.yarn/cache/buffer-npm-6.0.3-cd90dfedfe-b6bc68237e.zip/node_modules/buffer/",\
        "packageDependencies": [\
          ["buffer", "npm:6.0.3"],\
          ["base64-js", "npm:1.5.1"],\
          ["ieee754", "npm:1.2.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["buffer-alloc", [\
      ["npm:1.2.0", {\
        "packageLocation": "./.yarn/cache/buffer-alloc-npm-1.2.0-388beee0c7-560cd27f3c.zip/node_modules/buffer-alloc/",\
        "packageDependencies": [\
          ["buffer-alloc", "npm:1.2.0"],\
          ["buffer-alloc-unsafe", "npm:1.1.0"],\
          ["buffer-fill", "npm:1.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["buffer-alloc-unsafe", [\
      ["npm:1.1.0", {\
        "packageLocation": "./.yarn/cache/buffer-alloc-unsafe-npm-1.1.0-b5d7ccb44c-c5e18bf51f.zip/node_modules/buffer-alloc-unsafe/",\
        "packageDependencies": [\
          ["buffer-alloc-unsafe", "npm:1.1.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["buffer-crc32", [\
      ["npm:0.2.13", {\
        "packageLocation": "./.yarn/cache/buffer-crc32-npm-0.2.13-c4b6fceac1-06252347ae.zip/node_modules/buffer-crc32/",\
        "packageDependencies": [\
          ["buffer-crc32", "npm:0.2.13"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["buffer-equal-constant-time", [\
      ["npm:1.0.1", {\
        "packageLocation": "./.yarn/cache/buffer-equal-constant-time-npm-1.0.1-41826f3419-80bb945f5d.zip/node_modules/buffer-equal-constant-time/",\
        "packageDependencies": [\
          ["buffer-equal-constant-time", "npm:1.0.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["buffer-fill", [\
      ["npm:1.0.0", {\
        "packageLocation": "./.yarn/cache/buffer-fill-npm-1.0.0-915809118a-c29b4723dd.zip/node_modules/buffer-fill/",\
        "packageDependencies": [\
          ["buffer-fill", "npm:1.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["buffer-from", [\
      ["npm:1.1.2", {\
        "packageLocation": "./.yarn/cache/buffer-from-npm-1.1.2-03d2f20d7e-0448524a56.zip/node_modules/buffer-from/",\
        "packageDependencies": [\
          ["buffer-from", "npm:1.1.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["buffer-writer", [\
      ["npm:2.0.0", {\
        "packageLocation": "./.yarn/cache/buffer-writer-npm-2.0.0-5cd2ef55bc-fdca8e28c5.zip/node_modules/buffer-writer/",\
        "packageDependencies": [\
          ["buffer-writer", "npm:2.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["bufferutil", [\
      ["npm:4.0.7", {\
        "packageLocation": "./.yarn/unplugged/bufferutil-npm-4.0.7-77a45bb7a3/node_modules/bufferutil/",\
        "packageDependencies": [\
          ["bufferutil", "npm:4.0.7"],\
          ["node-gyp", "npm:9.4.0"],\
          ["node-gyp-build", "npm:4.6.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["bullmq", [\
      ["npm:5.16.0", {\
        "packageLocation": "./.yarn/cache/bullmq-npm-5.16.0-fe493a4098-39febf6e4a.zip/node_modules/bullmq/",\
        "packageDependencies": [\
          ["bullmq", "npm:5.16.0"],\
          ["cron-parser", "npm:4.9.0"],\
          ["ioredis", "npm:5.4.1"],\
          ["msgpackr", "npm:1.11.0"],\
          ["node-abort-controller", "npm:3.1.1"],\
          ["semver", "npm:7.5.4"],\
          ["tslib", "npm:2.7.0"],\
          ["uuid", "npm:9.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["busboy", [\
      ["npm:1.6.0", {\
        "packageLocation": "./.yarn/cache/busboy-npm-1.6.0-ebb5cbb04b-bee10fa10e.zip/node_modules/busboy/",\
        "packageDependencies": [\
          ["busboy", "npm:1.6.0"],\
          ["streamsearch", "npm:1.1.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["bytes", [\
      ["npm:3.1.2", {\
        "packageLocation": "./.yarn/cache/bytes-npm-3.1.2-28b8643004-a10abf2ba7.zip/node_modules/bytes/",\
        "packageDependencies": [\
          ["bytes", "npm:3.1.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["cacache", [\
      ["npm:17.1.3", {\
        "packageLocation": "./.yarn/cache/cacache-npm-17.1.3-f75f768a29-216fb41c73.zip/node_modules/cacache/",\
        "packageDependencies": [\
          ["cacache", "npm:17.1.3"],\
          ["@npmcli/fs", "npm:3.1.0"],\
          ["fs-minipass", "npm:3.0.2"],\
          ["glob", "npm:10.3.3"],\
          ["lru-cache", "npm:7.18.3"],\
          ["minipass", "npm:5.0.0"],\
          ["minipass-collect", "npm:1.0.2"],\
          ["minipass-flush", "npm:1.0.5"],\
          ["minipass-pipeline", "npm:1.2.4"],\
          ["p-map", "npm:4.0.0"],\
          ["ssri", "npm:10.0.4"],\
          ["tar", "npm:6.1.15"],\
          ["unique-filename", "npm:3.0.0"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:19.0.1", {\
        "packageLocation": "./.yarn/cache/cacache-npm-19.0.1-395cba1936-ea026b27b1.zip/node_modules/cacache/",\
        "packageDependencies": [\
          ["cacache", "npm:19.0.1"],\
          ["@npmcli/fs", "npm:4.0.0"],\
          ["fs-minipass", "npm:3.0.2"],\
          ["glob", "npm:10.3.3"],\
          ["lru-cache", "npm:10.0.2"],\
          ["minipass", "npm:7.0.4"],\
          ["minipass-collect", "npm:2.0.1"],\
          ["minipass-flush", "npm:1.0.5"],\
          ["minipass-pipeline", "npm:1.2.4"],\
          ["p-map", "npm:7.0.3"],\
          ["ssri", "npm:12.0.0"],\
          ["tar", "npm:7.4.3"],\
          ["unique-filename", "npm:4.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["cache-content-type", [\
      ["npm:1.0.1", {\
        "packageLocation": "./.yarn/cache/cache-content-type-npm-1.0.1-f709f8c309-18db4d5945.zip/node_modules/cache-content-type/",\
        "packageDependencies": [\
          ["cache-content-type", "npm:1.0.1"],\
          ["mime-types", "npm:2.1.35"],\
          ["ylru", "npm:1.3.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["cacheable-lookup", [\
      ["npm:5.0.4", {\
        "packageLocation": "./.yarn/cache/cacheable-lookup-npm-5.0.4-8f13e8b44b-618a8b3eea.zip/node_modules/cacheable-lookup/",\
        "packageDependencies": [\
          ["cacheable-lookup", "npm:5.0.4"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:7.0.0", {\
        "packageLocation": "./.yarn/cache/cacheable-lookup-npm-7.0.0-b6cd95c14a-69ea78cd9f.zip/node_modules/cacheable-lookup/",\
        "packageDependencies": [\
          ["cacheable-lookup", "npm:7.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["cacheable-request", [\
      ["npm:10.2.13", {\
        "packageLocation": "./.yarn/cache/cacheable-request-npm-10.2.13-5de31139f7-252a41b337.zip/node_modules/cacheable-request/",\
        "packageDependencies": [\
          ["cacheable-request", "npm:10.2.13"],\
          ["@types/http-cache-semantics", "npm:4.0.1"],\
          ["get-stream", "npm:6.0.1"],\
          ["http-cache-semantics", "npm:4.1.1"],\
          ["keyv", "npm:4.5.3"],\
          ["mimic-response", "npm:4.0.0"],\
          ["normalize-url", "npm:8.0.0"],\
          ["responselike", "npm:3.0.0"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:7.0.4", {\
        "packageLocation": "./.yarn/cache/cacheable-request-npm-7.0.4-92bf077a92-0f4f200126.zip/node_modules/cacheable-request/",\
        "packageDependencies": [\
          ["cacheable-request", "npm:7.0.4"],\
          ["clone-response", "npm:1.0.3"],\
          ["get-stream", "npm:5.2.0"],\
          ["http-cache-semantics", "npm:4.1.1"],\
          ["keyv", "npm:4.5.3"],\
          ["lowercase-keys", "npm:2.0.0"],\
          ["normalize-url", "npm:6.1.0"],\
          ["responselike", "npm:2.0.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["call-bind", [\
      ["npm:1.0.2", {\
        "packageLocation": "./.yarn/cache/call-bind-npm-1.0.2-c957124861-ca787179c1.zip/node_modules/call-bind/",\
        "packageDependencies": [\
          ["call-bind", "npm:1.0.2"],\
          ["function-bind", "npm:1.1.1"],\
          ["get-intrinsic", "npm:1.2.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["callsites", [\
      ["npm:3.1.0", {\
        "packageLocation": "./.yarn/cache/callsites-npm-3.1.0-268f989910-072d17b6ab.zip/node_modules/callsites/",\
        "packageDependencies": [\
          ["callsites", "npm:3.1.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["camelcase", [\
      ["npm:5.3.1", {\
        "packageLocation": "./.yarn/cache/camelcase-npm-5.3.1-5db8af62c5-e6effce26b.zip/node_modules/camelcase/",\
        "packageDependencies": [\
          ["camelcase", "npm:5.3.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["caniuse-lite", [\
      ["npm:1.0.30001517", {\
        "packageLocation": "./.yarn/cache/caniuse-lite-npm-1.0.30001517-43126c8553-3b9aa01e5e.zip/node_modules/caniuse-lite/",\
        "packageDependencies": [\
          ["caniuse-lite", "npm:1.0.30001517"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["canonicalize", [\
      ["npm:1.0.8", {\
        "packageLocation": "./.yarn/cache/canonicalize-npm-1.0.8-e87a0e7ee4-4087d6de4a.zip/node_modules/canonicalize/",\
        "packageDependencies": [\
          ["canonicalize", "npm:1.0.8"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["cbor", [\
      ["npm:8.1.0", {\
        "packageLocation": "./.yarn/cache/cbor-npm-8.1.0-c1a4d6266a-fc6c6d4f8d.zip/node_modules/cbor/",\
        "packageDependencies": [\
          ["cbor", "npm:8.1.0"],\
          ["nofilter", "npm:3.1.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["chalk", [\
      ["npm:2.4.2", {\
        "packageLocation": "./.yarn/cache/chalk-npm-2.4.2-3ea16dd91e-3d1d103433.zip/node_modules/chalk/",\
        "packageDependencies": [\
          ["chalk", "npm:2.4.2"],\
          ["ansi-styles", "npm:3.2.1"],\
          ["escape-string-regexp", "npm:1.0.5"],\
          ["supports-color", "npm:5.5.0"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:4.1.2", {\
        "packageLocation": "./.yarn/cache/chalk-npm-4.1.2-ba8b67ab80-cb3f3e5949.zip/node_modules/chalk/",\
        "packageDependencies": [\
          ["chalk", "npm:4.1.2"],\
          ["ansi-styles", "npm:4.3.0"],\
          ["supports-color", "npm:7.2.0"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:5.3.0", {\
        "packageLocation": "./.yarn/cache/chalk-npm-5.3.0-d181999efb-6373caaab2.zip/node_modules/chalk/",\
        "packageDependencies": [\
          ["chalk", "npm:5.3.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["chalk-template", [\
      ["npm:0.4.0", {\
        "packageLocation": "./.yarn/cache/chalk-template-npm-0.4.0-d7a0499c36-6c706802a7.zip/node_modules/chalk-template/",\
        "packageDependencies": [\
          ["chalk-template", "npm:0.4.0"],\
          ["chalk", "npm:4.1.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["char-regex", [\
      ["npm:1.0.2", {\
        "packageLocation": "./.yarn/cache/char-regex-npm-1.0.2-ecade5f97f-1ec5c2906a.zip/node_modules/char-regex/",\
        "packageDependencies": [\
          ["char-regex", "npm:1.0.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["character-parser", [\
      ["npm:2.2.0", {\
        "packageLocation": "./.yarn/cache/character-parser-npm-2.2.0-a5df9fb883-5980ddc776.zip/node_modules/character-parser/",\
        "packageDependencies": [\
          ["character-parser", "npm:2.2.0"],\
          ["is-regex", "npm:1.1.4"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["cheerio", [\
      ["npm:0.22.0", {\
        "packageLocation": "./.yarn/cache/cheerio-npm-0.22.0-0450a21558-eabc1db83c.zip/node_modules/cheerio/",\
        "packageDependencies": [\
          ["cheerio", "npm:0.22.0"],\
          ["css-select", "npm:1.2.0"],\
          ["dom-serializer", "npm:0.1.1"],\
          ["entities", "npm:1.1.2"],\
          ["htmlparser2", "npm:3.10.1"],\
          ["lodash.assignin", "npm:4.2.0"],\
          ["lodash.bind", "npm:4.2.1"],\
          ["lodash.defaults", "npm:4.2.0"],\
          ["lodash.filter", "npm:4.6.0"],\
          ["lodash.flatten", "npm:4.4.0"],\
          ["lodash.foreach", "npm:4.5.0"],\
          ["lodash.map", "npm:4.6.0"],\
          ["lodash.merge", "npm:4.6.2"],\
          ["lodash.pick", "npm:4.4.0"],\
          ["lodash.reduce", "npm:4.6.0"],\
          ["lodash.reject", "npm:4.6.0"],\
          ["lodash.some", "npm:4.6.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["chownr", [\
      ["npm:2.0.0", {\
        "packageLocation": "./.yarn/cache/chownr-npm-2.0.0-638f1c9c61-c57cf9dd07.zip/node_modules/chownr/",\
        "packageDependencies": [\
          ["chownr", "npm:2.0.0"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:3.0.0", {\
        "packageLocation": "./.yarn/cache/chownr-npm-3.0.0-5275e85d25-b63cb1f73d.zip/node_modules/chownr/",\
        "packageDependencies": [\
          ["chownr", "npm:3.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["clean-stack", [\
      ["npm:2.2.0", {\
        "packageLocation": "./.yarn/cache/clean-stack-npm-2.2.0-a8ce435a5c-2ac8cd2b2f.zip/node_modules/clean-stack/",\
        "packageDependencies": [\
          ["clean-stack", "npm:2.2.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["cli-highlight", [\
      ["npm:2.1.11", {\
        "packageLocation": "./.yarn/cache/cli-highlight-npm-2.1.11-569697f73a-05d2b5beb8.zip/node_modules/cli-highlight/",\
        "packageDependencies": [\
          ["cli-highlight", "npm:2.1.11"],\
          ["chalk", "npm:4.1.2"],\
          ["highlight.js", "npm:10.7.3"],\
          ["mz", "npm:2.7.0"],\
          ["parse5", "npm:5.1.1"],\
          ["parse5-htmlparser2-tree-adapter", "npm:6.0.1"],\
          ["yargs", "npm:16.2.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["client", [\
      ["workspace:packages/client", {\
        "packageLocation": "./packages/client/",\
        "packageDependencies": [\
          ["client", "workspace:packages/client"],\
          ["@babel/core", "npm:7.22.9"],\
          ["eslint", "npm:8.45.0"]\
        ],\
        "linkType": "SOFT"\
      }]\
    ]],\
    ["cliui", [\
      ["npm:6.0.0", {\
        "packageLocation": "./.yarn/cache/cliui-npm-6.0.0-488b2414c6-44afbcc29d.zip/node_modules/cliui/",\
        "packageDependencies": [\
          ["cliui", "npm:6.0.0"],\
          ["string-width", "npm:4.2.3"],\
          ["strip-ansi", "npm:6.0.1"],\
          ["wrap-ansi", "npm:6.2.0"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:7.0.4", {\
        "packageLocation": "./.yarn/cache/cliui-npm-7.0.4-d6b8a9edb6-db858c49af.zip/node_modules/cliui/",\
        "packageDependencies": [\
          ["cliui", "npm:7.0.4"],\
          ["string-width", "npm:4.2.3"],\
          ["strip-ansi", "npm:6.0.1"],\
          ["wrap-ansi", "npm:7.0.0"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:8.0.1", {\
        "packageLocation": "./.yarn/cache/cliui-npm-8.0.1-3b029092cf-eaa5561aeb.zip/node_modules/cliui/",\
        "packageDependencies": [\
          ["cliui", "npm:8.0.1"],\
          ["string-width", "npm:4.2.3"],\
          ["strip-ansi", "npm:6.0.1"],\
          ["wrap-ansi", "npm:7.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["clone-response", [\
      ["npm:1.0.3", {\
        "packageLocation": "./.yarn/cache/clone-response-npm-1.0.3-f71cb6aff5-4e671cac39.zip/node_modules/clone-response/",\
        "packageDependencies": [\
          ["clone-response", "npm:1.0.3"],\
          ["mimic-response", "npm:1.0.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["cluster-key-slot", [\
      ["npm:1.1.2", {\
        "packageLocation": "./.yarn/cache/cluster-key-slot-npm-1.1.2-0571a28825-516ed8b5e1.zip/node_modules/cluster-key-slot/",\
        "packageDependencies": [\
          ["cluster-key-slot", "npm:1.1.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["co", [\
      ["npm:4.6.0", {\
        "packageLocation": "./.yarn/cache/co-npm-4.6.0-03f2d1feb6-a5d9f37091.zip/node_modules/co/",\
        "packageDependencies": [\
          ["co", "npm:4.6.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["co-body", [\
      ["npm:6.1.0", {\
        "packageLocation": "./.yarn/cache/co-body-npm-6.1.0-8102b96671-2484710f70.zip/node_modules/co-body/",\
        "packageDependencies": [\
          ["co-body", "npm:6.1.0"],\
          ["inflation", "npm:2.0.0"],\
          ["qs", "npm:6.11.2"],\
          ["raw-body", "npm:2.5.2"],\
          ["type-is", "npm:1.6.18"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["color", [\
      ["npm:4.2.3", {\
        "packageLocation": "./.yarn/cache/color-npm-4.2.3-4a23227581-b23f5e500a.zip/node_modules/color/",\
        "packageDependencies": [\
          ["color", "npm:4.2.3"],\
          ["color-convert", "npm:2.0.1"],\
          ["color-string", "npm:1.9.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["color-convert", [\
      ["npm:1.9.3", {\
        "packageLocation": "./.yarn/cache/color-convert-npm-1.9.3-1fe690075e-ffa3190250.zip/node_modules/color-convert/",\
        "packageDependencies": [\
          ["color-convert", "npm:1.9.3"],\
          ["color-name", "npm:1.1.3"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:2.0.1", {\
        "packageLocation": "./.yarn/cache/color-convert-npm-2.0.1-79730e935b-fa00c91b43.zip/node_modules/color-convert/",\
        "packageDependencies": [\
          ["color-convert", "npm:2.0.1"],\
          ["color-name", "npm:1.1.4"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["color-name", [\
      ["npm:1.1.3", {\
        "packageLocation": "./.yarn/cache/color-name-npm-1.1.3-728b7b5d39-09c5d3e33d.zip/node_modules/color-name/",\
        "packageDependencies": [\
          ["color-name", "npm:1.1.3"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:1.1.4", {\
        "packageLocation": "./.yarn/cache/color-name-npm-1.1.4-025792b0ea-b044585952.zip/node_modules/color-name/",\
        "packageDependencies": [\
          ["color-name", "npm:1.1.4"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["color-string", [\
      ["npm:1.9.1", {\
        "packageLocation": "./.yarn/cache/color-string-npm-1.9.1-dc020e56be-72aa0b81ee.zip/node_modules/color-string/",\
        "packageDependencies": [\
          ["color-string", "npm:1.9.1"],\
          ["color-name", "npm:1.1.4"],\
          ["simple-swizzle", "npm:0.2.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["color-support", [\
      ["npm:1.1.3", {\
        "packageLocation": "./.yarn/cache/color-support-npm-1.1.3-3be5c53455-4bcfe30eea.zip/node_modules/color-support/",\
        "packageDependencies": [\
          ["color-support", "npm:1.1.3"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["combined-stream", [\
      ["npm:1.0.8", {\
        "packageLocation": "./.yarn/cache/combined-stream-npm-1.0.8-dc14d4a63a-2e969e637d.zip/node_modules/combined-stream/",\
        "packageDependencies": [\
          ["combined-stream", "npm:1.0.8"],\
          ["delayed-stream", "npm:1.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["commander", [\
      ["npm:10.0.1", {\
        "packageLocation": "./.yarn/cache/commander-npm-10.0.1-f17613b72b-8799faa84a.zip/node_modules/commander/",\
        "packageDependencies": [\
          ["commander", "npm:10.0.1"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:2.20.3", {\
        "packageLocation": "./.yarn/cache/commander-npm-2.20.3-d8dcbaa39b-90c5b68986.zip/node_modules/commander/",\
        "packageDependencies": [\
          ["commander", "npm:2.20.3"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["compress-commons", [\
      ["npm:4.1.1", {\
        "packageLocation": "./.yarn/cache/compress-commons-npm-4.1.1-9ac41d7ac3-7e35816503.zip/node_modules/compress-commons/",\
        "packageDependencies": [\
          ["compress-commons", "npm:4.1.1"],\
          ["buffer-crc32", "npm:0.2.13"],\
          ["crc32-stream", "npm:4.0.2"],\
          ["normalize-path", "npm:3.0.0"],\
          ["readable-stream", "npm:3.6.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["concat-map", [\
      ["npm:0.0.1", {\
        "packageLocation": "./.yarn/cache/concat-map-npm-0.0.1-85a921b7ee-9680699c8e.zip/node_modules/concat-map/",\
        "packageDependencies": [\
          ["concat-map", "npm:0.0.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["concat-stream", [\
      ["npm:1.6.2", {\
        "packageLocation": "./.yarn/cache/concat-stream-npm-1.6.2-2bee337060-71db903c84.zip/node_modules/concat-stream/",\
        "packageDependencies": [\
          ["concat-stream", "npm:1.6.2"],\
          ["buffer-from", "npm:1.1.2"],\
          ["inherits", "npm:2.0.4"],\
          ["readable-stream", "npm:2.3.8"],\
          ["typedarray", "npm:0.0.6"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["condense-newlines", [\
      ["npm:0.2.1", {\
        "packageLocation": "./.yarn/cache/condense-newlines-npm-0.2.1-016452195f-3c20ff6ee8.zip/node_modules/condense-newlines/",\
        "packageDependencies": [\
          ["condense-newlines", "npm:0.2.1"],\
          ["extend-shallow", "npm:2.0.1"],\
          ["is-whitespace", "npm:0.3.0"],\
          ["kind-of", "npm:3.2.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["config-chain", [\
      ["npm:1.1.13", {\
        "packageLocation": "./.yarn/cache/config-chain-npm-1.1.13-82e06afbc4-83d22cabf7.zip/node_modules/config-chain/",\
        "packageDependencies": [\
          ["config-chain", "npm:1.1.13"],\
          ["ini", "npm:1.3.8"],\
          ["proto-list", "npm:1.2.4"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["console-control-strings", [\
      ["npm:1.1.0", {\
        "packageLocation": "./.yarn/cache/console-control-strings-npm-1.1.0-e3160e5275-27b5fa302b.zip/node_modules/console-control-strings/",\
        "packageDependencies": [\
          ["console-control-strings", "npm:1.1.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["consolidate", [\
      ["npm:0.16.0", {\
        "packageLocation": "./.yarn/cache/consolidate-npm-0.16.0-1a9b3c81f9-74b9bc2f1c.zip/node_modules/consolidate/",\
        "packageDependencies": [\
          ["consolidate", "npm:0.16.0"]\
        ],\
        "linkType": "SOFT"\
      }],\
      ["virtual:86ee2a8ef0b659363be6b28aece63a5c4d251db21e8e56fe2ea2e03233d27c1fc9c744ff2a904e3dbda7f6a5fedaa3054e931f4e747f5b9deb58af95c389db98#npm:0.16.0", {\
        "packageLocation": "./.yarn/__virtual__/consolidate-virtual-be4eb30fd6/0/cache/consolidate-npm-0.16.0-1a9b3c81f9-74b9bc2f1c.zip/node_modules/consolidate/",\
        "packageDependencies": [\
          ["consolidate", "virtual:86ee2a8ef0b659363be6b28aece63a5c4d251db21e8e56fe2ea2e03233d27c1fc9c744ff2a904e3dbda7f6a5fedaa3054e931f4e747f5b9deb58af95c389db98#npm:0.16.0"],\
          ["@types/arc-templates", null],\
          ["@types/atpl", null],\
          ["@types/babel-core", null],\
          ["@types/bracket-template", null],\
          ["@types/coffee-script", null],\
          ["@types/dot", null],\
          ["@types/dust", null],\
          ["@types/dustjs-helpers", null],\
          ["@types/dustjs-linkedin", null],\
          ["@types/eco", null],\
          ["@types/ect", null],\
          ["@types/ejs", null],\
          ["@types/haml-coffee", null],\
          ["@types/hamlet", null],\
          ["@types/hamljs", null],\
          ["@types/handlebars", null],\
          ["@types/hogan.js", null],\
          ["@types/htmling", null],\
          ["@types/jade", null],\
          ["@types/jazz", null],\
          ["@types/jqtpl", null],\
          ["@types/just", null],\
          ["@types/liquid-node", null],\
          ["@types/liquor", null],\
          ["@types/lodash", null],\
          ["@types/marko", null],\
          ["@types/mote", null],\
          ["@types/mustache", null],\
          ["@types/nunjucks", null],\
          ["@types/plates", null],\
          ["@types/pug", null],\
          ["@types/qejs", null],\
          ["@types/ractive", null],\
          ["@types/razor-tmpl", null],\
          ["@types/react", null],\
          ["@types/react-dom", null],\
          ["@types/slm", null],\
          ["@types/squirrelly", null],\
          ["@types/swig", null],\
          ["@types/swig-templates", null],\
          ["@types/teacup", null],\
          ["@types/templayed", null],\
          ["@types/then-jade", null],\
          ["@types/then-pug", null],\
          ["@types/tinyliquid", null],\
          ["@types/toffee", null],\
          ["@types/twig", null],\
          ["@types/twing", null],\
          ["@types/underscore", null],\
          ["@types/vash", null],\
          ["@types/velocityjs", null],\
          ["@types/walrus", null],\
          ["@types/whiskers", null],\
          ["arc-templates", null],\
          ["atpl", null],\
          ["babel-core", null],\
          ["bluebird", "npm:3.7.2"],\
          ["bracket-template", null],\
          ["coffee-script", null],\
          ["dot", null],\
          ["dust", null],\
          ["dustjs-helpers", null],\
          ["dustjs-linkedin", null],\
          ["eco", null],\
          ["ect", null],\
          ["ejs", "npm:3.1.9"],\
          ["haml-coffee", null],\
          ["hamlet", null],\
          ["hamljs", null],\
          ["handlebars", null],\
          ["hogan.js", null],\
          ["htmling", null],\
          ["jade", null],\
          ["jazz", null],\
          ["jqtpl", null],\
          ["just", null],\
          ["liquid-node", null],\
          ["liquor", null],\
          ["lodash", null],\
          ["marko", null],\
          ["mote", null],\
          ["mustache", null],\
          ["nunjucks", null],\
          ["plates", null],\
          ["pug", "npm:3.0.2"],\
          ["qejs", null],\
          ["ractive", null],\
          ["razor-tmpl", null],\
          ["react", null],\
          ["react-dom", null],\
          ["slm", null],\
          ["squirrelly", null],\
          ["swig", null],\
          ["swig-templates", null],\
          ["teacup", null],\
          ["templayed", null],\
          ["then-jade", null],\
          ["then-pug", null],\
          ["tinyliquid", null],\
          ["toffee", null],\
          ["twig", null],\
          ["twing", null],\
          ["underscore", null],\
          ["vash", null],\
          ["velocityjs", null],\
          ["walrus", null],\
          ["whiskers", null]\
        ],\
        "packagePeers": [\
          "@types/arc-templates",\
          "@types/atpl",\
          "@types/babel-core",\
          "@types/bracket-template",\
          "@types/coffee-script",\
          "@types/dot",\
          "@types/dust",\
          "@types/dustjs-helpers",\
          "@types/dustjs-linkedin",\
          "@types/eco",\
          "@types/ect",\
          "@types/ejs",\
          "@types/haml-coffee",\
          "@types/hamlet",\
          "@types/hamljs",\
          "@types/handlebars",\
          "@types/hogan.js",\
          "@types/htmling",\
          "@types/jade",\
          "@types/jazz",\
          "@types/jqtpl",\
          "@types/just",\
          "@types/liquid-node",\
          "@types/liquor",\
          "@types/lodash",\
          "@types/marko",\
          "@types/mote",\
          "@types/mustache",\
          "@types/nunjucks",\
          "@types/plates",\
          "@types/pug",\
          "@types/qejs",\
          "@types/ractive",\
          "@types/razor-tmpl",\
          "@types/react-dom",\
          "@types/react",\
          "@types/slm",\
          "@types/squirrelly",\
          "@types/swig-templates",\
          "@types/swig",\
          "@types/teacup",\
          "@types/templayed",\
          "@types/then-jade",\
          "@types/then-pug",\
          "@types/tinyliquid",\
          "@types/toffee",\
          "@types/twig",\
          "@types/twing",\
          "@types/underscore",\
          "@types/vash",\
          "@types/velocityjs",\
          "@types/walrus",\
          "@types/whiskers",\
          "arc-templates",\
          "atpl",\
          "babel-core",\
          "bracket-template",\
          "coffee-script",\
          "dot",\
          "dust",\
          "dustjs-helpers",\
          "dustjs-linkedin",\
          "eco",\
          "ect",\
          "haml-coffee",\
          "hamlet",\
          "hamljs",\
          "handlebars",\
          "hogan.js",\
          "htmling",\
          "jade",\
          "jazz",\
          "jqtpl",\
          "just",\
          "liquid-node",\
          "liquor",\
          "lodash",\
          "marko",\
          "mote",\
          "mustache",\
          "nunjucks",\
          "plates",\
          "qejs",\
          "ractive",\
          "razor-tmpl",\
          "react-dom",\
          "react",\
          "slm",\
          "squirrelly",\
          "swig-templates",\
          "swig",\
          "teacup",\
          "templayed",\
          "then-jade",\
          "then-pug",\
          "tinyliquid",\
          "toffee",\
          "twig",\
          "twing",\
          "underscore",\
          "vash",\
          "velocityjs",\
          "walrus",\
          "whiskers"\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["constantinople", [\
      ["npm:4.0.1", {\
        "packageLocation": "./.yarn/cache/constantinople-npm-4.0.1-925d9c26ce-15fc9bec82.zip/node_modules/constantinople/",\
        "packageDependencies": [\
          ["constantinople", "npm:4.0.1"],\
          ["@babel/parser", "npm:7.22.7"],\
          ["@babel/types", "npm:7.22.5"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["content-disposition", [\
      ["npm:0.5.4", {\
        "packageLocation": "./.yarn/cache/content-disposition-npm-0.5.4-2d93678616-b7f4ce176e.zip/node_modules/content-disposition/",\
        "packageDependencies": [\
          ["content-disposition", "npm:0.5.4"],\
          ["safe-buffer", "npm:5.2.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["content-type", [\
      ["npm:1.0.5", {\
        "packageLocation": "./.yarn/cache/content-type-npm-1.0.5-3e037bf9ab-585847d98d.zip/node_modules/content-type/",\
        "packageDependencies": [\
          ["content-type", "npm:1.0.5"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["convert-source-map", [\
      ["npm:1.9.0", {\
        "packageLocation": "./.yarn/cache/convert-source-map-npm-1.9.0-e294555f4b-dc55a1f28d.zip/node_modules/convert-source-map/",\
        "packageDependencies": [\
          ["convert-source-map", "npm:1.9.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["cookies", [\
      ["npm:0.8.0", {\
        "packageLocation": "./.yarn/cache/cookies-npm-0.8.0-d7388cbd94-5da4d72ba8.zip/node_modules/cookies/",\
        "packageDependencies": [\
          ["cookies", "npm:0.8.0"],\
          ["depd", "npm:2.0.0"],\
          ["keygrip", "npm:1.1.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["copy-to", [\
      ["npm:2.0.1", {\
        "packageLocation": "./.yarn/cache/copy-to-npm-2.0.1-474b7b678b-05ea12875b.zip/node_modules/copy-to/",\
        "packageDependencies": [\
          ["copy-to", "npm:2.0.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["core-util-is", [\
      ["npm:1.0.2", {\
        "packageLocation": "./.yarn/cache/core-util-is-npm-1.0.2-9fc2b94dc3-d0f7587346.zip/node_modules/core-util-is/",\
        "packageDependencies": [\
          ["core-util-is", "npm:1.0.2"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:1.0.3", {\
        "packageLocation": "./.yarn/cache/core-util-is-npm-1.0.3-ca74b76c90-9de8597363.zip/node_modules/core-util-is/",\
        "packageDependencies": [\
          ["core-util-is", "npm:1.0.3"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["crc-32", [\
      ["npm:1.2.2", {\
        "packageLocation": "./.yarn/cache/crc-32-npm-1.2.2-28bdc12bcc-824f696a5b.zip/node_modules/crc-32/",\
        "packageDependencies": [\
          ["crc-32", "npm:1.2.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["crc32-stream", [\
      ["npm:4.0.2", {\
        "packageLocation": "./.yarn/cache/crc32-stream-npm-4.0.2-32a2ec50b7-1099559283.zip/node_modules/crc32-stream/",\
        "packageDependencies": [\
          ["crc32-stream", "npm:4.0.2"],\
          ["crc-32", "npm:1.2.2"],\
          ["readable-stream", "npm:3.6.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["cron-parser", [\
      ["npm:4.9.0", {\
        "packageLocation": "./.yarn/cache/cron-parser-npm-4.9.0-2a573f98e9-ffca5e532a.zip/node_modules/cron-parser/",\
        "packageDependencies": [\
          ["cron-parser", "npm:4.9.0"],\
          ["luxon", "npm:3.3.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["cross-spawn", [\
      ["npm:7.0.3", {\
        "packageLocation": "./.yarn/cache/cross-spawn-npm-7.0.3-e4ff3e65b3-e1a13869d2.zip/node_modules/cross-spawn/",\
        "packageDependencies": [\
          ["cross-spawn", "npm:7.0.3"],\
          ["path-key", "npm:3.1.1"],\
          ["shebang-command", "npm:2.0.0"],\
          ["which", "npm:2.0.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["css-select", [\
      ["npm:1.2.0", {\
        "packageLocation": "./.yarn/cache/css-select-npm-1.2.0-a7a03607e0-4a57b1e39d.zip/node_modules/css-select/",\
        "packageDependencies": [\
          ["css-select", "npm:1.2.0"],\
          ["boolbase", "npm:1.0.0"],\
          ["css-what", "npm:2.1.3"],\
          ["domutils", "npm:1.5.1"],\
          ["nth-check", "npm:1.0.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["css-what", [\
      ["npm:2.1.3", {\
        "packageLocation": "./.yarn/cache/css-what-npm-2.1.3-a9583898e8-2a46608ecb.zip/node_modules/css-what/",\
        "packageDependencies": [\
          ["css-what", "npm:2.1.3"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["css.escape", [\
      ["npm:1.5.1", {\
        "packageLocation": "./.yarn/cache/css.escape-npm-1.5.1-b24d2ba77a-f6d38088d8.zip/node_modules/css.escape/",\
        "packageDependencies": [\
          ["css.escape", "npm:1.5.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["cssom", [\
      ["npm:0.3.8", {\
        "packageLocation": "./.yarn/cache/cssom-npm-0.3.8-a9291d36ff-49eacc8807.zip/node_modules/cssom/",\
        "packageDependencies": [\
          ["cssom", "npm:0.3.8"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:0.5.0", {\
        "packageLocation": "./.yarn/cache/cssom-npm-0.5.0-44ab2704f2-b502a315b1.zip/node_modules/cssom/",\
        "packageDependencies": [\
          ["cssom", "npm:0.5.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["cssstyle", [\
      ["npm:2.3.0", {\
        "packageLocation": "./.yarn/cache/cssstyle-npm-2.3.0-b5d112c450-46f7f05a15.zip/node_modules/cssstyle/",\
        "packageDependencies": [\
          ["cssstyle", "npm:2.3.0"],\
          ["cssom", "npm:0.3.8"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["d", [\
      ["npm:1.0.1", {\
        "packageLocation": "./.yarn/cache/d-npm-1.0.1-64afbbc689-1296e3f92e.zip/node_modules/d/",\
        "packageDependencies": [\
          ["d", "npm:1.0.1"],\
          ["es5-ext", "npm:0.10.62"],\
          ["type", "npm:1.2.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["dashdash", [\
      ["npm:1.14.1", {\
        "packageLocation": "./.yarn/cache/dashdash-npm-1.14.1-be8f10a286-137b287fa0.zip/node_modules/dashdash/",\
        "packageDependencies": [\
          ["dashdash", "npm:1.14.1"],\
          ["assert-plus", "npm:1.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["data-uri-to-buffer", [\
      ["npm:4.0.1", {\
        "packageLocation": "./.yarn/cache/data-uri-to-buffer-npm-4.0.1-5c66a78beb-0d0790b67f.zip/node_modules/data-uri-to-buffer/",\
        "packageDependencies": [\
          ["data-uri-to-buffer", "npm:4.0.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["data-urls", [\
      ["npm:3.0.2", {\
        "packageLocation": "./.yarn/cache/data-urls-npm-3.0.2-c8b2050319-033fc3dd0f.zip/node_modules/data-urls/",\
        "packageDependencies": [\
          ["data-urls", "npm:3.0.2"],\
          ["abab", "npm:2.0.6"],\
          ["whatwg-mimetype", "npm:3.0.0"],\
          ["whatwg-url", "npm:11.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["date-fns", [\
      ["npm:2.30.0", {\
        "packageLocation": "./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-70b3e8ea7a.zip/node_modules/date-fns/",\
        "packageDependencies": [\
          ["date-fns", "npm:2.30.0"],\
          ["@babel/runtime", "npm:7.22.6"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["debug", [\
      ["npm:2.6.9", {\
        "packageLocation": "./.yarn/cache/debug-npm-2.6.9-7d4cb597dc-e07005f2b4.zip/node_modules/debug/",\
        "packageDependencies": [\
          ["debug", "npm:2.6.9"]\
        ],\
        "linkType": "SOFT"\
      }],\
      ["npm:3.2.7", {\
        "packageLocation": "./.yarn/cache/debug-npm-3.2.7-754e818c7a-d86fd7be2b.zip/node_modules/debug/",\
        "packageDependencies": [\
          ["debug", "npm:3.2.7"]\
        ],\
        "linkType": "SOFT"\
      }],\
      ["npm:4.3.3", {\
        "packageLocation": "./.yarn/cache/debug-npm-4.3.3-710fd4cc7f-723a9570dc.zip/node_modules/debug/",\
        "packageDependencies": [\
          ["debug", "npm:4.3.3"]\
        ],\
        "linkType": "SOFT"\
      }],\
      ["npm:4.3.4", {\
        "packageLocation": "./.yarn/cache/debug-npm-4.3.4-4513954577-0073c3bcbd.zip/node_modules/debug/",\
        "packageDependencies": [\
          ["debug", "npm:4.3.4"]\
        ],\
        "linkType": "SOFT"\
      }],\
      ["virtual:0b70187c8540c711e7ec6828978e1d7ecbf862adebfcbfade4bfe1470fbdf59ca56319a056ee7ea510b1dd57a2faea769d1589a1b06d26c3a84a4bd41431045b#npm:2.6.9", {\
        "packageLocation": "./.yarn/__virtual__/debug-virtual-1eba590242/0/cache/debug-npm-2.6.9-7d4cb597dc-e07005f2b4.zip/node_modules/debug/",\
        "packageDependencies": [\
          ["debug", "virtual:0b70187c8540c711e7ec6828978e1d7ecbf862adebfcbfade4bfe1470fbdf59ca56319a056ee7ea510b1dd57a2faea769d1589a1b06d26c3a84a4bd41431045b#npm:2.6.9"],\
          ["@types/supports-color", null],\
          ["ms", "npm:2.0.0"],\
          ["supports-color", "npm:8.1.1"]\
        ],\
        "packagePeers": [\
          "@types/supports-color"\
        ],\
        "linkType": "HARD"\
      }],\
      ["virtual:4248438d52dae4f796f8ae7839807024b795f7c70ddf4cbb58a4d6330ce027df2b3c8481d65b7430d525478785f68212512cd0d537d63bda0f170167a0f757f6#npm:3.2.7", {\
        "packageLocation": "./.yarn/__virtual__/debug-virtual-3091bbe68e/0/cache/debug-npm-3.2.7-754e818c7a-d86fd7be2b.zip/node_modules/debug/",\
        "packageDependencies": [\
          ["debug", "virtual:4248438d52dae4f796f8ae7839807024b795f7c70ddf4cbb58a4d6330ce027df2b3c8481d65b7430d525478785f68212512cd0d537d63bda0f170167a0f757f6#npm:3.2.7"],\
          ["@types/supports-color", null],\
          ["ms", "npm:2.1.3"],\
          ["supports-color", "npm:8.1.1"]\
        ],\
        "packagePeers": [\
          "@types/supports-color"\
        ],\
        "linkType": "HARD"\
      }],\
      ["virtual:74d1fab5177fa3d9b5330713f9165a97e07bf791e6588c23ea17dde3e0cee950bb18c0366fe88ff7556f854762863ea192e2ad8db90eee046b5cb7c387ad9e72#npm:4.3.3", {\
        "packageLocation": "./.yarn/__virtual__/debug-virtual-57c726f1da/0/cache/debug-npm-4.3.3-710fd4cc7f-723a9570dc.zip/node_modules/debug/",\
        "packageDependencies": [\
          ["debug", "virtual:74d1fab5177fa3d9b5330713f9165a97e07bf791e6588c23ea17dde3e0cee950bb18c0366fe88ff7556f854762863ea192e2ad8db90eee046b5cb7c387ad9e72#npm:4.3.3"],\
          ["@types/supports-color", null],\
          ["ms", "npm:2.1.2"],\
          ["supports-color", "npm:8.1.1"]\
        ],\
        "packagePeers": [\
          "@types/supports-color"\
        ],\
        "linkType": "HARD"\
      }],\
      ["virtual:c8a47bd44e78262f6ba81f94852e5b6ec2a824806d82727a6ba6fdf6dc4be2b7d8b5dea8ceb347fa00fa505716d763276ebc48239b4faa6fbc5f8f9d2aa668e2#npm:4.3.4", {\
        "packageLocation": "./.yarn/__virtual__/debug-virtual-056fe27713/0/cache/debug-npm-4.3.4-4513954577-0073c3bcbd.zip/node_modules/debug/",\
        "packageDependencies": [\
          ["debug", "virtual:c8a47bd44e78262f6ba81f94852e5b6ec2a824806d82727a6ba6fdf6dc4be2b7d8b5dea8ceb347fa00fa505716d763276ebc48239b4faa6fbc5f8f9d2aa668e2#npm:4.3.4"],\
          ["@types/supports-color", null],\
          ["ms", "npm:2.1.2"],\
          ["supports-color", "npm:8.1.1"]\
        ],\
        "packagePeers": [\
          "@types/supports-color"\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["decamelize", [\
      ["npm:1.2.0", {\
        "packageLocation": "./.yarn/cache/decamelize-npm-1.2.0-c5a2fdc622-ad8c51a7e7.zip/node_modules/decamelize/",\
        "packageDependencies": [\
          ["decamelize", "npm:1.2.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["decimal.js", [\
      ["npm:10.4.3", {\
        "packageLocation": "./.yarn/cache/decimal.js-npm-10.4.3-e7d483387c-de663a7bc4.zip/node_modules/decimal.js/",\
        "packageDependencies": [\
          ["decimal.js", "npm:10.4.3"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["decompress", [\
      ["npm:4.2.1", {\
        "packageLocation": "./.yarn/cache/decompress-npm-4.2.1-a79829cc55-8247a31c6d.zip/node_modules/decompress/",\
        "packageDependencies": [\
          ["decompress", "npm:4.2.1"],\
          ["decompress-tar", "npm:4.1.1"],\
          ["decompress-tarbz2", "npm:4.1.1"],\
          ["decompress-targz", "npm:4.1.1"],\
          ["decompress-unzip", "npm:4.0.1"],\
          ["graceful-fs", "npm:4.2.11"],\
          ["make-dir", "npm:1.3.0"],\
          ["pify", "npm:2.3.0"],\
          ["strip-dirs", "npm:2.1.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["decompress-response", [\
      ["npm:6.0.0", {\
        "packageLocation": "./.yarn/cache/decompress-response-npm-6.0.0-359de2878c-d377cf47e0.zip/node_modules/decompress-response/",\
        "packageDependencies": [\
          ["decompress-response", "npm:6.0.0"],\
          ["mimic-response", "npm:3.1.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["decompress-tar", [\
      ["npm:4.1.1", {\
        "packageLocation": "./.yarn/cache/decompress-tar-npm-4.1.1-ff91950fee-820c645dfa.zip/node_modules/decompress-tar/",\
        "packageDependencies": [\
          ["decompress-tar", "npm:4.1.1"],\
          ["file-type", "npm:5.2.0"],\
          ["is-stream", "npm:1.1.0"],\
          ["tar-stream", "npm:1.6.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["decompress-tarbz2", [\
      ["npm:4.1.1", {\
        "packageLocation": "./.yarn/cache/decompress-tarbz2-npm-4.1.1-69114342e0-519c813377.zip/node_modules/decompress-tarbz2/",\
        "packageDependencies": [\
          ["decompress-tarbz2", "npm:4.1.1"],\
          ["decompress-tar", "npm:4.1.1"],\
          ["file-type", "npm:6.2.0"],\
          ["is-stream", "npm:1.1.0"],\
          ["seek-bzip", "npm:1.0.6"],\
          ["unbzip2-stream", "npm:1.4.3"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["decompress-targz", [\
      ["npm:4.1.1", {\
        "packageLocation": "./.yarn/cache/decompress-targz-npm-4.1.1-444d44d5aa-22738f58eb.zip/node_modules/decompress-targz/",\
        "packageDependencies": [\
          ["decompress-targz", "npm:4.1.1"],\
          ["decompress-tar", "npm:4.1.1"],\
          ["file-type", "npm:5.2.0"],\
          ["is-stream", "npm:1.1.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["decompress-unzip", [\
      ["npm:4.0.1", {\
        "packageLocation": "./.yarn/cache/decompress-unzip-npm-4.0.1-8d93b02d1f-ba9f3204ab.zip/node_modules/decompress-unzip/",\
        "packageDependencies": [\
          ["decompress-unzip", "npm:4.0.1"],\
          ["file-type", "npm:3.9.0"],\
          ["get-stream", "npm:2.3.1"],\
          ["pify", "npm:2.3.0"],\
          ["yauzl", "npm:2.10.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["deep-email-validator", [\
      ["npm:0.1.21", {\
        "packageLocation": "./.yarn/cache/deep-email-validator-npm-0.1.21-1b8cf9cd09-f3f9e4d3bd.zip/node_modules/deep-email-validator/",\
        "packageDependencies": [\
          ["deep-email-validator", "npm:0.1.21"],\
          ["@types/disposable-email-domains", "npm:1.0.4"],\
          ["axios", "npm:0.24.0"],\
          ["disposable-email-domains", "npm:1.0.62"],\
          ["mailcheck", "npm:1.1.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["deep-equal", [\
      ["npm:1.0.1", {\
        "packageLocation": "./.yarn/cache/deep-equal-npm-1.0.1-f05565c4e5-cbecc071af.zip/node_modules/deep-equal/",\
        "packageDependencies": [\
          ["deep-equal", "npm:1.0.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["deep-is", [\
      ["npm:0.1.4", {\
        "packageLocation": "./.yarn/cache/deep-is-npm-0.1.4-88938b5a67-ec12d074ae.zip/node_modules/deep-is/",\
        "packageDependencies": [\
          ["deep-is", "npm:0.1.4"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["deepmerge", [\
      ["npm:4.3.1", {\
        "packageLocation": "./.yarn/cache/deepmerge-npm-4.3.1-4f751a0844-058d9e1b0f.zip/node_modules/deepmerge/",\
        "packageDependencies": [\
          ["deepmerge", "npm:4.3.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["defer-to-connect", [\
      ["npm:2.0.1", {\
        "packageLocation": "./.yarn/cache/defer-to-connect-npm-2.0.1-9005cc8c60-8a9b50d2f2.zip/node_modules/defer-to-connect/",\
        "packageDependencies": [\
          ["defer-to-connect", "npm:2.0.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["delayed-stream", [\
      ["npm:1.0.0", {\
        "packageLocation": "./.yarn/cache/delayed-stream-npm-1.0.0-c5a4c4cc02-46fe6e83e2.zip/node_modules/delayed-stream/",\
        "packageDependencies": [\
          ["delayed-stream", "npm:1.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["delegates", [\
      ["npm:1.0.0", {\
        "packageLocation": "./.yarn/cache/delegates-npm-1.0.0-9b1942d75f-a51744d9b5.zip/node_modules/delegates/",\
        "packageDependencies": [\
          ["delegates", "npm:1.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["denque", [\
      ["npm:2.1.0", {\
        "packageLocation": "./.yarn/cache/denque-npm-2.1.0-578d0b6297-8ea0532157.zip/node_modules/denque/",\
        "packageDependencies": [\
          ["denque", "npm:2.1.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["depd", [\
      ["npm:1.1.2", {\
        "packageLocation": "./.yarn/cache/depd-npm-1.1.2-b0c8414da7-2ed6966fc1.zip/node_modules/depd/",\
        "packageDependencies": [\
          ["depd", "npm:1.1.2"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:2.0.0", {\
        "packageLocation": "./.yarn/cache/depd-npm-2.0.0-b6c51a4b43-c0c8ff3607.zip/node_modules/depd/",\
        "packageDependencies": [\
          ["depd", "npm:2.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["destroy", [\
      ["npm:1.2.0", {\
        "packageLocation": "./.yarn/cache/destroy-npm-1.2.0-6a511802e2-0acb300b74.zip/node_modules/destroy/",\
        "packageDependencies": [\
          ["destroy", "npm:1.2.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["detect-libc", [\
      ["npm:2.0.2", {\
        "packageLocation": "./.yarn/cache/detect-libc-npm-2.0.2-03afa59137-6118f30c0c.zip/node_modules/detect-libc/",\
        "packageDependencies": [\
          ["detect-libc", "npm:2.0.2"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:2.0.3", {\
        "packageLocation": "./.yarn/cache/detect-libc-npm-2.0.3-2ddae34945-b4ea018d62.zip/node_modules/detect-libc/",\
        "packageDependencies": [\
          ["detect-libc", "npm:2.0.3"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["dezalgo", [\
      ["npm:1.0.4", {\
        "packageLocation": "./.yarn/cache/dezalgo-npm-1.0.4-ae3b673c98-895389c6ae.zip/node_modules/dezalgo/",\
        "packageDependencies": [\
          ["dezalgo", "npm:1.0.4"],\
          ["asap", "npm:2.0.6"],\
          ["wrappy", "npm:1.0.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["dijkstrajs", [\
      ["npm:1.0.3", {\
        "packageLocation": "./.yarn/cache/dijkstrajs-npm-1.0.3-d5b1d1b11a-0d8429699a.zip/node_modules/dijkstrajs/",\
        "packageDependencies": [\
          ["dijkstrajs", "npm:1.0.3"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["disposable-email-domains", [\
      ["npm:1.0.62", {\
        "packageLocation": "./.yarn/cache/disposable-email-domains-npm-1.0.62-c79270b5ba-1d683fde9b.zip/node_modules/disposable-email-domains/",\
        "packageDependencies": [\
          ["disposable-email-domains", "npm:1.0.62"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["doctrine", [\
      ["npm:3.0.0", {\
        "packageLocation": "./.yarn/cache/doctrine-npm-3.0.0-c6f1615f04-b4b28f1df5.zip/node_modules/doctrine/",\
        "packageDependencies": [\
          ["doctrine", "npm:3.0.0"],\
          ["esutils", "npm:2.0.3"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["doctypes", [\
      ["npm:1.1.0", {\
        "packageLocation": "./.yarn/cache/doctypes-npm-1.1.0-cb4fdda595-6e6c2d1a80.zip/node_modules/doctypes/",\
        "packageDependencies": [\
          ["doctypes", "npm:1.1.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["dom-serializer", [\
      ["npm:0.1.1", {\
        "packageLocation": "./.yarn/cache/dom-serializer-npm-0.1.1-4c6e4ec242-4f6a3eff80.zip/node_modules/dom-serializer/",\
        "packageDependencies": [\
          ["dom-serializer", "npm:0.1.1"],\
          ["domelementtype", "npm:1.3.1"],\
          ["entities", "npm:1.1.2"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:0.2.2", {\
        "packageLocation": "./.yarn/cache/dom-serializer-npm-0.2.2-2e24969c0e-376344893e.zip/node_modules/dom-serializer/",\
        "packageDependencies": [\
          ["dom-serializer", "npm:0.2.2"],\
          ["domelementtype", "npm:2.3.0"],\
          ["entities", "npm:2.2.0"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:2.0.0", {\
        "packageLocation": "./.yarn/cache/dom-serializer-npm-2.0.0-378ebc7200-e3bf9027a6.zip/node_modules/dom-serializer/",\
        "packageDependencies": [\
          ["dom-serializer", "npm:2.0.0"],\
          ["domelementtype", "npm:2.3.0"],\
          ["domhandler", "npm:5.0.3"],\
          ["entities", "npm:4.5.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["domelementtype", [\
      ["npm:1.3.1", {\
        "packageLocation": "./.yarn/cache/domelementtype-npm-1.3.1-87c4b5f9f4-7893da4021.zip/node_modules/domelementtype/",\
        "packageDependencies": [\
          ["domelementtype", "npm:1.3.1"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:2.3.0", {\
        "packageLocation": "./.yarn/cache/domelementtype-npm-2.3.0-02de7cbfba-ee837a318f.zip/node_modules/domelementtype/",\
        "packageDependencies": [\
          ["domelementtype", "npm:2.3.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["domexception", [\
      ["npm:4.0.0", {\
        "packageLocation": "./.yarn/cache/domexception-npm-4.0.0-5093673f9b-4ed443227d.zip/node_modules/domexception/",\
        "packageDependencies": [\
          ["domexception", "npm:4.0.0"],\
          ["webidl-conversions", "npm:7.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["domhandler", [\
      ["npm:2.4.2", {\
        "packageLocation": "./.yarn/cache/domhandler-npm-2.4.2-497ea9cea1-d8b0303c53.zip/node_modules/domhandler/",\
        "packageDependencies": [\
          ["domhandler", "npm:2.4.2"],\
          ["domelementtype", "npm:1.3.1"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:5.0.3", {\
        "packageLocation": "./.yarn/cache/domhandler-npm-5.0.3-3ede73dc10-809b805a50.zip/node_modules/domhandler/",\
        "packageDependencies": [\
          ["domhandler", "npm:5.0.3"],\
          ["domelementtype", "npm:2.3.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["domutils", [\
      ["npm:1.5.1", {\
        "packageLocation": "./.yarn/cache/domutils-npm-1.5.1-6f8de414e8-88c610e4bb.zip/node_modules/domutils/",\
        "packageDependencies": [\
          ["domutils", "npm:1.5.1"],\
          ["dom-serializer", "npm:0.2.2"],\
          ["domelementtype", "npm:1.3.1"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:1.7.0", {\
        "packageLocation": "./.yarn/cache/domutils-npm-1.7.0-7a1529fcfc-8c1d879fd3.zip/node_modules/domutils/",\
        "packageDependencies": [\
          ["domutils", "npm:1.7.0"],\
          ["dom-serializer", "npm:0.2.2"],\
          ["domelementtype", "npm:1.3.1"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:3.1.0", {\
        "packageLocation": "./.yarn/cache/domutils-npm-3.1.0-66c92ef7eb-9a169a6e57.zip/node_modules/domutils/",\
        "packageDependencies": [\
          ["domutils", "npm:3.1.0"],\
          ["dom-serializer", "npm:2.0.0"],\
          ["domelementtype", "npm:2.3.0"],\
          ["domhandler", "npm:5.0.3"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["dotenv", [\
      ["npm:16.3.1", {\
        "packageLocation": "./.yarn/cache/dotenv-npm-16.3.1-e6d380a398-dbb778237e.zip/node_modules/dotenv/",\
        "packageDependencies": [\
          ["dotenv", "npm:16.3.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["duplexify", [\
      ["npm:3.7.1", {\
        "packageLocation": "./.yarn/cache/duplexify-npm-3.7.1-8f4f1e821f-7799984d17.zip/node_modules/duplexify/",\
        "packageDependencies": [\
          ["duplexify", "npm:3.7.1"],\
          ["end-of-stream", "npm:1.4.4"],\
          ["inherits", "npm:2.0.4"],\
          ["readable-stream", "npm:2.3.8"],\
          ["stream-shift", "npm:1.0.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["eastasianwidth", [\
      ["npm:0.2.0", {\
        "packageLocation": "./.yarn/cache/eastasianwidth-npm-0.2.0-c37eb16bd1-9b1d3e1bae.zip/node_modules/eastasianwidth/",\
        "packageDependencies": [\
          ["eastasianwidth", "npm:0.2.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["ecc-jsbn", [\
      ["npm:0.1.2", {\
        "packageLocation": "./.yarn/cache/ecc-jsbn-npm-0.1.2-85b7a7be89-d43591f239.zip/node_modules/ecc-jsbn/",\
        "packageDependencies": [\
          ["ecc-jsbn", "npm:0.1.2"],\
          ["jsbn", "npm:0.1.1"],\
          ["safer-buffer", "npm:2.1.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["ecdsa-sig-formatter", [\
      ["npm:1.0.11", {\
        "packageLocation": "./.yarn/cache/ecdsa-sig-formatter-npm-1.0.11-b6784e7852-878e1aab8a.zip/node_modules/ecdsa-sig-formatter/",\
        "packageDependencies": [\
          ["ecdsa-sig-formatter", "npm:1.0.11"],\
          ["safe-buffer", "npm:5.2.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["editorconfig", [\
      ["npm:1.0.4", {\
        "packageLocation": "./.yarn/cache/editorconfig-npm-1.0.4-95c5a5b144-bd0a7236f3.zip/node_modules/editorconfig/",\
        "packageDependencies": [\
          ["editorconfig", "npm:1.0.4"],\
          ["@one-ini/wasm", "npm:0.1.1"],\
          ["commander", "npm:10.0.1"],\
          ["minimatch", "npm:9.0.1"],\
          ["semver", "npm:7.5.4"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["ee-first", [\
      ["npm:1.1.1", {\
        "packageLocation": "./.yarn/cache/ee-first-npm-1.1.1-33f8535b39-1b4cac778d.zip/node_modules/ee-first/",\
        "packageDependencies": [\
          ["ee-first", "npm:1.1.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["ejs", [\
      ["npm:3.1.10", {\
        "packageLocation": "./.yarn/cache/ejs-npm-3.1.10-4e8cf4bdc1-a9cb7d7cd1.zip/node_modules/ejs/",\
        "packageDependencies": [\
          ["ejs", "npm:3.1.10"],\
          ["jake", "npm:10.8.7"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:3.1.9", {\
        "packageLocation": "./.yarn/cache/ejs-npm-3.1.9-e201b2088c-71f56d3754.zip/node_modules/ejs/",\
        "packageDependencies": [\
          ["ejs", "npm:3.1.9"],\
          ["jake", "npm:10.8.7"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["electron-to-chromium", [\
      ["npm:1.4.473", {\
        "packageLocation": "./.yarn/cache/electron-to-chromium-npm-1.4.473-2651c3d676-6065e10925.zip/node_modules/electron-to-chromium/",\
        "packageDependencies": [\
          ["electron-to-chromium", "npm:1.4.473"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["emoji-regex", [\
      ["npm:8.0.0", {\
        "packageLocation": "./.yarn/cache/emoji-regex-npm-8.0.0-213764015c-c72d67a682.zip/node_modules/emoji-regex/",\
        "packageDependencies": [\
          ["emoji-regex", "npm:8.0.0"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:9.2.2", {\
        "packageLocation": "./.yarn/cache/emoji-regex-npm-9.2.2-e6fac8d058-915acf859c.zip/node_modules/emoji-regex/",\
        "packageDependencies": [\
          ["emoji-regex", "npm:9.2.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["encode-utf8", [\
      ["npm:1.0.3", {\
        "packageLocation": "./.yarn/cache/encode-utf8-npm-1.0.3-8f92a23782-0204c37cda.zip/node_modules/encode-utf8/",\
        "packageDependencies": [\
          ["encode-utf8", "npm:1.0.3"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["encodeurl", [\
      ["npm:1.0.2", {\
        "packageLocation": "./.yarn/cache/encodeurl-npm-1.0.2-f8c8454c41-e50e3d508c.zip/node_modules/encodeurl/",\
        "packageDependencies": [\
          ["encodeurl", "npm:1.0.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["encoding", [\
      ["npm:0.1.13", {\
        "packageLocation": "./.yarn/cache/encoding-npm-0.1.13-82a1837d30-bb98632f8f.zip/node_modules/encoding/",\
        "packageDependencies": [\
          ["encoding", "npm:0.1.13"],\
          ["iconv-lite", "npm:0.6.3"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["end-of-stream", [\
      ["npm:1.4.4", {\
        "packageLocation": "./.yarn/cache/end-of-stream-npm-1.4.4-497fc6dee1-530a5a5a1e.zip/node_modules/end-of-stream/",\
        "packageDependencies": [\
          ["end-of-stream", "npm:1.4.4"],\
          ["once", "npm:1.4.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["entities", [\
      ["npm:1.1.2", {\
        "packageLocation": "./.yarn/cache/entities-npm-1.1.2-78e77a4b6d-4a707022f4.zip/node_modules/entities/",\
        "packageDependencies": [\
          ["entities", "npm:1.1.2"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:2.2.0", {\
        "packageLocation": "./.yarn/cache/entities-npm-2.2.0-0fc8d5b2f7-2c765221ee.zip/node_modules/entities/",\
        "packageDependencies": [\
          ["entities", "npm:2.2.0"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:4.5.0", {\
        "packageLocation": "./.yarn/cache/entities-npm-4.5.0-7cdb83b832-ede2a35c9b.zip/node_modules/entities/",\
        "packageDependencies": [\
          ["entities", "npm:4.5.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["env-paths", [\
      ["npm:2.2.1", {\
        "packageLocation": "./.yarn/cache/env-paths-npm-2.2.1-7c7577428c-65b5df55a8.zip/node_modules/env-paths/",\
        "packageDependencies": [\
          ["env-paths", "npm:2.2.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["err-code", [\
      ["npm:2.0.3", {\
        "packageLocation": "./.yarn/cache/err-code-npm-2.0.3-082e0ff9a7-1d20d825cd.zip/node_modules/err-code/",\
        "packageDependencies": [\
          ["err-code", "npm:2.0.3"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["es5-ext", [\
      ["npm:0.10.62", {\
        "packageLocation": "./.yarn/unplugged/es5-ext-npm-0.10.62-f20aca46cb/node_modules/es5-ext/",\
        "packageDependencies": [\
          ["es5-ext", "npm:0.10.62"],\
          ["es6-iterator", "npm:2.0.3"],\
          ["es6-symbol", "npm:3.1.3"],\
          ["next-tick", "npm:1.1.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["es6-iterator", [\
      ["npm:2.0.3", {\
        "packageLocation": "./.yarn/cache/es6-iterator-npm-2.0.3-4dadb0ccc1-dbadecf3d0.zip/node_modules/es6-iterator/",\
        "packageDependencies": [\
          ["es6-iterator", "npm:2.0.3"],\
          ["d", "npm:1.0.1"],\
          ["es5-ext", "npm:0.10.62"],\
          ["es6-symbol", "npm:3.1.3"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["es6-symbol", [\
      ["npm:3.1.3", {\
        "packageLocation": "./.yarn/cache/es6-symbol-npm-3.1.3-34d72f2a23-b404e5ecae.zip/node_modules/es6-symbol/",\
        "packageDependencies": [\
          ["es6-symbol", "npm:3.1.3"],\
          ["d", "npm:1.0.1"],\
          ["ext", "npm:1.7.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["escalade", [\
      ["npm:3.1.1", {\
        "packageLocation": "./.yarn/cache/escalade-npm-3.1.1-e02da076aa-afa618e733.zip/node_modules/escalade/",\
        "packageDependencies": [\
          ["escalade", "npm:3.1.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["escape-html", [\
      ["npm:1.0.3", {\
        "packageLocation": "./.yarn/cache/escape-html-npm-1.0.3-376c22ee74-6213ca9ae0.zip/node_modules/escape-html/",\
        "packageDependencies": [\
          ["escape-html", "npm:1.0.3"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["escape-regexp", [\
      ["npm:0.0.1", {\
        "packageLocation": "./.yarn/cache/escape-regexp-npm-0.0.1-7eb3cb9cd0-abb22ce7a1.zip/node_modules/escape-regexp/",\
        "packageDependencies": [\
          ["escape-regexp", "npm:0.0.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["escape-string-regexp", [\
      ["npm:1.0.5", {\
        "packageLocation": "./.yarn/cache/escape-string-regexp-npm-1.0.5-3284de402f-6092fda75c.zip/node_modules/escape-string-regexp/",\
        "packageDependencies": [\
          ["escape-string-regexp", "npm:1.0.5"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:4.0.0", {\
        "packageLocation": "./.yarn/cache/escape-string-regexp-npm-4.0.0-4b531d8d59-98b48897d9.zip/node_modules/escape-string-regexp/",\
        "packageDependencies": [\
          ["escape-string-regexp", "npm:4.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["escodegen", [\
      ["npm:2.1.0", {\
        "packageLocation": "./.yarn/cache/escodegen-npm-2.1.0-e0bf940745-47719a65b2.zip/node_modules/escodegen/",\
        "packageDependencies": [\
          ["escodegen", "npm:2.1.0"],\
          ["esprima", "npm:4.0.1"],\
          ["estraverse", "npm:5.3.0"],\
          ["esutils", "npm:2.0.3"],\
          ["source-map", "npm:0.6.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["eslint", [\
      ["npm:8.45.0", {\
        "packageLocation": "./.yarn/cache/eslint-npm-8.45.0-a03a909c3f-54820753ae.zip/node_modules/eslint/",\
        "packageDependencies": [\
          ["eslint", "npm:8.45.0"],\
          ["@eslint-community/eslint-utils", "virtual:a03a909c3f5870829b2a1f1c58cd72dd0904272c636f0500be601a3bd781404d19a891ad23156b2b680426d08dbfc464b1e4ab195d463ee4ff16262a9e851f5e#npm:4.4.0"],\
          ["@eslint-community/regexpp", "npm:4.6.2"],\
          ["@eslint/eslintrc", "npm:2.1.0"],\
          ["@eslint/js", "npm:8.44.0"],\
          ["@humanwhocodes/config-array", "npm:0.11.10"],\
          ["@humanwhocodes/module-importer", "npm:1.0.1"],\
          ["@nodelib/fs.walk", "npm:1.2.8"],\
          ["ajv", "npm:6.12.6"],\
          ["chalk", "npm:4.1.2"],\
          ["cross-spawn", "npm:7.0.3"],\
          ["debug", "virtual:c8a47bd44e78262f6ba81f94852e5b6ec2a824806d82727a6ba6fdf6dc4be2b7d8b5dea8ceb347fa00fa505716d763276ebc48239b4faa6fbc5f8f9d2aa668e2#npm:4.3.4"],\
          ["doctrine", "npm:3.0.0"],\
          ["escape-string-regexp", "npm:4.0.0"],\
          ["eslint-scope", "npm:7.2.1"],\
          ["eslint-visitor-keys", "npm:3.4.1"],\
          ["espree", "npm:9.6.1"],\
          ["esquery", "npm:1.5.0"],\
          ["esutils", "npm:2.0.3"],\
          ["fast-deep-equal", "npm:3.1.3"],\
          ["file-entry-cache", "npm:6.0.1"],\
          ["find-up", "npm:5.0.0"],\
          ["glob-parent", "npm:6.0.2"],\
          ["globals", "npm:13.20.0"],\
          ["graphemer", "npm:1.4.0"],\
          ["ignore", "npm:5.2.4"],\
          ["imurmurhash", "npm:0.1.4"],\
          ["is-glob", "npm:4.0.3"],\
          ["is-path-inside", "npm:3.0.3"],\
          ["js-yaml", "npm:4.1.0"],\
          ["json-stable-stringify-without-jsonify", "npm:1.0.1"],\
          ["levn", "npm:0.4.1"],\
          ["lodash.merge", "npm:4.6.2"],\
          ["minimatch", "npm:3.1.2"],\
          ["natural-compare", "npm:1.4.0"],\
          ["optionator", "npm:0.9.3"],\
          ["strip-ansi", "npm:6.0.1"],\
          ["text-table", "npm:0.2.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["eslint-scope", [\
      ["npm:7.2.1", {\
        "packageLocation": "./.yarn/cache/eslint-scope-npm-7.2.1-48811e2821-37573e8fdd.zip/node_modules/eslint-scope/",\
        "packageDependencies": [\
          ["eslint-scope", "npm:7.2.1"],\
          ["esrecurse", "npm:4.3.0"],\
          ["estraverse", "npm:5.3.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["eslint-visitor-keys", [\
      ["npm:1.3.0", {\
        "packageLocation": "./.yarn/cache/eslint-visitor-keys-npm-1.3.0-c07780a0fb-595ab230e0.zip/node_modules/eslint-visitor-keys/",\
        "packageDependencies": [\
          ["eslint-visitor-keys", "npm:1.3.0"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:3.4.1", {\
        "packageLocation": "./.yarn/cache/eslint-visitor-keys-npm-3.4.1-a5d0a58208-92641e7ccd.zip/node_modules/eslint-visitor-keys/",\
        "packageDependencies": [\
          ["eslint-visitor-keys", "npm:3.4.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["espree", [\
      ["npm:9.6.1", {\
        "packageLocation": "./.yarn/cache/espree-npm-9.6.1-a50722a5a9-255ab260f0.zip/node_modules/espree/",\
        "packageDependencies": [\
          ["espree", "npm:9.6.1"],\
          ["acorn", "npm:8.10.0"],\
          ["acorn-jsx", "virtual:a50722a5a9326b6a5f12350c494c4db3aa0f4caeac45e3e9e5fe071da20014ecfe738fe2ebe2c9c98abae81a4ea86b42f56d776b3bd5ec37f9ad3670c242b242#npm:5.3.2"],\
          ["eslint-visitor-keys", "npm:3.4.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["esprima", [\
      ["npm:4.0.1", {\
        "packageLocation": "./.yarn/cache/esprima-npm-4.0.1-1084e98778-f1d3c622ad.zip/node_modules/esprima/",\
        "packageDependencies": [\
          ["esprima", "npm:4.0.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["esquery", [\
      ["npm:1.5.0", {\
        "packageLocation": "./.yarn/cache/esquery-npm-1.5.0-d8f8a06879-e65fcdfc1e.zip/node_modules/esquery/",\
        "packageDependencies": [\
          ["esquery", "npm:1.5.0"],\
          ["estraverse", "npm:5.3.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["esrecurse", [\
      ["npm:4.3.0", {\
        "packageLocation": "./.yarn/cache/esrecurse-npm-4.3.0-10b86a887a-44ffcd89e7.zip/node_modules/esrecurse/",\
        "packageDependencies": [\
          ["esrecurse", "npm:4.3.0"],\
          ["estraverse", "npm:5.3.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["estraverse", [\
      ["npm:5.3.0", {\
        "packageLocation": "./.yarn/cache/estraverse-npm-5.3.0-03284f8f63-37cbe6e9a6.zip/node_modules/estraverse/",\
        "packageDependencies": [\
          ["estraverse", "npm:5.3.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["esutils", [\
      ["npm:2.0.3", {\
        "packageLocation": "./.yarn/cache/esutils-npm-2.0.3-f865beafd5-b23acd2479.zip/node_modules/esutils/",\
        "packageDependencies": [\
          ["esutils", "npm:2.0.3"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["event-target-shim", [\
      ["npm:5.0.1", {\
        "packageLocation": "./.yarn/cache/event-target-shim-npm-5.0.1-cb48709025-49ff46c3a7.zip/node_modules/event-target-shim/",\
        "packageDependencies": [\
          ["event-target-shim", "npm:5.0.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["eventemitter3", [\
      ["npm:4.0.7", {\
        "packageLocation": "./.yarn/unplugged/eventemitter3-npm-4.0.7-7afcdd74ae/node_modules/eventemitter3/",\
        "packageDependencies": [\
          ["eventemitter3", "npm:4.0.7"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["events", [\
      ["npm:1.1.1", {\
        "packageLocation": "./.yarn/cache/events-npm-1.1.1-ca9e5d580e-524355c436.zip/node_modules/events/",\
        "packageDependencies": [\
          ["events", "npm:1.1.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["exponential-backoff", [\
      ["npm:3.1.1", {\
        "packageLocation": "./.yarn/cache/exponential-backoff-npm-3.1.1-04df458b30-2d9bbb6473.zip/node_modules/exponential-backoff/",\
        "packageDependencies": [\
          ["exponential-backoff", "npm:3.1.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["ext", [\
      ["npm:1.7.0", {\
        "packageLocation": "./.yarn/cache/ext-npm-1.7.0-580588ab93-666a135980.zip/node_modules/ext/",\
        "packageDependencies": [\
          ["ext", "npm:1.7.0"],\
          ["type", "npm:2.7.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["extend-shallow", [\
      ["npm:2.0.1", {\
        "packageLocation": "./.yarn/cache/extend-shallow-npm-2.0.1-e6ef52b29c-8fb58d9d7a.zip/node_modules/extend-shallow/",\
        "packageDependencies": [\
          ["extend-shallow", "npm:2.0.1"],\
          ["is-extendable", "npm:0.1.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["extsprintf", [\
      ["npm:1.3.0", {\
        "packageLocation": "./.yarn/cache/extsprintf-npm-1.3.0-61a92b324c-26967d6c7e.zip/node_modules/extsprintf/",\
        "packageDependencies": [\
          ["extsprintf", "npm:1.3.0"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:1.4.1", {\
        "packageLocation": "./.yarn/cache/extsprintf-npm-1.4.1-140b2f27ab-bfd6d55f3c.zip/node_modules/extsprintf/",\
        "packageDependencies": [\
          ["extsprintf", "npm:1.4.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["fast-deep-equal", [\
      ["npm:3.1.3", {\
        "packageLocation": "./.yarn/cache/fast-deep-equal-npm-3.1.3-790edcfcf5-e21a9d8d84.zip/node_modules/fast-deep-equal/",\
        "packageDependencies": [\
          ["fast-deep-equal", "npm:3.1.3"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["fast-fifo", [\
      ["npm:1.3.0", {\
        "packageLocation": "./.yarn/cache/fast-fifo-npm-1.3.0-bd15200000-edc589b818.zip/node_modules/fast-fifo/",\
        "packageDependencies": [\
          ["fast-fifo", "npm:1.3.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["fast-json-stable-stringify", [\
      ["npm:2.1.0", {\
        "packageLocation": "./.yarn/cache/fast-json-stable-stringify-npm-2.1.0-02e8905fda-2c20055c1f.zip/node_modules/fast-json-stable-stringify/",\
        "packageDependencies": [\
          ["fast-json-stable-stringify", "npm:2.1.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["fast-levenshtein", [\
      ["npm:2.0.6", {\
        "packageLocation": "./.yarn/cache/fast-levenshtein-npm-2.0.6-fcd74b8df5-eb7e220ecf.zip/node_modules/fast-levenshtein/",\
        "packageDependencies": [\
          ["fast-levenshtein", "npm:2.0.6"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["fast-xml-parser", [\
      ["npm:3.21.1", {\
        "packageLocation": "./.yarn/cache/fast-xml-parser-npm-3.21.1-d651ad1d26-f9adbd8ae7.zip/node_modules/fast-xml-parser/",\
        "packageDependencies": [\
          ["fast-xml-parser", "npm:3.21.1"],\
          ["strnum", "npm:1.0.5"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:4.2.7", {\
        "packageLocation": "./.yarn/cache/fast-xml-parser-npm-4.2.7-c57a954c1f-012febec63.zip/node_modules/fast-xml-parser/",\
        "packageDependencies": [\
          ["fast-xml-parser", "npm:4.2.7"],\
          ["strnum", "npm:1.0.5"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["fastq", [\
      ["npm:1.15.0", {\
        "packageLocation": "./.yarn/cache/fastq-npm-1.15.0-1013f6514e-67c01b1c97.zip/node_modules/fastq/",\
        "packageDependencies": [\
          ["fastq", "npm:1.15.0"],\
          ["reusify", "npm:1.0.4"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["fd-slicer", [\
      ["npm:1.1.0", {\
        "packageLocation": "./.yarn/cache/fd-slicer-npm-1.1.0-3cade0050a-db3e34fa48.zip/node_modules/fd-slicer/",\
        "packageDependencies": [\
          ["fd-slicer", "npm:1.1.0"],\
          ["pend", "npm:1.2.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["fdir", [\
      ["npm:6.4.6", {\
        "packageLocation": "./.yarn/cache/fdir-npm-6.4.6-52922d4c25-c186ba387e.zip/node_modules/fdir/",\
        "packageDependencies": [\
          ["fdir", "npm:6.4.6"]\
        ],\
        "linkType": "SOFT"\
      }],\
      ["virtual:d4e4bcf80e67f9de0540c123c7c4882e34dce6a8ba807a0a834f267f9132ee6bd264e69a49c6203aa89877ed3a5a5d633bfa002384881be452cc3a2d2fbcce0b#npm:6.4.6", {\
        "packageLocation": "./.yarn/__virtual__/fdir-virtual-895faf82c5/0/cache/fdir-npm-6.4.6-52922d4c25-c186ba387e.zip/node_modules/fdir/",\
        "packageDependencies": [\
          ["fdir", "virtual:d4e4bcf80e67f9de0540c123c7c4882e34dce6a8ba807a0a834f267f9132ee6bd264e69a49c6203aa89877ed3a5a5d633bfa002384881be452cc3a2d2fbcce0b#npm:6.4.6"],\
          ["@types/picomatch", null],\
          ["picomatch", "npm:4.0.2"]\
        ],\
        "packagePeers": [\
          "@types/picomatch",\
          "picomatch"\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["feed", [\
      ["npm:4.2.2", {\
        "packageLocation": "./.yarn/cache/feed-npm-4.2.2-0c45e7a1e4-6aeee26b92.zip/node_modules/feed/",\
        "packageDependencies": [\
          ["feed", "npm:4.2.2"],\
          ["xml-js", "npm:1.6.11"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["fetch-blob", [\
      ["npm:3.2.0", {\
        "packageLocation": "./.yarn/cache/fetch-blob-npm-3.2.0-28e01becfc-5264ecceb5.zip/node_modules/fetch-blob/",\
        "packageDependencies": [\
          ["fetch-blob", "npm:3.2.0"],\
          ["node-domexception", "npm:1.0.0"],\
          ["web-streams-polyfill", "npm:3.2.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["file-entry-cache", [\
      ["npm:6.0.1", {\
        "packageLocation": "./.yarn/cache/file-entry-cache-npm-6.0.1-31965cf0af-099bb9d4ab.zip/node_modules/file-entry-cache/",\
        "packageDependencies": [\
          ["file-entry-cache", "npm:6.0.1"],\
          ["flat-cache", "npm:3.0.4"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["file-type", [\
      ["npm:12.4.2", {\
        "packageLocation": "./.yarn/cache/file-type-npm-12.4.2-29293a3683-92866cf59f.zip/node_modules/file-type/",\
        "packageDependencies": [\
          ["file-type", "npm:12.4.2"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:17.1.6", {\
        "packageLocation": "./.yarn/cache/file-type-npm-17.1.6-5b81491f99-47c69b4046.zip/node_modules/file-type/",\
        "packageDependencies": [\
          ["file-type", "npm:17.1.6"],\
          ["readable-web-to-node-stream", "npm:3.0.2"],\
          ["strtok3", "npm:7.0.0"],\
          ["token-types", "npm:5.0.1"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:3.9.0", {\
        "packageLocation": "./.yarn/cache/file-type-npm-3.9.0-fec2c20533-1c8bc99bbb.zip/node_modules/file-type/",\
        "packageDependencies": [\
          ["file-type", "npm:3.9.0"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:5.2.0", {\
        "packageLocation": "./.yarn/cache/file-type-npm-5.2.0-d8b09d0b59-73b44eaba7.zip/node_modules/file-type/",\
        "packageDependencies": [\
          ["file-type", "npm:5.2.0"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:6.2.0", {\
        "packageLocation": "./.yarn/cache/file-type-npm-6.2.0-0b469e4b41-c7214c3cf6.zip/node_modules/file-type/",\
        "packageDependencies": [\
          ["file-type", "npm:6.2.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["filelist", [\
      ["npm:1.0.4", {\
        "packageLocation": "./.yarn/cache/filelist-npm-1.0.4-3a835ae0a7-4b436fa944.zip/node_modules/filelist/",\
        "packageDependencies": [\
          ["filelist", "npm:1.0.4"],\
          ["minimatch", "npm:5.1.6"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["find-up", [\
      ["npm:4.1.0", {\
        "packageLocation": "./.yarn/cache/find-up-npm-4.1.0-c3ccf8d855-4c172680e8.zip/node_modules/find-up/",\
        "packageDependencies": [\
          ["find-up", "npm:4.1.0"],\
          ["locate-path", "npm:5.0.0"],\
          ["path-exists", "npm:4.0.0"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:5.0.0", {\
        "packageLocation": "./.yarn/cache/find-up-npm-5.0.0-e03e9b796d-07955e3573.zip/node_modules/find-up/",\
        "packageDependencies": [\
          ["find-up", "npm:5.0.0"],\
          ["locate-path", "npm:6.0.0"],\
          ["path-exists", "npm:4.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["fix-esm", [\
      ["npm:1.0.1", {\
        "packageLocation": "./.yarn/cache/fix-esm-npm-1.0.1-f37e52f4ce-002b105fa2.zip/node_modules/fix-esm/",\
        "packageDependencies": [\
          ["fix-esm", "npm:1.0.1"],\
          ["@babel/core", "npm:7.22.9"],\
          ["@babel/plugin-proposal-export-namespace-from", "virtual:f37e52f4cec6962b293da6ad0f4c1028db6eb2e4c3a4cd4cb87e83e042f6fd08f654e6021358fe8265be1877a4951ad87003fac4d8116131553d25625b431de2#npm:7.18.9"],\
          ["@babel/plugin-transform-modules-commonjs", "virtual:f37e52f4cec6962b293da6ad0f4c1028db6eb2e4c3a4cd4cb87e83e042f6fd08f654e6021358fe8265be1877a4951ad87003fac4d8116131553d25625b431de2#npm:7.22.5"],\
          ["multer", "npm:1.4.4-lts.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["flat-cache", [\
      ["npm:3.0.4", {\
        "packageLocation": "./.yarn/cache/flat-cache-npm-3.0.4-ee77e5911e-9fe5d0cb97.zip/node_modules/flat-cache/",\
        "packageDependencies": [\
          ["flat-cache", "npm:3.0.4"],\
          ["flatted", "npm:3.2.7"],\
          ["rimraf", "npm:3.0.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["flatted", [\
      ["npm:3.2.7", {\
        "packageLocation": "./.yarn/cache/flatted-npm-3.2.7-0da10b7c56-427633049d.zip/node_modules/flatted/",\
        "packageDependencies": [\
          ["flatted", "npm:3.2.7"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["fluent-ffmpeg", [\
      ["npm:2.1.2", {\
        "packageLocation": "./.yarn/cache/fluent-ffmpeg-npm-2.1.2-692c218f68-a6810fefd4.zip/node_modules/fluent-ffmpeg/",\
        "packageDependencies": [\
          ["fluent-ffmpeg", "npm:2.1.2"],\
          ["async", "npm:3.2.4"],\
          ["which", "npm:1.3.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["follow-redirects", [\
      ["npm:1.15.2", {\
        "packageLocation": "./.yarn/cache/follow-redirects-npm-1.15.2-1ec1dd82be-8be0d39919.zip/node_modules/follow-redirects/",\
        "packageDependencies": [\
          ["follow-redirects", "npm:1.15.2"]\
        ],\
        "linkType": "SOFT"\
      }],\
      ["virtual:39e5c1e79ea63134f0cf339f4463df92854aaf708a45210afd29a0b4b9f67f95b34a1abbcabaae6d0033ad99a1d5f690ab51ed8e5d3283b87ccbc3a9ab3ec05f#npm:1.15.2", {\
        "packageLocation": "./.yarn/__virtual__/follow-redirects-virtual-2c858e005e/0/cache/follow-redirects-npm-1.15.2-1ec1dd82be-8be0d39919.zip/node_modules/follow-redirects/",\
        "packageDependencies": [\
          ["follow-redirects", "virtual:39e5c1e79ea63134f0cf339f4463df92854aaf708a45210afd29a0b4b9f67f95b34a1abbcabaae6d0033ad99a1d5f690ab51ed8e5d3283b87ccbc3a9ab3ec05f#npm:1.15.2"],\
          ["@types/debug", null],\
          ["debug", null]\
        ],\
        "packagePeers": [\
          "@types/debug",\
          "debug"\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["for-each", [\
      ["npm:0.3.3", {\
        "packageLocation": "./.yarn/cache/for-each-npm-0.3.3-0010ca8cdd-fdac0cde1b.zip/node_modules/for-each/",\
        "packageDependencies": [\
          ["for-each", "npm:0.3.3"],\
          ["is-callable", "npm:1.2.7"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["foreground-child", [\
      ["npm:3.1.1", {\
        "packageLocation": "./.yarn/cache/foreground-child-npm-3.1.1-77e78ed774-087edd4485.zip/node_modules/foreground-child/",\
        "packageDependencies": [\
          ["foreground-child", "npm:3.1.1"],\
          ["cross-spawn", "npm:7.0.3"],\
          ["signal-exit", "npm:4.0.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["form-data", [\
      ["npm:4.0.0", {\
        "packageLocation": "./.yarn/cache/form-data-npm-4.0.0-916facec2d-7264aa760a.zip/node_modules/form-data/",\
        "packageDependencies": [\
          ["form-data", "npm:4.0.0"],\
          ["asynckit", "npm:0.4.0"],\
          ["combined-stream", "npm:1.0.8"],\
          ["mime-types", "npm:2.1.35"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["form-data-encoder", [\
      ["npm:2.1.4", {\
        "packageLocation": "./.yarn/cache/form-data-encoder-npm-2.1.4-6f48cca6c9-3778e7db3c.zip/node_modules/form-data-encoder/",\
        "packageDependencies": [\
          ["form-data-encoder", "npm:2.1.4"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["formdata-polyfill", [\
      ["npm:4.0.10", {\
        "packageLocation": "./.yarn/cache/formdata-polyfill-npm-4.0.10-e03013c013-9b5001d2ed.zip/node_modules/formdata-polyfill/",\
        "packageDependencies": [\
          ["formdata-polyfill", "npm:4.0.10"],\
          ["fetch-blob", "npm:3.2.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["formidable", [\
      ["npm:2.1.2", {\
        "packageLocation": "./.yarn/cache/formidable-npm-2.1.2-40ba18d67f-d385180e04.zip/node_modules/formidable/",\
        "packageDependencies": [\
          ["formidable", "npm:2.1.2"],\
          ["dezalgo", "npm:1.0.4"],\
          ["hexoid", "npm:1.0.0"],\
          ["once", "npm:1.4.0"],\
          ["qs", "npm:6.11.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["fresh", [\
      ["npm:0.5.2", {\
        "packageLocation": "./.yarn/cache/fresh-npm-0.5.2-ad2bb4c0a2-64c88e489b.zip/node_modules/fresh/",\
        "packageDependencies": [\
          ["fresh", "npm:0.5.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["fs-constants", [\
      ["npm:1.0.0", {\
        "packageLocation": "./.yarn/cache/fs-constants-npm-1.0.0-59576b2177-18f5b71837.zip/node_modules/fs-constants/",\
        "packageDependencies": [\
          ["fs-constants", "npm:1.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["fs-extra", [\
      ["npm:8.1.0", {\
        "packageLocation": "./.yarn/cache/fs-extra-npm-8.1.0-197473387f-6fb12449f5.zip/node_modules/fs-extra/",\
        "packageDependencies": [\
          ["fs-extra", "npm:8.1.0"],\
          ["graceful-fs", "npm:4.2.11"],\
          ["jsonfile", "npm:4.0.0"],\
          ["universalify", "npm:0.1.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["fs-minipass", [\
      ["npm:2.1.0", {\
        "packageLocation": "./.yarn/cache/fs-minipass-npm-2.1.0-501ef87306-03191781e9.zip/node_modules/fs-minipass/",\
        "packageDependencies": [\
          ["fs-minipass", "npm:2.1.0"],\
          ["minipass", "npm:3.3.6"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:3.0.2", {\
        "packageLocation": "./.yarn/cache/fs-minipass-npm-3.0.2-a27ef235f5-1c071b5b8f.zip/node_modules/fs-minipass/",\
        "packageDependencies": [\
          ["fs-minipass", "npm:3.0.2"],\
          ["minipass", "npm:5.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["fs.realpath", [\
      ["npm:1.0.0", {\
        "packageLocation": "./.yarn/cache/fs.realpath-npm-1.0.0-c8f05d8126-e703107c28.zip/node_modules/fs.realpath/",\
        "packageDependencies": [\
          ["fs.realpath", "npm:1.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["function-bind", [\
      ["npm:1.1.1", {\
        "packageLocation": "./.yarn/cache/function-bind-npm-1.1.1-b56b322ae9-d83f296803.zip/node_modules/function-bind/",\
        "packageDependencies": [\
          ["function-bind", "npm:1.1.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["gauge", [\
      ["npm:3.0.2", {\
        "packageLocation": "./.yarn/cache/gauge-npm-3.0.2-9e22f7af9e-46df086451.zip/node_modules/gauge/",\
        "packageDependencies": [\
          ["gauge", "npm:3.0.2"],\
          ["aproba", "npm:2.0.0"],\
          ["color-support", "npm:1.1.3"],\
          ["console-control-strings", "npm:1.1.0"],\
          ["has-unicode", "npm:2.0.1"],\
          ["object-assign", "npm:4.1.1"],\
          ["signal-exit", "npm:3.0.7"],\
          ["string-width", "npm:4.2.3"],\
          ["strip-ansi", "npm:6.0.1"],\
          ["wide-align", "npm:1.1.5"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:4.0.4", {\
        "packageLocation": "./.yarn/cache/gauge-npm-4.0.4-8f878385e9-09535dd53b.zip/node_modules/gauge/",\
        "packageDependencies": [\
          ["gauge", "npm:4.0.4"],\
          ["aproba", "npm:2.0.0"],\
          ["color-support", "npm:1.1.3"],\
          ["console-control-strings", "npm:1.1.0"],\
          ["has-unicode", "npm:2.0.1"],\
          ["signal-exit", "npm:3.0.7"],\
          ["string-width", "npm:4.2.3"],\
          ["strip-ansi", "npm:6.0.1"],\
          ["wide-align", "npm:1.1.5"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["gensync", [\
      ["npm:1.0.0-beta.2", {\
        "packageLocation": "./.yarn/cache/gensync-npm-1.0.0-beta.2-224666d72f-17d8333460.zip/node_modules/gensync/",\
        "packageDependencies": [\
          ["gensync", "npm:1.0.0-beta.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["get-caller-file", [\
      ["npm:2.0.5", {\
        "packageLocation": "./.yarn/cache/get-caller-file-npm-2.0.5-80e8a86305-b9769a836d.zip/node_modules/get-caller-file/",\
        "packageDependencies": [\
          ["get-caller-file", "npm:2.0.5"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["get-intrinsic", [\
      ["npm:1.2.1", {\
        "packageLocation": "./.yarn/cache/get-intrinsic-npm-1.2.1-ae857fd610-aee6318520.zip/node_modules/get-intrinsic/",\
        "packageDependencies": [\
          ["get-intrinsic", "npm:1.2.1"],\
          ["function-bind", "npm:1.1.1"],\
          ["has", "npm:1.0.3"],\
          ["has-proto", "npm:1.0.1"],\
          ["has-symbols", "npm:1.0.3"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["get-paths", [\
      ["npm:0.0.7", {\
        "packageLocation": "./.yarn/cache/get-paths-npm-0.0.7-8e806f47a2-6ad33c3137.zip/node_modules/get-paths/",\
        "packageDependencies": [\
          ["get-paths", "npm:0.0.7"],\
          ["pify", "npm:4.0.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["get-stream", [\
      ["npm:2.3.1", {\
        "packageLocation": "./.yarn/cache/get-stream-npm-2.3.1-1755f3cab9-712738e6a3.zip/node_modules/get-stream/",\
        "packageDependencies": [\
          ["get-stream", "npm:2.3.1"],\
          ["object-assign", "npm:4.1.1"],\
          ["pinkie-promise", "npm:2.0.1"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:5.2.0", {\
        "packageLocation": "./.yarn/cache/get-stream-npm-5.2.0-2cfd3b452b-13a73148dc.zip/node_modules/get-stream/",\
        "packageDependencies": [\
          ["get-stream", "npm:5.2.0"],\
          ["pump", "npm:3.0.0"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:6.0.1", {\
        "packageLocation": "./.yarn/cache/get-stream-npm-6.0.1-83e51a4642-781266d297.zip/node_modules/get-stream/",\
        "packageDependencies": [\
          ["get-stream", "npm:6.0.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["getpass", [\
      ["npm:0.1.7", {\
        "packageLocation": "./.yarn/cache/getpass-npm-0.1.7-519164a3be-ab18d55661.zip/node_modules/getpass/",\
        "packageDependencies": [\
          ["getpass", "npm:0.1.7"],\
          ["assert-plus", "npm:1.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["glob", [\
      ["npm:10.3.3", {\
        "packageLocation": "./.yarn/cache/glob-npm-10.3.3-2d9abea8c7-0d1a59dff5.zip/node_modules/glob/",\
        "packageDependencies": [\
          ["glob", "npm:10.3.3"],\
          ["foreground-child", "npm:3.1.1"],\
          ["jackspeak", "npm:2.2.2"],\
          ["minimatch", "npm:9.0.3"],\
          ["minipass", "npm:7.0.2"],\
          ["path-scurry", "npm:1.10.1"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:7.2.3", {\
        "packageLocation": "./.yarn/cache/glob-npm-7.2.3-2d866d17a5-59452a9202.zip/node_modules/glob/",\
        "packageDependencies": [\
          ["glob", "npm:7.2.3"],\
          ["fs.realpath", "npm:1.0.0"],\
          ["inflight", "npm:1.0.6"],\
          ["inherits", "npm:2.0.4"],\
          ["minimatch", "npm:3.1.2"],\
          ["once", "npm:1.4.0"],\
          ["path-is-absolute", "npm:1.0.1"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:8.1.0", {\
        "packageLocation": "./.yarn/cache/glob-npm-8.1.0-65f64af8b1-9aab1c75eb.zip/node_modules/glob/",\
        "packageDependencies": [\
          ["glob", "npm:8.1.0"],\
          ["fs.realpath", "npm:1.0.0"],\
          ["inflight", "npm:1.0.6"],\
          ["inherits", "npm:2.0.4"],\
          ["minimatch", "npm:5.1.6"],\
          ["once", "npm:1.4.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["glob-parent", [\
      ["npm:6.0.2", {\
        "packageLocation": "./.yarn/cache/glob-parent-npm-6.0.2-2cbef12738-c13ee97978.zip/node_modules/glob-parent/",\
        "packageDependencies": [\
          ["glob-parent", "npm:6.0.2"],\
          ["is-glob", "npm:4.0.3"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["globals", [\
      ["npm:11.12.0", {\
        "packageLocation": "./.yarn/cache/globals-npm-11.12.0-1fa7f41a6c-9f054fa38f.zip/node_modules/globals/",\
        "packageDependencies": [\
          ["globals", "npm:11.12.0"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:13.20.0", {\
        "packageLocation": "./.yarn/cache/globals-npm-13.20.0-4565a722e7-9df85cde2f.zip/node_modules/globals/",\
        "packageDependencies": [\
          ["globals", "npm:13.20.0"],\
          ["type-fest", "npm:0.20.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["gopd", [\
      ["npm:1.0.1", {\
        "packageLocation": "./.yarn/cache/gopd-npm-1.0.1-10c1d0b534-5fbc7ad57b.zip/node_modules/gopd/",\
        "packageDependencies": [\
          ["gopd", "npm:1.0.1"],\
          ["get-intrinsic", "npm:1.2.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["got", [\
      ["npm:11.8.5", {\
        "packageLocation": "./.yarn/cache/got-npm-11.8.5-787b5e3116-8e3f1a886b.zip/node_modules/got/",\
        "packageDependencies": [\
          ["got", "npm:11.8.5"],\
          ["@sindresorhus/is", "npm:4.6.0"],\
          ["@szmarczak/http-timer", "npm:4.0.6"],\
          ["@types/cacheable-request", "npm:6.0.3"],\
          ["@types/responselike", "npm:1.0.0"],\
          ["cacheable-lookup", "npm:5.0.4"],\
          ["cacheable-request", "npm:7.0.4"],\
          ["decompress-response", "npm:6.0.0"],\
          ["http2-wrapper", "npm:1.0.3"],\
          ["lowercase-keys", "npm:2.0.0"],\
          ["p-cancelable", "npm:2.1.1"],\
          ["responselike", "npm:2.0.1"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:12.5.3", {\
        "packageLocation": "./.yarn/cache/got-npm-12.5.3-7876a3e67a-1a7526e8ce.zip/node_modules/got/",\
        "packageDependencies": [\
          ["got", "npm:12.5.3"],\
          ["@sindresorhus/is", "npm:5.6.0"],\
          ["@szmarczak/http-timer", "npm:5.0.1"],\
          ["cacheable-lookup", "npm:7.0.0"],\
          ["cacheable-request", "npm:10.2.13"],\
          ["decompress-response", "npm:6.0.0"],\
          ["form-data-encoder", "npm:2.1.4"],\
          ["get-stream", "npm:6.0.1"],\
          ["http2-wrapper", "npm:2.2.0"],\
          ["lowercase-keys", "npm:3.0.0"],\
          ["p-cancelable", "npm:3.0.0"],\
          ["responselike", "npm:3.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["graceful-fs", [\
      ["npm:4.2.11", {\
        "packageLocation": "./.yarn/cache/graceful-fs-npm-4.2.11-24bb648a68-bf152d0ed1.zip/node_modules/graceful-fs/",\
        "packageDependencies": [\
          ["graceful-fs", "npm:4.2.11"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["graphemer", [\
      ["npm:1.4.0", {\
        "packageLocation": "./.yarn/cache/graphemer-npm-1.4.0-0627732d35-6dd60dba97.zip/node_modules/graphemer/",\
        "packageDependencies": [\
          ["graphemer", "npm:1.4.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["gunzip-maybe", [\
      ["npm:1.4.2", {\
        "packageLocation": "./.yarn/cache/gunzip-maybe-npm-1.4.2-97df376cb9-82a4eadb61.zip/node_modules/gunzip-maybe/",\
        "packageDependencies": [\
          ["gunzip-maybe", "npm:1.4.2"],\
          ["browserify-zlib", "npm:0.1.4"],\
          ["is-deflate", "npm:1.0.0"],\
          ["is-gzip", "npm:1.0.0"],\
          ["peek-stream", "npm:1.1.3"],\
          ["pumpify", "npm:1.5.1"],\
          ["through2", "npm:2.0.5"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["happy-dom", [\
      ["npm:12.10.3", {\
        "packageLocation": "./.yarn/cache/happy-dom-npm-12.10.3-5cca1a5e23-de82ddd1c9.zip/node_modules/happy-dom/",\
        "packageDependencies": [\
          ["happy-dom", "npm:12.10.3"],\
          ["css.escape", "npm:1.5.1"],\
          ["entities", "npm:4.5.0"],\
          ["iconv-lite", "npm:0.6.3"],\
          ["webidl-conversions", "npm:7.0.0"],\
          ["whatwg-encoding", "npm:2.0.0"],\
          ["whatwg-mimetype", "npm:3.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["has", [\
      ["npm:1.0.3", {\
        "packageLocation": "./.yarn/cache/has-npm-1.0.3-b7f00631c1-a449f3185b.zip/node_modules/has/",\
        "packageDependencies": [\
          ["has", "npm:1.0.3"],\
          ["function-bind", "npm:1.1.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["has-flag", [\
      ["npm:3.0.0", {\
        "packageLocation": "./.yarn/cache/has-flag-npm-3.0.0-16ac11fe05-4a15638b45.zip/node_modules/has-flag/",\
        "packageDependencies": [\
          ["has-flag", "npm:3.0.0"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:4.0.0", {\
        "packageLocation": "./.yarn/cache/has-flag-npm-4.0.0-32af9f0536-261a135703.zip/node_modules/has-flag/",\
        "packageDependencies": [\
          ["has-flag", "npm:4.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["has-proto", [\
      ["npm:1.0.1", {\
        "packageLocation": "./.yarn/cache/has-proto-npm-1.0.1-631ea9d820-eab2ab0ed1.zip/node_modules/has-proto/",\
        "packageDependencies": [\
          ["has-proto", "npm:1.0.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["has-symbols", [\
      ["npm:1.0.3", {\
        "packageLocation": "./.yarn/cache/has-symbols-npm-1.0.3-1986bff2c4-464f97a820.zip/node_modules/has-symbols/",\
        "packageDependencies": [\
          ["has-symbols", "npm:1.0.3"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["has-tostringtag", [\
      ["npm:1.0.0", {\
        "packageLocation": "./.yarn/cache/has-tostringtag-npm-1.0.0-b1fcf3ab55-95546e7132.zip/node_modules/has-tostringtag/",\
        "packageDependencies": [\
          ["has-tostringtag", "npm:1.0.0"],\
          ["has-symbols", "npm:1.0.3"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["has-unicode", [\
      ["npm:2.0.1", {\
        "packageLocation": "./.yarn/cache/has-unicode-npm-2.0.1-893adb4747-041b4293ad.zip/node_modules/has-unicode/",\
        "packageDependencies": [\
          ["has-unicode", "npm:2.0.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["hexoid", [\
      ["npm:1.0.0", {\
        "packageLocation": "./.yarn/cache/hexoid-npm-1.0.0-2274609209-f2271b8b6b.zip/node_modules/hexoid/",\
        "packageDependencies": [\
          ["hexoid", "npm:1.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["highlight.js", [\
      ["npm:10.7.3", {\
        "packageLocation": "./.yarn/cache/highlight.js-npm-10.7.3-247e67d5c0-db8d10a541.zip/node_modules/highlight.js/",\
        "packageDependencies": [\
          ["highlight.js", "npm:10.7.3"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["hpagent", [\
      ["npm:0.1.2", {\
        "packageLocation": "./.yarn/cache/hpagent-npm-0.1.2-f4fe59bad9-bd033b3700.zip/node_modules/hpagent/",\
        "packageDependencies": [\
          ["hpagent", "npm:0.1.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["html-encoding-sniffer", [\
      ["npm:3.0.0", {\
        "packageLocation": "./.yarn/cache/html-encoding-sniffer-npm-3.0.0-daac3dfe41-707a812ec2.zip/node_modules/html-encoding-sniffer/",\
        "packageDependencies": [\
          ["html-encoding-sniffer", "npm:3.0.0"],\
          ["whatwg-encoding", "npm:2.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["html-entities", [\
      ["npm:2.3.2", {\
        "packageLocation": "./.yarn/cache/html-entities-npm-2.3.2-366c4c257a-c2a3ae9553.zip/node_modules/html-entities/",\
        "packageDependencies": [\
          ["html-entities", "npm:2.3.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["htmlparser2", [\
      ["npm:3.10.1", {\
        "packageLocation": "./.yarn/cache/htmlparser2-npm-3.10.1-1bc462e640-d5297fe76c.zip/node_modules/htmlparser2/",\
        "packageDependencies": [\
          ["htmlparser2", "npm:3.10.1"],\
          ["domelementtype", "npm:1.3.1"],\
          ["domhandler", "npm:2.4.2"],\
          ["domutils", "npm:1.7.0"],\
          ["entities", "npm:1.1.2"],\
          ["inherits", "npm:2.0.4"],\
          ["readable-stream", "npm:3.6.2"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:8.0.2", {\
        "packageLocation": "./.yarn/cache/htmlparser2-npm-8.0.2-5d9f901bb6-ea5512956e.zip/node_modules/htmlparser2/",\
        "packageDependencies": [\
          ["htmlparser2", "npm:8.0.2"],\
          ["domelementtype", "npm:2.3.0"],\
          ["domhandler", "npm:5.0.3"],\
          ["domutils", "npm:3.1.0"],\
          ["entities", "npm:4.5.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["http-assert", [\
      ["npm:1.5.0", {\
        "packageLocation": "./.yarn/cache/http-assert-npm-1.5.0-bf7ea4ffcf-69c9b3c14c.zip/node_modules/http-assert/",\
        "packageDependencies": [\
          ["http-assert", "npm:1.5.0"],\
          ["deep-equal", "npm:1.0.1"],\
          ["http-errors", "npm:1.8.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["http-cache-semantics", [\
      ["npm:4.1.1", {\
        "packageLocation": "./.yarn/cache/http-cache-semantics-npm-4.1.1-1120131375-362d5ed66b.zip/node_modules/http-cache-semantics/",\
        "packageDependencies": [\
          ["http-cache-semantics", "npm:4.1.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["http-errors", [\
      ["npm:1.6.3", {\
        "packageLocation": "./.yarn/cache/http-errors-npm-1.6.3-9b5bc0b0a8-e48732657e.zip/node_modules/http-errors/",\
        "packageDependencies": [\
          ["http-errors", "npm:1.6.3"],\
          ["depd", "npm:1.1.2"],\
          ["inherits", "npm:2.0.3"],\
          ["setprototypeof", "npm:1.1.0"],\
          ["statuses", "npm:1.5.0"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:1.8.1", {\
        "packageLocation": "./.yarn/cache/http-errors-npm-1.8.1-fb60d9f6ae-76fc491bd8.zip/node_modules/http-errors/",\
        "packageDependencies": [\
          ["http-errors", "npm:1.8.1"],\
          ["depd", "npm:1.1.2"],\
          ["inherits", "npm:2.0.4"],\
          ["setprototypeof", "npm:1.2.0"],\
          ["statuses", "npm:1.5.0"],\
          ["toidentifier", "npm:1.0.1"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:2.0.0", {\
        "packageLocation": "./.yarn/cache/http-errors-npm-2.0.0-3f1c503428-0e7f76ee8f.zip/node_modules/http-errors/",\
        "packageDependencies": [\
          ["http-errors", "npm:2.0.0"],\
          ["depd", "npm:2.0.0"],\
          ["inherits", "npm:2.0.4"],\
          ["setprototypeof", "npm:1.2.0"],\
          ["statuses", "npm:2.0.1"],\
          ["toidentifier", "npm:1.0.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["http-proxy-agent", [\
      ["npm:5.0.0", {\
        "packageLocation": "./.yarn/cache/http-proxy-agent-npm-5.0.0-7f1f121b83-5ee19423bc.zip/node_modules/http-proxy-agent/",\
        "packageDependencies": [\
          ["http-proxy-agent", "npm:5.0.0"],\
          ["@tootallnate/once", "npm:2.0.0"],\
          ["agent-base", "npm:6.0.2"],\
          ["debug", "virtual:c8a47bd44e78262f6ba81f94852e5b6ec2a824806d82727a6ba6fdf6dc4be2b7d8b5dea8ceb347fa00fa505716d763276ebc48239b4faa6fbc5f8f9d2aa668e2#npm:4.3.4"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:7.0.0", {\
        "packageLocation": "./.yarn/cache/http-proxy-agent-npm-7.0.0-106a57cc8c-dbaaf3d9f3.zip/node_modules/http-proxy-agent/",\
        "packageDependencies": [\
          ["http-proxy-agent", "npm:7.0.0"],\
          ["agent-base", "npm:7.1.0"],\
          ["debug", "virtual:c8a47bd44e78262f6ba81f94852e5b6ec2a824806d82727a6ba6fdf6dc4be2b7d8b5dea8ceb347fa00fa505716d763276ebc48239b4faa6fbc5f8f9d2aa668e2#npm:4.3.4"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["http2-wrapper", [\
      ["npm:1.0.3", {\
        "packageLocation": "./.yarn/cache/http2-wrapper-npm-1.0.3-5b58ade1df-8097ee2699.zip/node_modules/http2-wrapper/",\
        "packageDependencies": [\
          ["http2-wrapper", "npm:1.0.3"],\
          ["quick-lru", "npm:5.1.1"],\
          ["resolve-alpn", "npm:1.2.1"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:2.2.0", {\
        "packageLocation": "./.yarn/cache/http2-wrapper-npm-2.2.0-6fbf58bfd7-f02842f0db.zip/node_modules/http2-wrapper/",\
        "packageDependencies": [\
          ["http2-wrapper", "npm:2.2.0"],\
          ["quick-lru", "npm:5.1.1"],\
          ["resolve-alpn", "npm:1.2.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["http_ece", [\
      ["npm:1.1.0", {\
        "packageLocation": "./.yarn/cache/http_ece-npm-1.1.0-c72cab8bae-a546c8a0be.zip/node_modules/http_ece/",\
        "packageDependencies": [\
          ["http_ece", "npm:1.1.0"],\
          ["urlsafe-base64", "npm:1.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["https-proxy-agent", [\
      ["npm:5.0.1", {\
        "packageLocation": "./.yarn/cache/https-proxy-agent-npm-5.0.1-42d65f358e-f0dce7bdca.zip/node_modules/https-proxy-agent/",\
        "packageDependencies": [\
          ["https-proxy-agent", "npm:5.0.1"],\
          ["agent-base", "npm:6.0.2"],\
          ["debug", "virtual:c8a47bd44e78262f6ba81f94852e5b6ec2a824806d82727a6ba6fdf6dc4be2b7d8b5dea8ceb347fa00fa505716d763276ebc48239b4faa6fbc5f8f9d2aa668e2#npm:4.3.4"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:7.0.1", {\
        "packageLocation": "./.yarn/cache/https-proxy-agent-npm-7.0.1-a2d5d93ee0-68e5a570fd.zip/node_modules/https-proxy-agent/",\
        "packageDependencies": [\
          ["https-proxy-agent", "npm:7.0.1"],\
          ["agent-base", "npm:7.1.0"],\
          ["debug", "virtual:c8a47bd44e78262f6ba81f94852e5b6ec2a824806d82727a6ba6fdf6dc4be2b7d8b5dea8ceb347fa00fa505716d763276ebc48239b4faa6fbc5f8f9d2aa668e2#npm:4.3.4"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:7.0.2", {\
        "packageLocation": "./.yarn/cache/https-proxy-agent-npm-7.0.2-83ea6a5d42-9ec844f78f.zip/node_modules/https-proxy-agent/",\
        "packageDependencies": [\
          ["https-proxy-agent", "npm:7.0.2"],\
          ["agent-base", "npm:7.1.0"],\
          ["debug", "virtual:c8a47bd44e78262f6ba81f94852e5b6ec2a824806d82727a6ba6fdf6dc4be2b7d8b5dea8ceb347fa00fa505716d763276ebc48239b4faa6fbc5f8f9d2aa668e2#npm:4.3.4"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["humanize-ms", [\
      ["npm:1.2.1", {\
        "packageLocation": "./.yarn/cache/humanize-ms-npm-1.2.1-e942bd7329-9c7a74a282.zip/node_modules/humanize-ms/",\
        "packageDependencies": [\
          ["humanize-ms", "npm:1.2.1"],\
          ["ms", "npm:2.1.3"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["humanize-number", [\
      ["npm:0.0.2", {\
        "packageLocation": "./.yarn/cache/humanize-number-npm-0.0.2-ac26ad7632-9c98c9d06b.zip/node_modules/humanize-number/",\
        "packageDependencies": [\
          ["humanize-number", "npm:0.0.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["iceshrimp", [\
      ["workspace:.", {\
        "packageLocation": "./",\
        "packageDependencies": [\
          ["iceshrimp", "workspace:."],\
          ["@bull-board/api", "virtual:6d3c013820dba430e71ebb352cb5205445a13ea3c7a848f57a7ff58fb0d6469fe4d374280277dac42cb77a6dbf8e924e64f2f0b3413c28a02da9d890c199e6d7#npm:5.6.0"],\
          ["@bull-board/ui", "npm:5.6.0"],\
          ["js-yaml", "npm:4.1.0"],\
          ["seedrandom", "npm:3.0.5"]\
        ],\
        "linkType": "SOFT"\
      }]\
    ]],\
    ["iceshrimp-sdk", [\
      ["workspace:packages/iceshrimp-sdk", {\
        "packageLocation": "./packages/iceshrimp-sdk/",\
        "packageDependencies": [\
          ["iceshrimp-sdk", "workspace:packages/iceshrimp-sdk"],\
          ["@swc/core-android-arm64", "npm:1.3.11"],\
          ["eventemitter3", "npm:4.0.7"],\
          ["reconnecting-websocket", "npm:4.4.0"],\
          ["semver", "npm:7.5.4"]\
        ],\
        "linkType": "SOFT"\
      }]\
    ]],\
    ["iconv-lite", [\
      ["npm:0.4.24", {\
        "packageLocation": "./.yarn/cache/iconv-lite-npm-0.4.24-c5c4ac6695-6d3a2dac6e.zip/node_modules/iconv-lite/",\
        "packageDependencies": [\
          ["iconv-lite", "npm:0.4.24"],\
          ["safer-buffer", "npm:2.1.2"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:0.6.3", {\
        "packageLocation": "./.yarn/cache/iconv-lite-npm-0.6.3-24b8aae27e-24e3292dd3.zip/node_modules/iconv-lite/",\
        "packageDependencies": [\
          ["iconv-lite", "npm:0.6.3"],\
          ["safer-buffer", "npm:2.1.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["idb-keyval", [\
      ["npm:3.2.0", {\
        "packageLocation": "./.yarn/cache/idb-keyval-npm-3.2.0-8f62d90403-3270010af0.zip/node_modules/idb-keyval/",\
        "packageDependencies": [\
          ["idb-keyval", "npm:3.2.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["ieee754", [\
      ["npm:1.1.13", {\
        "packageLocation": "./.yarn/cache/ieee754-npm-1.1.13-a57522ba12-5c2f365168.zip/node_modules/ieee754/",\
        "packageDependencies": [\
          ["ieee754", "npm:1.1.13"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:1.2.1", {\
        "packageLocation": "./.yarn/cache/ieee754-npm-1.2.1-fb63b3caeb-d9f2557a59.zip/node_modules/ieee754/",\
        "packageDependencies": [\
          ["ieee754", "npm:1.2.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["ignore", [\
      ["npm:5.2.4", {\
        "packageLocation": "./.yarn/cache/ignore-npm-5.2.4-fbe6e989e5-4f7caf5d20.zip/node_modules/ignore/",\
        "packageDependencies": [\
          ["ignore", "npm:5.2.4"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["import-fresh", [\
      ["npm:3.3.0", {\
        "packageLocation": "./.yarn/cache/import-fresh-npm-3.3.0-3e34265ca9-2cacfad06e.zip/node_modules/import-fresh/",\
        "packageDependencies": [\
          ["import-fresh", "npm:3.3.0"],\
          ["parent-module", "npm:1.0.1"],\
          ["resolve-from", "npm:4.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["imurmurhash", [\
      ["npm:0.1.4", {\
        "packageLocation": "./.yarn/cache/imurmurhash-npm-0.1.4-610c5068a0-2d30b157a9.zip/node_modules/imurmurhash/",\
        "packageDependencies": [\
          ["imurmurhash", "npm:0.1.4"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["indent-string", [\
      ["npm:4.0.0", {\
        "packageLocation": "./.yarn/cache/indent-string-npm-4.0.0-7b717435b2-cd3f5cbc9c.zip/node_modules/indent-string/",\
        "packageDependencies": [\
          ["indent-string", "npm:4.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["inflation", [\
      ["npm:2.0.0", {\
        "packageLocation": "./.yarn/cache/inflation-npm-2.0.0-e638c91672-a0494871b1.zip/node_modules/inflation/",\
        "packageDependencies": [\
          ["inflation", "npm:2.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["inflight", [\
      ["npm:1.0.6", {\
        "packageLocation": "./.yarn/cache/inflight-npm-1.0.6-ccedb4b908-d2ebd65441.zip/node_modules/inflight/",\
        "packageDependencies": [\
          ["inflight", "npm:1.0.6"],\
          ["once", "npm:1.4.0"],\
          ["wrappy", "npm:1.0.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["inherits", [\
      ["npm:2.0.3", {\
        "packageLocation": "./.yarn/cache/inherits-npm-2.0.3-401e64b080-8771303d66.zip/node_modules/inherits/",\
        "packageDependencies": [\
          ["inherits", "npm:2.0.3"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:2.0.4", {\
        "packageLocation": "./.yarn/cache/inherits-npm-2.0.4-c66b3957a0-cd45e923be.zip/node_modules/inherits/",\
        "packageDependencies": [\
          ["inherits", "npm:2.0.4"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["ini", [\
      ["npm:1.3.8", {\
        "packageLocation": "./.yarn/cache/ini-npm-1.3.8-fb5040b4c0-314ae176e8.zip/node_modules/ini/",\
        "packageDependencies": [\
          ["ini", "npm:1.3.8"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["install-artifact-from-github", [\
      ["npm:1.4.0", {\
        "packageLocation": "./.yarn/cache/install-artifact-from-github-npm-1.4.0-85c86bde45-04844f8f8f.zip/node_modules/install-artifact-from-github/",\
        "packageDependencies": [\
          ["install-artifact-from-github", "npm:1.4.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["ioredis", [\
      ["npm:5.4.1", {\
        "packageLocation": "./.yarn/cache/ioredis-npm-5.4.1-c96e18ae67-9043b812ac.zip/node_modules/ioredis/",\
        "packageDependencies": [\
          ["ioredis", "npm:5.4.1"],\
          ["@ioredis/commands", "npm:1.2.0"],\
          ["cluster-key-slot", "npm:1.1.2"],\
          ["debug", "virtual:c8a47bd44e78262f6ba81f94852e5b6ec2a824806d82727a6ba6fdf6dc4be2b7d8b5dea8ceb347fa00fa505716d763276ebc48239b4faa6fbc5f8f9d2aa668e2#npm:4.3.4"],\
          ["denque", "npm:2.1.0"],\
          ["lodash.defaults", "npm:4.2.0"],\
          ["lodash.isarguments", "npm:3.1.0"],\
          ["redis-errors", "npm:1.2.0"],\
          ["redis-parser", "npm:3.0.0"],\
          ["standard-as-callback", "npm:2.1.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["ip", [\
      ["npm:2.0.0", {\
        "packageLocation": "./.yarn/cache/ip-npm-2.0.0-204facb3cc-1270b11e53.zip/node_modules/ip/",\
        "packageDependencies": [\
          ["ip", "npm:2.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["ip-address", [\
      ["npm:7.1.0", {\
        "packageLocation": "./.yarn/cache/ip-address-npm-7.1.0-1544481a53-6681847385.zip/node_modules/ip-address/",\
        "packageDependencies": [\
          ["ip-address", "npm:7.1.0"],\
          ["jsbn", "npm:1.1.0"],\
          ["sprintf-js", "npm:1.1.2"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:9.0.5", {\
        "packageLocation": "./.yarn/cache/ip-address-npm-9.0.5-9fa024d42a-1ed81e0672.zip/node_modules/ip-address/",\
        "packageDependencies": [\
          ["ip-address", "npm:9.0.5"],\
          ["jsbn", "npm:1.1.0"],\
          ["sprintf-js", "npm:1.1.3"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["ip-cidr", [\
      ["npm:3.1.0", {\
        "packageLocation": "./.yarn/cache/ip-cidr-npm-3.1.0-c5e12ec1d6-c1f4e8f6d7.zip/node_modules/ip-cidr/",\
        "packageDependencies": [\
          ["ip-cidr", "npm:3.1.0"],\
          ["ip-address", "npm:7.1.0"],\
          ["jsbn", "npm:1.1.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["ip-regex", [\
      ["npm:4.3.0", {\
        "packageLocation": "./.yarn/cache/ip-regex-npm-4.3.0-4ac12c6be9-7ff904b891.zip/node_modules/ip-regex/",\
        "packageDependencies": [\
          ["ip-regex", "npm:4.3.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["ipaddr.js", [\
      ["npm:2.1.0", {\
        "packageLocation": "./.yarn/cache/ipaddr.js-npm-2.1.0-7091ce1549-42c16d95cf.zip/node_modules/ipaddr.js/",\
        "packageDependencies": [\
          ["ipaddr.js", "npm:2.1.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["is-arguments", [\
      ["npm:1.1.1", {\
        "packageLocation": "./.yarn/cache/is-arguments-npm-1.1.1-eff4f6d4d7-a170c7e260.zip/node_modules/is-arguments/",\
        "packageDependencies": [\
          ["is-arguments", "npm:1.1.1"],\
          ["call-bind", "npm:1.0.2"],\
          ["has-tostringtag", "npm:1.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["is-arrayish", [\
      ["npm:0.3.2", {\
        "packageLocation": "./.yarn/cache/is-arrayish-npm-0.3.2-f856180f79-81a78d518e.zip/node_modules/is-arrayish/",\
        "packageDependencies": [\
          ["is-arrayish", "npm:0.3.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["is-buffer", [\
      ["npm:1.1.6", {\
        "packageLocation": "./.yarn/cache/is-buffer-npm-1.1.6-08199d9ccc-f63da109e7.zip/node_modules/is-buffer/",\
        "packageDependencies": [\
          ["is-buffer", "npm:1.1.6"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["is-callable", [\
      ["npm:1.2.7", {\
        "packageLocation": "./.yarn/cache/is-callable-npm-1.2.7-808a303e61-48a9297fb9.zip/node_modules/is-callable/",\
        "packageDependencies": [\
          ["is-callable", "npm:1.2.7"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["is-core-module", [\
      ["npm:2.12.1", {\
        "packageLocation": "./.yarn/cache/is-core-module-npm-2.12.1-ce74e89160-35d5f90c95.zip/node_modules/is-core-module/",\
        "packageDependencies": [\
          ["is-core-module", "npm:2.12.1"],\
          ["has", "npm:1.0.3"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["is-deflate", [\
      ["npm:1.0.0", {\
        "packageLocation": "./.yarn/cache/is-deflate-npm-1.0.0-9dd27645d8-c2f9f2d3db.zip/node_modules/is-deflate/",\
        "packageDependencies": [\
          ["is-deflate", "npm:1.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["is-electron", [\
      ["npm:2.2.2", {\
        "packageLocation": "./.yarn/cache/is-electron-npm-2.2.2-f91452a3d8-de5aa8bd8d.zip/node_modules/is-electron/",\
        "packageDependencies": [\
          ["is-electron", "npm:2.2.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["is-expression", [\
      ["npm:4.0.0", {\
        "packageLocation": "./.yarn/cache/is-expression-npm-4.0.0-44cc07c8aa-0f01d0ff53.zip/node_modules/is-expression/",\
        "packageDependencies": [\
          ["is-expression", "npm:4.0.0"],\
          ["acorn", "npm:7.4.1"],\
          ["object-assign", "npm:4.1.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["is-extendable", [\
      ["npm:0.1.1", {\
        "packageLocation": "./.yarn/cache/is-extendable-npm-0.1.1-322b4649ec-3875571d20.zip/node_modules/is-extendable/",\
        "packageDependencies": [\
          ["is-extendable", "npm:0.1.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["is-extglob", [\
      ["npm:2.1.1", {\
        "packageLocation": "./.yarn/cache/is-extglob-npm-2.1.1-0870ea68b5-df033653d0.zip/node_modules/is-extglob/",\
        "packageDependencies": [\
          ["is-extglob", "npm:2.1.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["is-fullwidth-code-point", [\
      ["npm:3.0.0", {\
        "packageLocation": "./.yarn/cache/is-fullwidth-code-point-npm-3.0.0-1ecf4ebee5-44a30c2945.zip/node_modules/is-fullwidth-code-point/",\
        "packageDependencies": [\
          ["is-fullwidth-code-point", "npm:3.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["is-generator-function", [\
      ["npm:1.0.10", {\
        "packageLocation": "./.yarn/cache/is-generator-function-npm-1.0.10-1d0f3809ef-499a3ce636.zip/node_modules/is-generator-function/",\
        "packageDependencies": [\
          ["is-generator-function", "npm:1.0.10"],\
          ["has-tostringtag", "npm:1.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["is-glob", [\
      ["npm:4.0.3", {\
        "packageLocation": "./.yarn/cache/is-glob-npm-4.0.3-cb87bf1bdb-3ed74f2b0c.zip/node_modules/is-glob/",\
        "packageDependencies": [\
          ["is-glob", "npm:4.0.3"],\
          ["is-extglob", "npm:2.1.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["is-gzip", [\
      ["npm:1.0.0", {\
        "packageLocation": "./.yarn/cache/is-gzip-npm-1.0.0-083ca1eb6c-0d28931c1f.zip/node_modules/is-gzip/",\
        "packageDependencies": [\
          ["is-gzip", "npm:1.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["is-ip", [\
      ["npm:3.1.0", {\
        "packageLocation": "./.yarn/cache/is-ip-npm-3.1.0-7b8bc9330c-da2c2b2824.zip/node_modules/is-ip/",\
        "packageDependencies": [\
          ["is-ip", "npm:3.1.0"],\
          ["ip-regex", "npm:4.3.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["is-lambda", [\
      ["npm:1.0.1", {\
        "packageLocation": "./.yarn/cache/is-lambda-npm-1.0.1-7ab55bc8a8-93a32f0194.zip/node_modules/is-lambda/",\
        "packageDependencies": [\
          ["is-lambda", "npm:1.0.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["is-natural-number", [\
      ["npm:4.0.1", {\
        "packageLocation": "./.yarn/cache/is-natural-number-npm-4.0.1-b5fd86a31d-3e5e3d52e0.zip/node_modules/is-natural-number/",\
        "packageDependencies": [\
          ["is-natural-number", "npm:4.0.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["is-path-inside", [\
      ["npm:3.0.3", {\
        "packageLocation": "./.yarn/cache/is-path-inside-npm-3.0.3-2ea0ef44fd-abd50f0618.zip/node_modules/is-path-inside/",\
        "packageDependencies": [\
          ["is-path-inside", "npm:3.0.3"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["is-plain-object", [\
      ["npm:5.0.0", {\
        "packageLocation": "./.yarn/cache/is-plain-object-npm-5.0.0-285b70faa3-e32d27061e.zip/node_modules/is-plain-object/",\
        "packageDependencies": [\
          ["is-plain-object", "npm:5.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["is-potential-custom-element-name", [\
      ["npm:1.0.1", {\
        "packageLocation": "./.yarn/cache/is-potential-custom-element-name-npm-1.0.1-f352f606f8-ced7bbbb64.zip/node_modules/is-potential-custom-element-name/",\
        "packageDependencies": [\
          ["is-potential-custom-element-name", "npm:1.0.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["is-promise", [\
      ["npm:2.2.2", {\
        "packageLocation": "./.yarn/cache/is-promise-npm-2.2.2-afbf94db67-18bf7d1c59.zip/node_modules/is-promise/",\
        "packageDependencies": [\
          ["is-promise", "npm:2.2.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["is-regex", [\
      ["npm:1.1.4", {\
        "packageLocation": "./.yarn/cache/is-regex-npm-1.1.4-cca193ef11-36d9174d16.zip/node_modules/is-regex/",\
        "packageDependencies": [\
          ["is-regex", "npm:1.1.4"],\
          ["call-bind", "npm:1.0.2"],\
          ["has-tostringtag", "npm:1.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["is-stream", [\
      ["npm:1.1.0", {\
        "packageLocation": "./.yarn/cache/is-stream-npm-1.1.0-818ecbf6bb-351aa77c54.zip/node_modules/is-stream/",\
        "packageDependencies": [\
          ["is-stream", "npm:1.1.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["is-svg", [\
      ["npm:4.3.2", {\
        "packageLocation": "./.yarn/cache/is-svg-npm-4.3.2-0866375a1b-b3bce2395e.zip/node_modules/is-svg/",\
        "packageDependencies": [\
          ["is-svg", "npm:4.3.2"],\
          ["fast-xml-parser", "npm:3.21.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["is-typed-array", [\
      ["npm:1.1.12", {\
        "packageLocation": "./.yarn/cache/is-typed-array-npm-1.1.12-6135c91b1a-d953adfd3c.zip/node_modules/is-typed-array/",\
        "packageDependencies": [\
          ["is-typed-array", "npm:1.1.12"],\
          ["which-typed-array", "npm:1.1.11"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["is-typedarray", [\
      ["npm:1.0.0", {\
        "packageLocation": "./.yarn/cache/is-typedarray-npm-1.0.0-bbd99de5b6-4b433bfb0f.zip/node_modules/is-typedarray/",\
        "packageDependencies": [\
          ["is-typedarray", "npm:1.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["is-url", [\
      ["npm:1.2.4", {\
        "packageLocation": "./.yarn/cache/is-url-npm-1.2.4-0a28aeb560-100e74b3b1.zip/node_modules/is-url/",\
        "packageDependencies": [\
          ["is-url", "npm:1.2.4"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["is-whitespace", [\
      ["npm:0.3.0", {\
        "packageLocation": "./.yarn/cache/is-whitespace-npm-0.3.0-994f2b3b8c-dac8fc9a9b.zip/node_modules/is-whitespace/",\
        "packageDependencies": [\
          ["is-whitespace", "npm:0.3.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["isarray", [\
      ["npm:1.0.0", {\
        "packageLocation": "./.yarn/cache/isarray-npm-1.0.0-db4f547720-f032df8e02.zip/node_modules/isarray/",\
        "packageDependencies": [\
          ["isarray", "npm:1.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["isexe", [\
      ["npm:2.0.0", {\
        "packageLocation": "./.yarn/cache/isexe-npm-2.0.0-b58870bd2e-7c9f715c03.zip/node_modules/isexe/",\
        "packageDependencies": [\
          ["isexe", "npm:2.0.0"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:3.1.1", {\
        "packageLocation": "./.yarn/cache/isexe-npm-3.1.1-9c0061eead-7fe1931ee4.zip/node_modules/isexe/",\
        "packageDependencies": [\
          ["isexe", "npm:3.1.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["jackspeak", [\
      ["npm:2.2.2", {\
        "packageLocation": "./.yarn/cache/jackspeak-npm-2.2.2-374ca454fe-0f43b70bdd.zip/node_modules/jackspeak/",\
        "packageDependencies": [\
          ["jackspeak", "npm:2.2.2"],\
          ["@isaacs/cliui", "npm:8.0.2"],\
          ["@pkgjs/parseargs", "npm:0.11.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["jake", [\
      ["npm:10.8.7", {\
        "packageLocation": "./.yarn/cache/jake-npm-10.8.7-1caf9b4534-ad1cfe3988.zip/node_modules/jake/",\
        "packageDependencies": [\
          ["jake", "npm:10.8.7"],\
          ["async", "npm:3.2.4"],\
          ["chalk", "npm:4.1.2"],\
          ["filelist", "npm:1.0.4"],\
          ["minimatch", "npm:3.1.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["jmespath", [\
      ["npm:0.16.0", {\
        "packageLocation": "./.yarn/cache/jmespath-npm-0.16.0-d47535c65a-cc8b4a5cd2.zip/node_modules/jmespath/",\
        "packageDependencies": [\
          ["jmespath", "npm:0.16.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["jpeg-js", [\
      ["npm:0.4.4", {\
        "packageLocation": "./.yarn/cache/jpeg-js-npm-0.4.4-4dd87659c3-30bb6e16e7.zip/node_modules/jpeg-js/",\
        "packageDependencies": [\
          ["jpeg-js", "npm:0.4.4"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["js-beautify", [\
      ["npm:1.14.9", {\
        "packageLocation": "./.yarn/cache/js-beautify-npm-1.14.9-0bf2af42de-a7f57bb468.zip/node_modules/js-beautify/",\
        "packageDependencies": [\
          ["js-beautify", "npm:1.14.9"],\
          ["config-chain", "npm:1.1.13"],\
          ["editorconfig", "npm:1.0.4"],\
          ["glob", "npm:8.1.0"],\
          ["nopt", "npm:6.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["js-stringify", [\
      ["npm:1.0.2", {\
        "packageLocation": "./.yarn/cache/js-stringify-npm-1.0.2-898ffeac57-f9701d9e53.zip/node_modules/js-stringify/",\
        "packageDependencies": [\
          ["js-stringify", "npm:1.0.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["js-tokens", [\
      ["npm:4.0.0", {\
        "packageLocation": "./.yarn/cache/js-tokens-npm-4.0.0-0ac852e9e2-af37d0d913.zip/node_modules/js-tokens/",\
        "packageDependencies": [\
          ["js-tokens", "npm:4.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["js-yaml", [\
      ["npm:4.1.0", {\
        "packageLocation": "./.yarn/cache/js-yaml-npm-4.1.0-3606f32312-c138a34a3f.zip/node_modules/js-yaml/",\
        "packageDependencies": [\
          ["js-yaml", "npm:4.1.0"],\
          ["argparse", "npm:2.0.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["jsbn", [\
      ["npm:0.1.1", {\
        "packageLocation": "./.yarn/cache/jsbn-npm-0.1.1-0eb7132404-5450133242.zip/node_modules/jsbn/",\
        "packageDependencies": [\
          ["jsbn", "npm:0.1.1"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:1.1.0", {\
        "packageLocation": "./.yarn/cache/jsbn-npm-1.1.0-1da0181838-bebe7ae829.zip/node_modules/jsbn/",\
        "packageDependencies": [\
          ["jsbn", "npm:1.1.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["jschardet", [\
      ["npm:3.0.0", {\
        "packageLocation": "./.yarn/cache/jschardet-npm-3.0.0-0a853331a8-b5a87e188b.zip/node_modules/jschardet/",\
        "packageDependencies": [\
          ["jschardet", "npm:3.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["jsdom", [\
      ["npm:20.0.3", {\
        "packageLocation": "./.yarn/cache/jsdom-npm-20.0.3-906a2f7005-a4cdcff5b0.zip/node_modules/jsdom/",\
        "packageDependencies": [\
          ["jsdom", "npm:20.0.3"]\
        ],\
        "linkType": "SOFT"\
      }],\
      ["virtual:aa59773ac87791c4813d53447077fcf8a847d6de5a301d34dc31286584b1dbb26d30d3adb5b4c41c1e8aea04371e926fda05c09c6253647c432e11d872a304ba#npm:20.0.3", {\
        "packageLocation": "./.yarn/__virtual__/jsdom-virtual-86986a050e/0/cache/jsdom-npm-20.0.3-906a2f7005-a4cdcff5b0.zip/node_modules/jsdom/",\
        "packageDependencies": [\
          ["jsdom", "virtual:aa59773ac87791c4813d53447077fcf8a847d6de5a301d34dc31286584b1dbb26d30d3adb5b4c41c1e8aea04371e926fda05c09c6253647c432e11d872a304ba#npm:20.0.3"],\
          ["@types/canvas", null],\
          ["abab", "npm:2.0.6"],\
          ["acorn", "npm:8.10.0"],\
          ["acorn-globals", "npm:7.0.1"],\
          ["canvas", null],\
          ["cssom", "npm:0.5.0"],\
          ["cssstyle", "npm:2.3.0"],\
          ["data-urls", "npm:3.0.2"],\
          ["decimal.js", "npm:10.4.3"],\
          ["domexception", "npm:4.0.0"],\
          ["escodegen", "npm:2.1.0"],\
          ["form-data", "npm:4.0.0"],\
          ["html-encoding-sniffer", "npm:3.0.0"],\
          ["http-proxy-agent", "npm:5.0.0"],\
          ["https-proxy-agent", "npm:5.0.1"],\
          ["is-potential-custom-element-name", "npm:1.0.1"],\
          ["nwsapi", "npm:2.2.7"],\
          ["parse5", "npm:7.1.2"],\
          ["saxes", "npm:6.0.0"],\
          ["symbol-tree", "npm:3.2.4"],\
          ["tough-cookie", "npm:4.1.3"],\
          ["w3c-xmlserializer", "npm:4.0.0"],\
          ["webidl-conversions", "npm:7.0.0"],\
          ["whatwg-encoding", "npm:2.0.0"],\
          ["whatwg-mimetype", "npm:3.0.0"],\
          ["whatwg-url", "npm:11.0.0"],\
          ["ws", "virtual:86986a050ebfa0645214908f5c0b3534e5c08ae20fa9ea9ec50f256f9d5ebc5322cc052fbca4aa13b5fd5ce7ec86291a194d448eac36bce4374c3ca49c53eb46#npm:8.13.0"],\
          ["xml-name-validator", "npm:4.0.0"]\
        ],\
        "packagePeers": [\
          "@types/canvas",\
          "canvas"\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["jsesc", [\
      ["npm:2.5.2", {\
        "packageLocation": "./.yarn/cache/jsesc-npm-2.5.2-c5acb78804-d2096abdcd.zip/node_modules/jsesc/",\
        "packageDependencies": [\
          ["jsesc", "npm:2.5.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["json-buffer", [\
      ["npm:3.0.1", {\
        "packageLocation": "./.yarn/cache/json-buffer-npm-3.0.1-f8f6d20603-8287615452.zip/node_modules/json-buffer/",\
        "packageDependencies": [\
          ["json-buffer", "npm:3.0.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["json-schema", [\
      ["npm:0.4.0", {\
        "packageLocation": "./.yarn/cache/json-schema-npm-0.4.0-e776313070-8b3b64eff4.zip/node_modules/json-schema/",\
        "packageDependencies": [\
          ["json-schema", "npm:0.4.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["json-schema-traverse", [\
      ["npm:0.4.1", {\
        "packageLocation": "./.yarn/cache/json-schema-traverse-npm-0.4.1-4759091693-7486074d3b.zip/node_modules/json-schema-traverse/",\
        "packageDependencies": [\
          ["json-schema-traverse", "npm:0.4.1"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:1.0.0", {\
        "packageLocation": "./.yarn/cache/json-schema-traverse-npm-1.0.0-fb3684f4f0-02f2f466cd.zip/node_modules/json-schema-traverse/",\
        "packageDependencies": [\
          ["json-schema-traverse", "npm:1.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["json-stable-stringify-without-jsonify", [\
      ["npm:1.0.1", {\
        "packageLocation": "./.yarn/cache/json-stable-stringify-without-jsonify-npm-1.0.1-b65772b28b-12786c2e2f.zip/node_modules/json-stable-stringify-without-jsonify/",\
        "packageDependencies": [\
          ["json-stable-stringify-without-jsonify", "npm:1.0.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["json-stringify-safe", [\
      ["npm:5.0.1", {\
        "packageLocation": "./.yarn/cache/json-stringify-safe-npm-5.0.1-064ddd6ab4-59169a081e.zip/node_modules/json-stringify-safe/",\
        "packageDependencies": [\
          ["json-stringify-safe", "npm:5.0.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["json5", [\
      ["npm:2.2.3", {\
        "packageLocation": "./.yarn/cache/json5-npm-2.2.3-9962c55073-1db67b853f.zip/node_modules/json5/",\
        "packageDependencies": [\
          ["json5", "npm:2.2.3"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["jsonfile", [\
      ["npm:4.0.0", {\
        "packageLocation": "./.yarn/cache/jsonfile-npm-4.0.0-10ce3aea15-17796f0ab1.zip/node_modules/jsonfile/",\
        "packageDependencies": [\
          ["jsonfile", "npm:4.0.0"],\
          ["graceful-fs", "npm:4.2.11"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:5.0.0", {\
        "packageLocation": "./.yarn/cache/jsonfile-npm-5.0.0-be63f5e054-fcf7a1c6c9.zip/node_modules/jsonfile/",\
        "packageDependencies": [\
          ["jsonfile", "npm:5.0.0"],\
          ["graceful-fs", "npm:4.2.11"],\
          ["universalify", "npm:0.1.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["jsonld", [\
      ["npm:8.2.0", {\
        "packageLocation": "./.yarn/cache/jsonld-npm-8.2.0-a0797ceb72-743a00fd5b.zip/node_modules/jsonld/",\
        "packageDependencies": [\
          ["jsonld", "npm:8.2.0"],\
          ["@digitalbazaar/http-client", "npm:3.4.1"],\
          ["canonicalize", "npm:1.0.8"],\
          ["lru-cache", "npm:6.0.0"],\
          ["rdf-canonize", "npm:3.4.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["jsprim", [\
      ["npm:1.4.2", {\
        "packageLocation": "./.yarn/cache/jsprim-npm-1.4.2-1ae6cade9a-df2bf234ea.zip/node_modules/jsprim/",\
        "packageDependencies": [\
          ["jsprim", "npm:1.4.2"],\
          ["assert-plus", "npm:1.0.0"],\
          ["extsprintf", "npm:1.3.0"],\
          ["json-schema", "npm:0.4.0"],\
          ["verror", "npm:1.10.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["jsrsasign", [\
      ["npm:10.8.6", {\
        "packageLocation": "./.yarn/cache/jsrsasign-npm-10.8.6-1afbd97b19-92de977d13.zip/node_modules/jsrsasign/",\
        "packageDependencies": [\
          ["jsrsasign", "npm:10.8.6"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["jssha", [\
      ["npm:3.3.0", {\
        "packageLocation": "./.yarn/cache/jssha-npm-3.3.0-8ad1281d04-bc30449766.zip/node_modules/jssha/",\
        "packageDependencies": [\
          ["jssha", "npm:3.3.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["jstransformer", [\
      ["npm:1.0.0", {\
        "packageLocation": "./.yarn/cache/jstransformer-npm-1.0.0-41a47d180a-7bca6e2e2f.zip/node_modules/jstransformer/",\
        "packageDependencies": [\
          ["jstransformer", "npm:1.0.0"],\
          ["is-promise", "npm:2.2.2"],\
          ["promise", "npm:7.3.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["jwa", [\
      ["npm:2.0.1", {\
        "packageLocation": "./.yarn/cache/jwa-npm-2.0.1-9ebe28a626-b04312a1de.zip/node_modules/jwa/",\
        "packageDependencies": [\
          ["jwa", "npm:2.0.1"],\
          ["buffer-equal-constant-time", "npm:1.0.1"],\
          ["ecdsa-sig-formatter", "npm:1.0.11"],\
          ["safe-buffer", "npm:5.2.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["jws", [\
      ["npm:4.0.0", {\
        "packageLocation": "./.yarn/cache/jws-npm-4.0.0-2a24fd53b9-1d15f4cdea.zip/node_modules/jws/",\
        "packageDependencies": [\
          ["jws", "npm:4.0.0"],\
          ["jwa", "npm:2.0.1"],\
          ["safe-buffer", "npm:5.2.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["keygrip", [\
      ["npm:1.1.0", {\
        "packageLocation": "./.yarn/cache/keygrip-npm-1.1.0-8da030c3ff-078cd16a46.zip/node_modules/keygrip/",\
        "packageDependencies": [\
          ["keygrip", "npm:1.1.0"],\
          ["tsscmp", "npm:1.0.6"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["keyv", [\
      ["npm:4.5.3", {\
        "packageLocation": "./.yarn/cache/keyv-npm-4.5.3-d2382300dd-2c96e345ec.zip/node_modules/keyv/",\
        "packageDependencies": [\
          ["keyv", "npm:4.5.3"],\
          ["json-buffer", "npm:3.0.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["kind-of", [\
      ["npm:3.2.2", {\
        "packageLocation": "./.yarn/cache/kind-of-npm-3.2.2-7deaffa5f9-b6e7eed10f.zip/node_modules/kind-of/",\
        "packageDependencies": [\
          ["kind-of", "npm:3.2.2"],\
          ["is-buffer", "npm:1.1.6"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["koa", [\
      ["npm:2.13.4", {\
        "packageLocation": "./.yarn/cache/koa-npm-2.13.4-8aee05a69e-5ddd5a08dc.zip/node_modules/koa/",\
        "packageDependencies": [\
          ["koa", "npm:2.13.4"],\
          ["accepts", "npm:1.3.8"],\
          ["cache-content-type", "npm:1.0.1"],\
          ["content-disposition", "npm:0.5.4"],\
          ["content-type", "npm:1.0.5"],\
          ["cookies", "npm:0.8.0"],\
          ["debug", "virtual:c8a47bd44e78262f6ba81f94852e5b6ec2a824806d82727a6ba6fdf6dc4be2b7d8b5dea8ceb347fa00fa505716d763276ebc48239b4faa6fbc5f8f9d2aa668e2#npm:4.3.4"],\
          ["delegates", "npm:1.0.0"],\
          ["depd", "npm:2.0.0"],\
          ["destroy", "npm:1.2.0"],\
          ["encodeurl", "npm:1.0.2"],\
          ["escape-html", "npm:1.0.3"],\
          ["fresh", "npm:0.5.2"],\
          ["http-assert", "npm:1.5.0"],\
          ["http-errors", "npm:1.8.1"],\
          ["is-generator-function", "npm:1.0.10"],\
          ["koa-compose", "npm:4.1.0"],\
          ["koa-convert", "npm:2.0.0"],\
          ["on-finished", "npm:2.4.1"],\
          ["only", "npm:0.0.2"],\
          ["parseurl", "npm:1.3.3"],\
          ["statuses", "npm:1.5.0"],\
          ["type-is", "npm:1.6.18"],\
          ["vary", "npm:1.1.2"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:2.14.2", {\
        "packageLocation": "./.yarn/cache/koa-npm-2.14.2-0908395b5d-be3592ad2e.zip/node_modules/koa/",\
        "packageDependencies": [\
          ["koa", "npm:2.14.2"],\
          ["accepts", "npm:1.3.8"],\
          ["cache-content-type", "npm:1.0.1"],\
          ["content-disposition", "npm:0.5.4"],\
          ["content-type", "npm:1.0.5"],\
          ["cookies", "npm:0.8.0"],\
          ["debug", "virtual:c8a47bd44e78262f6ba81f94852e5b6ec2a824806d82727a6ba6fdf6dc4be2b7d8b5dea8ceb347fa00fa505716d763276ebc48239b4faa6fbc5f8f9d2aa668e2#npm:4.3.4"],\
          ["delegates", "npm:1.0.0"],\
          ["depd", "npm:2.0.0"],\
          ["destroy", "npm:1.2.0"],\
          ["encodeurl", "npm:1.0.2"],\
          ["escape-html", "npm:1.0.3"],\
          ["fresh", "npm:0.5.2"],\
          ["http-assert", "npm:1.5.0"],\
          ["http-errors", "npm:1.8.1"],\
          ["is-generator-function", "npm:1.0.10"],\
          ["koa-compose", "npm:4.1.0"],\
          ["koa-convert", "npm:2.0.0"],\
          ["on-finished", "npm:2.4.1"],\
          ["only", "npm:0.0.2"],\
          ["parseurl", "npm:1.3.3"],\
          ["statuses", "npm:1.5.0"],\
          ["type-is", "npm:1.6.18"],\
          ["vary", "npm:1.1.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["koa-body", [\
      ["npm:6.0.1", {\
        "packageLocation": "./.yarn/cache/koa-body-npm-6.0.1-e672d44ab2-d241d4d228.zip/node_modules/koa-body/",\
        "packageDependencies": [\
          ["koa-body", "npm:6.0.1"],\
          ["@types/co-body", "npm:6.1.0"],\
          ["@types/formidable", "npm:2.0.6"],\
          ["@types/koa", "npm:2.13.7"],\
          ["co-body", "npm:6.1.0"],\
          ["formidable", "npm:2.1.2"],\
          ["zod", "npm:3.21.4"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["koa-bodyparser", [\
      ["npm:4.4.1", {\
        "packageLocation": "./.yarn/cache/koa-bodyparser-npm-4.4.1-d833e4beca-c741a99cca.zip/node_modules/koa-bodyparser/",\
        "packageDependencies": [\
          ["koa-bodyparser", "npm:4.4.1"],\
          ["co-body", "npm:6.1.0"],\
          ["copy-to", "npm:2.0.1"],\
          ["type-is", "npm:1.6.18"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["koa-compose", [\
      ["npm:4.1.0", {\
        "packageLocation": "./.yarn/cache/koa-compose-npm-4.1.0-b682d9324e-46cb16792d.zip/node_modules/koa-compose/",\
        "packageDependencies": [\
          ["koa-compose", "npm:4.1.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["koa-convert", [\
      ["npm:2.0.0", {\
        "packageLocation": "./.yarn/cache/koa-convert-npm-2.0.0-d709eca55c-7385b33919.zip/node_modules/koa-convert/",\
        "packageDependencies": [\
          ["koa-convert", "npm:2.0.0"],\
          ["co", "npm:4.6.0"],\
          ["koa-compose", "npm:4.1.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["koa-favicon", [\
      ["npm:2.1.0", {\
        "packageLocation": "./.yarn/cache/koa-favicon-npm-2.1.0-6825eb9290-f70eff31f9.zip/node_modules/koa-favicon/",\
        "packageDependencies": [\
          ["koa-favicon", "npm:2.1.0"],\
          ["mz", "npm:2.7.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["koa-logger", [\
      ["npm:3.2.1", {\
        "packageLocation": "./.yarn/cache/koa-logger-npm-3.2.1-c647362edb-b29ba25eb4.zip/node_modules/koa-logger/",\
        "packageDependencies": [\
          ["koa-logger", "npm:3.2.1"],\
          ["bytes", "npm:3.1.2"],\
          ["chalk", "npm:2.4.2"],\
          ["humanize-number", "npm:0.0.2"],\
          ["passthrough-counter", "npm:1.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["koa-mount", [\
      ["npm:4.0.0", {\
        "packageLocation": "./.yarn/cache/koa-mount-npm-4.0.0-c8a47bd44e-c7e8c5cca4.zip/node_modules/koa-mount/",\
        "packageDependencies": [\
          ["koa-mount", "npm:4.0.0"],\
          ["debug", "virtual:c8a47bd44e78262f6ba81f94852e5b6ec2a824806d82727a6ba6fdf6dc4be2b7d8b5dea8ceb347fa00fa505716d763276ebc48239b4faa6fbc5f8f9d2aa668e2#npm:4.3.4"],\
          ["koa-compose", "npm:4.1.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["koa-remove-trailing-slashes", [\
      ["npm:2.0.3", {\
        "packageLocation": "./.yarn/cache/koa-remove-trailing-slashes-npm-2.0.3-2b7f265a71-43336f9792.zip/node_modules/koa-remove-trailing-slashes/",\
        "packageDependencies": [\
          ["koa-remove-trailing-slashes", "npm:2.0.3"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["koa-router", [\
      ["npm:10.1.1", {\
        "packageLocation": "./.yarn/cache/koa-router-npm-10.1.1-442054cb9a-f362a9dae2.zip/node_modules/koa-router/",\
        "packageDependencies": [\
          ["koa-router", "npm:10.1.1"],\
          ["debug", "virtual:c8a47bd44e78262f6ba81f94852e5b6ec2a824806d82727a6ba6fdf6dc4be2b7d8b5dea8ceb347fa00fa505716d763276ebc48239b4faa6fbc5f8f9d2aa668e2#npm:4.3.4"],\
          ["http-errors", "npm:1.8.1"],\
          ["koa-compose", "npm:4.1.0"],\
          ["methods", "npm:1.1.2"],\
          ["path-to-regexp", "npm:6.2.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["koa-send", [\
      ["npm:5.0.1", {\
        "packageLocation": "./.yarn/cache/koa-send-npm-5.0.1-1b37331b00-a9fbaadbe0.zip/node_modules/koa-send/",\
        "packageDependencies": [\
          ["koa-send", "npm:5.0.1"],\
          ["debug", "virtual:c8a47bd44e78262f6ba81f94852e5b6ec2a824806d82727a6ba6fdf6dc4be2b7d8b5dea8ceb347fa00fa505716d763276ebc48239b4faa6fbc5f8f9d2aa668e2#npm:4.3.4"],\
          ["http-errors", "npm:1.8.1"],\
          ["resolve-path", "npm:1.4.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["koa-slow", [\
      ["npm:2.1.0", {\
        "packageLocation": "./.yarn/cache/koa-slow-npm-2.1.0-ea5569dfc3-bde4b04340.zip/node_modules/koa-slow/",\
        "packageDependencies": [\
          ["koa-slow", "npm:2.1.0"],\
          ["lodash.isregexp", "npm:3.0.5"],\
          ["q", "npm:1.4.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["koa-static", [\
      ["npm:5.0.0", {\
        "packageLocation": "./.yarn/cache/koa-static-npm-5.0.0-4248438d52-8d9b9c4d2b.zip/node_modules/koa-static/",\
        "packageDependencies": [\
          ["koa-static", "npm:5.0.0"],\
          ["debug", "virtual:4248438d52dae4f796f8ae7839807024b795f7c70ddf4cbb58a4d6330ce027df2b3c8481d65b7430d525478785f68212512cd0d537d63bda0f170167a0f757f6#npm:3.2.7"],\
          ["koa-send", "npm:5.0.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["koa-views", [\
      ["npm:7.0.2", {\
        "packageLocation": "./.yarn/cache/koa-views-npm-7.0.2-f4a5c0091b-edff754c9f.zip/node_modules/koa-views/",\
        "packageDependencies": [\
          ["koa-views", "npm:7.0.2"]\
        ],\
        "linkType": "SOFT"\
      }],\
      ["virtual:47e7552797ac54a9c2afddff4b4e04d9d332a7c4ae9063d663783ce2e037b701b60b632afdcf95d0a9161f0abbca22d39846d9260e4899a8593e974d45bbf1e0#npm:7.0.2", {\
        "packageLocation": "./.yarn/__virtual__/koa-views-virtual-86ee2a8ef0/0/cache/koa-views-npm-7.0.2-f4a5c0091b-edff754c9f.zip/node_modules/koa-views/",\
        "packageDependencies": [\
          ["koa-views", "virtual:47e7552797ac54a9c2afddff4b4e04d9d332a7c4ae9063d663783ce2e037b701b60b632afdcf95d0a9161f0abbca22d39846d9260e4899a8593e974d45bbf1e0#npm:7.0.2"],\
          ["@types/koa", null],\
          ["consolidate", "virtual:86ee2a8ef0b659363be6b28aece63a5c4d251db21e8e56fe2ea2e03233d27c1fc9c744ff2a904e3dbda7f6a5fedaa3054e931f4e747f5b9deb58af95c389db98#npm:0.16.0"],\
          ["debug", "virtual:c8a47bd44e78262f6ba81f94852e5b6ec2a824806d82727a6ba6fdf6dc4be2b7d8b5dea8ceb347fa00fa505716d763276ebc48239b4faa6fbc5f8f9d2aa668e2#npm:4.3.4"],\
          ["get-paths", "npm:0.0.7"],\
          ["koa-send", "npm:5.0.1"],\
          ["mz", "npm:2.7.0"],\
          ["pretty", "npm:2.0.0"],\
          ["resolve-path", "npm:1.4.0"]\
        ],\
        "packagePeers": [\
          "@types/koa"\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["ky", [\
      ["npm:0.33.3", {\
        "packageLocation": "./.yarn/cache/ky-npm-0.33.3-7d1cbfa9f4-556b2241fe.zip/node_modules/ky/",\
        "packageDependencies": [\
          ["ky", "npm:0.33.3"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["ky-universal", [\
      ["npm:0.11.0", {\
        "packageLocation": "./.yarn/cache/ky-universal-npm-0.11.0-f343804243-42e4c91551.zip/node_modules/ky-universal/",\
        "packageDependencies": [\
          ["ky-universal", "npm:0.11.0"]\
        ],\
        "linkType": "SOFT"\
      }],\
      ["virtual:8f7eac0be74664d725f06767d8b014c5441ef91d67e5f5b4d48b1eb4b262e4666123cac7be8dcbb99a7798fb4a21e6f4d9693a3957796c4a48c23e26af86514f#npm:0.11.0", {\
        "packageLocation": "./.yarn/__virtual__/ky-universal-virtual-a0d11879db/0/cache/ky-universal-npm-0.11.0-f343804243-42e4c91551.zip/node_modules/ky-universal/",\
        "packageDependencies": [\
          ["ky-universal", "virtual:8f7eac0be74664d725f06767d8b014c5441ef91d67e5f5b4d48b1eb4b262e4666123cac7be8dcbb99a7798fb4a21e6f4d9693a3957796c4a48c23e26af86514f#npm:0.11.0"],\
          ["@types/ky", null],\
          ["@types/web-streams-polyfill", null],\
          ["abort-controller", "npm:3.0.0"],\
          ["ky", "npm:0.33.3"],\
          ["node-fetch", "npm:3.3.2"],\
          ["web-streams-polyfill", null]\
        ],\
        "packagePeers": [\
          "@types/ky",\
          "@types/web-streams-polyfill",\
          "ky",\
          "web-streams-polyfill"\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["lazystream", [\
      ["npm:1.0.1", {\
        "packageLocation": "./.yarn/cache/lazystream-npm-1.0.1-7477e64441-35f8cf8b57.zip/node_modules/lazystream/",\
        "packageDependencies": [\
          ["lazystream", "npm:1.0.1"],\
          ["readable-stream", "npm:2.3.8"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["levn", [\
      ["npm:0.4.1", {\
        "packageLocation": "./.yarn/cache/levn-npm-0.4.1-d183b2d7bb-2e4720ff79.zip/node_modules/levn/",\
        "packageDependencies": [\
          ["levn", "npm:0.4.1"],\
          ["prelude-ls", "npm:1.2.1"],\
          ["type-check", "npm:0.4.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["locate-path", [\
      ["npm:5.0.0", {\
        "packageLocation": "./.yarn/cache/locate-path-npm-5.0.0-46580c43e4-83e51725e6.zip/node_modules/locate-path/",\
        "packageDependencies": [\
          ["locate-path", "npm:5.0.0"],\
          ["p-locate", "npm:4.1.0"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:6.0.0", {\
        "packageLocation": "./.yarn/cache/locate-path-npm-6.0.0-06a1e4c528-72eb661788.zip/node_modules/locate-path/",\
        "packageDependencies": [\
          ["locate-path", "npm:6.0.0"],\
          ["p-locate", "npm:5.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["lodash", [\
      ["npm:4.17.21", {\
        "packageLocation": "./.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/",\
        "packageDependencies": [\
          ["lodash", "npm:4.17.21"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["lodash.assignin", [\
      ["npm:4.2.0", {\
        "packageLocation": "./.yarn/cache/lodash.assignin-npm-4.2.0-f45fed9160-6f7a7b6f74.zip/node_modules/lodash.assignin/",\
        "packageDependencies": [\
          ["lodash.assignin", "npm:4.2.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["lodash.bind", [\
      ["npm:4.2.1", {\
        "packageLocation": "./.yarn/cache/lodash.bind-npm-4.2.1-0b68ea9ea1-946cc5dbd8.zip/node_modules/lodash.bind/",\
        "packageDependencies": [\
          ["lodash.bind", "npm:4.2.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["lodash.defaults", [\
      ["npm:4.2.0", {\
        "packageLocation": "./.yarn/cache/lodash.defaults-npm-4.2.0-c5dea025ab-6a2a9ea5ad.zip/node_modules/lodash.defaults/",\
        "packageDependencies": [\
          ["lodash.defaults", "npm:4.2.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["lodash.difference", [\
      ["npm:4.5.0", {\
        "packageLocation": "./.yarn/cache/lodash.difference-npm-4.5.0-7a179a50e1-b22adb1be9.zip/node_modules/lodash.difference/",\
        "packageDependencies": [\
          ["lodash.difference", "npm:4.5.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["lodash.filter", [\
      ["npm:4.6.0", {\
        "packageLocation": "./.yarn/cache/lodash.filter-npm-4.6.0-21e2aceac9-a95c363b6c.zip/node_modules/lodash.filter/",\
        "packageDependencies": [\
          ["lodash.filter", "npm:4.6.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["lodash.flatten", [\
      ["npm:4.4.0", {\
        "packageLocation": "./.yarn/cache/lodash.flatten-npm-4.4.0-495935e617-a2b192f220.zip/node_modules/lodash.flatten/",\
        "packageDependencies": [\
          ["lodash.flatten", "npm:4.4.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["lodash.foreach", [\
      ["npm:4.5.0", {\
        "packageLocation": "./.yarn/cache/lodash.foreach-npm-4.5.0-ca8531894e-1917091b9e.zip/node_modules/lodash.foreach/",\
        "packageDependencies": [\
          ["lodash.foreach", "npm:4.5.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["lodash.isarguments", [\
      ["npm:3.1.0", {\
        "packageLocation": "./.yarn/cache/lodash.isarguments-npm-3.1.0-9e74d350b8-e5186d5fe0.zip/node_modules/lodash.isarguments/",\
        "packageDependencies": [\
          ["lodash.isarguments", "npm:3.1.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["lodash.isplainobject", [\
      ["npm:4.0.6", {\
        "packageLocation": "./.yarn/cache/lodash.isplainobject-npm-4.0.6-d73937742f-29c6351f28.zip/node_modules/lodash.isplainobject/",\
        "packageDependencies": [\
          ["lodash.isplainobject", "npm:4.0.6"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["lodash.isregexp", [\
      ["npm:3.0.5", {\
        "packageLocation": "./.yarn/cache/lodash.isregexp-npm-3.0.5-eb38f9af80-973f4887f0.zip/node_modules/lodash.isregexp/",\
        "packageDependencies": [\
          ["lodash.isregexp", "npm:3.0.5"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["lodash.map", [\
      ["npm:4.6.0", {\
        "packageLocation": "./.yarn/cache/lodash.map-npm-4.6.0-8013e2ad18-f1e69def35.zip/node_modules/lodash.map/",\
        "packageDependencies": [\
          ["lodash.map", "npm:4.6.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["lodash.merge", [\
      ["npm:4.6.2", {\
        "packageLocation": "./.yarn/cache/lodash.merge-npm-4.6.2-77cb4416bf-d0ea2dd009.zip/node_modules/lodash.merge/",\
        "packageDependencies": [\
          ["lodash.merge", "npm:4.6.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["lodash.pick", [\
      ["npm:4.4.0", {\
        "packageLocation": "./.yarn/cache/lodash.pick-npm-4.4.0-126deebf95-5a76778aa1.zip/node_modules/lodash.pick/",\
        "packageDependencies": [\
          ["lodash.pick", "npm:4.4.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["lodash.reduce", [\
      ["npm:4.6.0", {\
        "packageLocation": "./.yarn/cache/lodash.reduce-npm-4.6.0-a2e428f3e9-1cfefb3dd1.zip/node_modules/lodash.reduce/",\
        "packageDependencies": [\
          ["lodash.reduce", "npm:4.6.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["lodash.reject", [\
      ["npm:4.6.0", {\
        "packageLocation": "./.yarn/cache/lodash.reject-npm-4.6.0-3ffbb26ce0-ca47f52dbe.zip/node_modules/lodash.reject/",\
        "packageDependencies": [\
          ["lodash.reject", "npm:4.6.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["lodash.some", [\
      ["npm:4.6.0", {\
        "packageLocation": "./.yarn/cache/lodash.some-npm-4.6.0-645cee43a3-4e686a2f73.zip/node_modules/lodash.some/",\
        "packageDependencies": [\
          ["lodash.some", "npm:4.6.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["lodash.union", [\
      ["npm:4.6.0", {\
        "packageLocation": "./.yarn/cache/lodash.union-npm-4.6.0-8c9e2d9292-175f5786ef.zip/node_modules/lodash.union/",\
        "packageDependencies": [\
          ["lodash.union", "npm:4.6.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["lowercase-keys", [\
      ["npm:2.0.0", {\
        "packageLocation": "./.yarn/cache/lowercase-keys-npm-2.0.0-1876065a32-1c233d2da3.zip/node_modules/lowercase-keys/",\
        "packageDependencies": [\
          ["lowercase-keys", "npm:2.0.0"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:3.0.0", {\
        "packageLocation": "./.yarn/cache/lowercase-keys-npm-3.0.0-f8c4730215-67a3f81409.zip/node_modules/lowercase-keys/",\
        "packageDependencies": [\
          ["lowercase-keys", "npm:3.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["lru-cache", [\
      ["npm:10.0.0", {\
        "packageLocation": "./.yarn/cache/lru-cache-npm-10.0.0-256d74bb20-590e00d6cc.zip/node_modules/lru-cache/",\
        "packageDependencies": [\
          ["lru-cache", "npm:10.0.0"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:10.0.2", {\
        "packageLocation": "./.yarn/cache/lru-cache-npm-10.0.2-fcff47e16f-a675b71a19.zip/node_modules/lru-cache/",\
        "packageDependencies": [\
          ["lru-cache", "npm:10.0.2"],\
          ["semver", "npm:7.5.4"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:5.1.1", {\
        "packageLocation": "./.yarn/cache/lru-cache-npm-5.1.1-f475882a51-951d2673dc.zip/node_modules/lru-cache/",\
        "packageDependencies": [\
          ["lru-cache", "npm:5.1.1"],\
          ["yallist", "npm:3.1.1"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:6.0.0", {\
        "packageLocation": "./.yarn/cache/lru-cache-npm-6.0.0-b4c8668fe1-fc1fe2ee20.zip/node_modules/lru-cache/",\
        "packageDependencies": [\
          ["lru-cache", "npm:6.0.0"],\
          ["yallist", "npm:4.0.0"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:7.18.3", {\
        "packageLocation": "./.yarn/cache/lru-cache-npm-7.18.3-e68be5b11c-6029ca5aba.zip/node_modules/lru-cache/",\
        "packageDependencies": [\
          ["lru-cache", "npm:7.18.3"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["luxon", [\
      ["npm:3.3.0", {\
        "packageLocation": "./.yarn/cache/luxon-npm-3.3.0-bdbae9bfd5-ff60904401.zip/node_modules/luxon/",\
        "packageDependencies": [\
          ["luxon", "npm:3.3.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["mailcheck", [\
      ["npm:1.1.1", {\
        "packageLocation": "./.yarn/cache/mailcheck-npm-1.1.1-2b947214fa-7dda570a97.zip/node_modules/mailcheck/",\
        "packageDependencies": [\
          ["mailcheck", "npm:1.1.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["make-dir", [\
      ["npm:1.3.0", {\
        "packageLocation": "./.yarn/cache/make-dir-npm-1.3.0-692810d225-c564f6e7bb.zip/node_modules/make-dir/",\
        "packageDependencies": [\
          ["make-dir", "npm:1.3.0"],\
          ["pify", "npm:3.0.0"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:3.1.0", {\
        "packageLocation": "./.yarn/cache/make-dir-npm-3.1.0-d1d7505142-484200020a.zip/node_modules/make-dir/",\
        "packageDependencies": [\
          ["make-dir", "npm:3.1.0"],\
          ["semver", "npm:6.3.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["make-fetch-happen", [\
      ["npm:11.1.1", {\
        "packageLocation": "./.yarn/cache/make-fetch-happen-npm-11.1.1-f32b79aaaa-b4b442cfaa.zip/node_modules/make-fetch-happen/",\
        "packageDependencies": [\
          ["make-fetch-happen", "npm:11.1.1"],\
          ["agentkeepalive", "npm:4.3.0"],\
          ["cacache", "npm:17.1.3"],\
          ["http-cache-semantics", "npm:4.1.1"],\
          ["http-proxy-agent", "npm:5.0.0"],\
          ["https-proxy-agent", "npm:5.0.1"],\
          ["is-lambda", "npm:1.0.1"],\
          ["lru-cache", "npm:7.18.3"],\
          ["minipass", "npm:5.0.0"],\
          ["minipass-fetch", "npm:3.0.3"],\
          ["minipass-flush", "npm:1.0.5"],\
          ["minipass-pipeline", "npm:1.2.4"],\
          ["negotiator", "npm:0.6.3"],\
          ["promise-retry", "npm:2.0.1"],\
          ["socks-proxy-agent", "npm:7.0.0"],\
          ["ssri", "npm:10.0.4"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:14.0.3", {\
        "packageLocation": "./.yarn/cache/make-fetch-happen-npm-14.0.3-23b30e8691-fce0385840.zip/node_modules/make-fetch-happen/",\
        "packageDependencies": [\
          ["make-fetch-happen", "npm:14.0.3"],\
          ["@npmcli/agent", "npm:3.0.0"],\
          ["cacache", "npm:19.0.1"],\
          ["http-cache-semantics", "npm:4.1.1"],\
          ["minipass", "npm:7.0.4"],\
          ["minipass-fetch", "npm:4.0.1"],\
          ["minipass-flush", "npm:1.0.5"],\
          ["minipass-pipeline", "npm:1.2.4"],\
          ["negotiator", "npm:1.0.0"],\
          ["proc-log", "npm:5.0.0"],\
          ["promise-retry", "npm:2.0.1"],\
          ["ssri", "npm:12.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["media-typer", [\
      ["npm:0.3.0", {\
        "packageLocation": "./.yarn/cache/media-typer-npm-0.3.0-8674f8f0f5-38e0984db3.zip/node_modules/media-typer/",\
        "packageDependencies": [\
          ["media-typer", "npm:0.3.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["methods", [\
      ["npm:1.1.2", {\
        "packageLocation": "./.yarn/cache/methods-npm-1.1.2-92f6fdb39b-a385dd974f.zip/node_modules/methods/",\
        "packageDependencies": [\
          ["methods", "npm:1.1.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["mfm-js", [\
      ["npm:0.25.0", {\
        "packageLocation": "./.yarn/cache/mfm-js-npm-0.25.0-e4594c8ee9-d46db0f988.zip/node_modules/mfm-js/",\
        "packageDependencies": [\
          ["mfm-js", "npm:0.25.0"],\
          ["@twemoji/parser", "npm:16.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["mime-db", [\
      ["npm:1.52.0", {\
        "packageLocation": "./.yarn/cache/mime-db-npm-1.52.0-b5371d6fd2-54bb60bf39.zip/node_modules/mime-db/",\
        "packageDependencies": [\
          ["mime-db", "npm:1.52.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["mime-types", [\
      ["npm:2.1.35", {\
        "packageLocation": "./.yarn/cache/mime-types-npm-2.1.35-dd9ea9f3e2-89aa9651b6.zip/node_modules/mime-types/",\
        "packageDependencies": [\
          ["mime-types", "npm:2.1.35"],\
          ["mime-db", "npm:1.52.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["mimic-response", [\
      ["npm:1.0.1", {\
        "packageLocation": "./.yarn/cache/mimic-response-npm-1.0.1-f6f85dde84-034c78753b.zip/node_modules/mimic-response/",\
        "packageDependencies": [\
          ["mimic-response", "npm:1.0.1"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:3.1.0", {\
        "packageLocation": "./.yarn/cache/mimic-response-npm-3.1.0-a4a24b4e96-7e71904761.zip/node_modules/mimic-response/",\
        "packageDependencies": [\
          ["mimic-response", "npm:3.1.0"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:4.0.0", {\
        "packageLocation": "./.yarn/cache/mimic-response-npm-4.0.0-c080547e26-33b804cc96.zip/node_modules/mimic-response/",\
        "packageDependencies": [\
          ["mimic-response", "npm:4.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["minimalistic-assert", [\
      ["npm:1.0.1", {\
        "packageLocation": "./.yarn/cache/minimalistic-assert-npm-1.0.1-dc8bb23d29-cc7974a926.zip/node_modules/minimalistic-assert/",\
        "packageDependencies": [\
          ["minimalistic-assert", "npm:1.0.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["minimatch", [\
      ["npm:3.1.2", {\
        "packageLocation": "./.yarn/cache/minimatch-npm-3.1.2-9405269906-e0b25b04cd.zip/node_modules/minimatch/",\
        "packageDependencies": [\
          ["minimatch", "npm:3.1.2"],\
          ["brace-expansion", "npm:1.1.11"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:5.1.6", {\
        "packageLocation": "./.yarn/cache/minimatch-npm-5.1.6-1e71429f4c-126b36485b.zip/node_modules/minimatch/",\
        "packageDependencies": [\
          ["minimatch", "npm:5.1.6"],\
          ["brace-expansion", "npm:2.0.1"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:9.0.1", {\
        "packageLocation": "./.yarn/cache/minimatch-npm-9.0.1-277fdc6fbd-b4e98f4dc7.zip/node_modules/minimatch/",\
        "packageDependencies": [\
          ["minimatch", "npm:9.0.1"],\
          ["brace-expansion", "npm:2.0.1"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:9.0.3", {\
        "packageLocation": "./.yarn/cache/minimatch-npm-9.0.3-69d7d6fad5-c81b47d281.zip/node_modules/minimatch/",\
        "packageDependencies": [\
          ["minimatch", "npm:9.0.3"],\
          ["brace-expansion", "npm:2.0.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["minimist", [\
      ["npm:1.2.8", {\
        "packageLocation": "./.yarn/cache/minimist-npm-1.2.8-d7af7b1dce-908491b6cc.zip/node_modules/minimist/",\
        "packageDependencies": [\
          ["minimist", "npm:1.2.8"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["minipass", [\
      ["npm:3.3.6", {\
        "packageLocation": "./.yarn/cache/minipass-npm-3.3.6-b8d93a945b-a5c6ef069f.zip/node_modules/minipass/",\
        "packageDependencies": [\
          ["minipass", "npm:3.3.6"],\
          ["yallist", "npm:4.0.0"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:5.0.0", {\
        "packageLocation": "./.yarn/cache/minipass-npm-5.0.0-c64fb63c92-61682162d2.zip/node_modules/minipass/",\
        "packageDependencies": [\
          ["minipass", "npm:5.0.0"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:7.0.2", {\
        "packageLocation": "./.yarn/cache/minipass-npm-7.0.2-baa42a5a34-25d3afc74e.zip/node_modules/minipass/",\
        "packageDependencies": [\
          ["minipass", "npm:7.0.2"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:7.0.4", {\
        "packageLocation": "./.yarn/cache/minipass-npm-7.0.4-eacb4e042e-e864bd02ce.zip/node_modules/minipass/",\
        "packageDependencies": [\
          ["minipass", "npm:7.0.4"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:7.1.2", {\
        "packageLocation": "./.yarn/cache/minipass-npm-7.1.2-3a5327d36d-c25f0ee819.zip/node_modules/minipass/",\
        "packageDependencies": [\
          ["minipass", "npm:7.1.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["minipass-collect", [\
      ["npm:1.0.2", {\
        "packageLocation": "./.yarn/cache/minipass-collect-npm-1.0.2-3b4676eab5-14df761028.zip/node_modules/minipass-collect/",\
        "packageDependencies": [\
          ["minipass-collect", "npm:1.0.2"],\
          ["minipass", "npm:3.3.6"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:2.0.1", {\
        "packageLocation": "./.yarn/cache/minipass-collect-npm-2.0.1-73d3907e40-b251bceea6.zip/node_modules/minipass-collect/",\
        "packageDependencies": [\
          ["minipass-collect", "npm:2.0.1"],\
          ["minipass", "npm:7.0.4"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["minipass-fetch", [\
      ["npm:3.0.3", {\
        "packageLocation": "./.yarn/cache/minipass-fetch-npm-3.0.3-2c4966d142-045339fa8f.zip/node_modules/minipass-fetch/",\
        "packageDependencies": [\
          ["minipass-fetch", "npm:3.0.3"],\
          ["encoding", "npm:0.1.13"],\
          ["minipass", "npm:5.0.0"],\
          ["minipass-sized", "npm:1.0.3"],\
          ["minizlib", "npm:2.1.2"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:4.0.1", {\
        "packageLocation": "./.yarn/cache/minipass-fetch-npm-4.0.1-ce1d15e957-7ddfebdbb8.zip/node_modules/minipass-fetch/",\
        "packageDependencies": [\
          ["minipass-fetch", "npm:4.0.1"],\
          ["encoding", "npm:0.1.13"],\
          ["minipass", "npm:7.0.4"],\
          ["minipass-sized", "npm:1.0.3"],\
          ["minizlib", "npm:3.0.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["minipass-flush", [\
      ["npm:1.0.5", {\
        "packageLocation": "./.yarn/cache/minipass-flush-npm-1.0.5-efe79d9826-56269a0b22.zip/node_modules/minipass-flush/",\
        "packageDependencies": [\
          ["minipass-flush", "npm:1.0.5"],\
          ["minipass", "npm:3.3.6"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["minipass-pipeline", [\
      ["npm:1.2.4", {\
        "packageLocation": "./.yarn/cache/minipass-pipeline-npm-1.2.4-5924cb077f-b14240dac0.zip/node_modules/minipass-pipeline/",\
        "packageDependencies": [\
          ["minipass-pipeline", "npm:1.2.4"],\
          ["minipass", "npm:3.3.6"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["minipass-sized", [\
      ["npm:1.0.3", {\
        "packageLocation": "./.yarn/cache/minipass-sized-npm-1.0.3-306d86f432-40982d8d83.zip/node_modules/minipass-sized/",\
        "packageDependencies": [\
          ["minipass-sized", "npm:1.0.3"],\
          ["minipass", "npm:3.3.6"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["minizlib", [\
      ["npm:2.1.2", {\
        "packageLocation": "./.yarn/cache/minizlib-npm-2.1.2-ea89cd0cfb-ae0f45436f.zip/node_modules/minizlib/",\
        "packageDependencies": [\
          ["minizlib", "npm:2.1.2"],\
          ["minipass", "npm:3.3.6"],\
          ["yallist", "npm:4.0.0"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:3.0.2", {\
        "packageLocation": "./.yarn/cache/minizlib-npm-3.0.2-f56e815013-c075bed159.zip/node_modules/minizlib/",\
        "packageDependencies": [\
          ["minizlib", "npm:3.0.2"],\
          ["minipass", "npm:7.1.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["mkdirp", [\
      ["npm:0.5.6", {\
        "packageLocation": "./.yarn/cache/mkdirp-npm-0.5.6-dcd5a6b97b-0c91b721bb.zip/node_modules/mkdirp/",\
        "packageDependencies": [\
          ["mkdirp", "npm:0.5.6"],\
          ["minimist", "npm:1.2.8"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:1.0.4", {\
        "packageLocation": "./.yarn/cache/mkdirp-npm-1.0.4-37f6ef56b9-d71b8dcd4b.zip/node_modules/mkdirp/",\
        "packageDependencies": [\
          ["mkdirp", "npm:1.0.4"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:2.1.6", {\
        "packageLocation": "./.yarn/cache/mkdirp-npm-2.1.6-832c38f12a-4672fadb94.zip/node_modules/mkdirp/",\
        "packageDependencies": [\
          ["mkdirp", "npm:2.1.6"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:3.0.1", {\
        "packageLocation": "./.yarn/cache/mkdirp-npm-3.0.1-f94bfa769e-16fd79c286.zip/node_modules/mkdirp/",\
        "packageDependencies": [\
          ["mkdirp", "npm:3.0.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["moment", [\
      ["npm:2.29.4", {\
        "packageLocation": "./.yarn/cache/moment-npm-2.29.4-902943305d-157c5af5a0.zip/node_modules/moment/",\
        "packageDependencies": [\
          ["moment", "npm:2.29.4"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["ms", [\
      ["npm:2.0.0", {\
        "packageLocation": "./.yarn/cache/ms-npm-2.0.0-9e1101a471-0e6a22b8b7.zip/node_modules/ms/",\
        "packageDependencies": [\
          ["ms", "npm:2.0.0"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:2.1.2", {\
        "packageLocation": "./.yarn/cache/ms-npm-2.1.2-ec0c1512ff-673cdb2c31.zip/node_modules/ms/",\
        "packageDependencies": [\
          ["ms", "npm:2.1.2"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:2.1.3", {\
        "packageLocation": "./.yarn/cache/ms-npm-2.1.3-81ff3cfac1-aa92de6080.zip/node_modules/ms/",\
        "packageDependencies": [\
          ["ms", "npm:2.1.3"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["msgpackr", [\
      ["npm:1.11.0", {\
        "packageLocation": "./.yarn/cache/msgpackr-npm-1.11.0-c075b2537e-e95edf511a.zip/node_modules/msgpackr/",\
        "packageDependencies": [\
          ["msgpackr", "npm:1.11.0"],\
          ["msgpackr-extract", "npm:3.0.2"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:1.11.2", {\
        "packageLocation": "./.yarn/cache/msgpackr-npm-1.11.2-a21c5db6f8-7602f1e91e.zip/node_modules/msgpackr/",\
        "packageDependencies": [\
          ["msgpackr", "npm:1.11.2"],\
          ["msgpackr-extract", "npm:3.0.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["msgpackr-extract", [\
      ["npm:3.0.2", {\
        "packageLocation": "./.yarn/unplugged/msgpackr-extract-npm-3.0.2-93e8773fad/node_modules/msgpackr-extract/",\
        "packageDependencies": [\
          ["msgpackr-extract", "npm:3.0.2"],\
          ["@msgpackr-extract/msgpackr-extract-darwin-arm64", "npm:3.0.2"],\
          ["@msgpackr-extract/msgpackr-extract-darwin-x64", "npm:3.0.2"],\
          ["@msgpackr-extract/msgpackr-extract-linux-arm", "npm:3.0.2"],\
          ["@msgpackr-extract/msgpackr-extract-linux-arm64", "npm:3.0.2"],\
          ["@msgpackr-extract/msgpackr-extract-linux-x64", "npm:3.0.2"],\
          ["@msgpackr-extract/msgpackr-extract-win32-x64", "npm:3.0.2"],\
          ["node-gyp", "npm:9.4.0"],\
          ["node-gyp-build-optional-packages", "npm:5.0.7"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["multer", [\
      ["npm:1.4.4-lts.1", {\
        "packageLocation": "./.yarn/cache/multer-npm-1.4.4-lts.1-23fbed83c0-b961837647.zip/node_modules/multer/",\
        "packageDependencies": [\
          ["multer", "npm:1.4.4-lts.1"],\
          ["append-field", "npm:1.0.0"],\
          ["busboy", "npm:1.6.0"],\
          ["concat-stream", "npm:1.6.2"],\
          ["mkdirp", "npm:0.5.6"],\
          ["object-assign", "npm:4.1.1"],\
          ["type-is", "npm:1.6.18"],\
          ["xtend", "npm:4.0.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["mz", [\
      ["npm:2.7.0", {\
        "packageLocation": "./.yarn/cache/mz-npm-2.7.0-ec3cef4ec2-8427de0ece.zip/node_modules/mz/",\
        "packageDependencies": [\
          ["mz", "npm:2.7.0"],\
          ["any-promise", "npm:1.3.0"],\
          ["object-assign", "npm:4.1.1"],\
          ["thenify-all", "npm:1.6.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["nan", [\
      ["npm:2.22.2", {\
        "packageLocation": "./.yarn/unplugged/nan-npm-2.22.2-bb092bb459/node_modules/nan/",\
        "packageDependencies": [\
          ["nan", "npm:2.22.2"],\
          ["node-gyp", "npm:9.4.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["nanoid", [\
      ["npm:3.3.6", {\
        "packageLocation": "./.yarn/cache/nanoid-npm-3.3.6-e6d6ae7e71-67235c39d1.zip/node_modules/nanoid/",\
        "packageDependencies": [\
          ["nanoid", "npm:3.3.6"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["natural-compare", [\
      ["npm:1.4.0", {\
        "packageLocation": "./.yarn/cache/natural-compare-npm-1.4.0-97b75b362d-23ad088b08.zip/node_modules/natural-compare/",\
        "packageDependencies": [\
          ["natural-compare", "npm:1.4.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["needle", [\
      ["npm:2.9.1", {\
        "packageLocation": "./.yarn/cache/needle-npm-2.9.1-f40e591726-ad8df9aff5.zip/node_modules/needle/",\
        "packageDependencies": [\
          ["needle", "npm:2.9.1"],\
          ["debug", "virtual:4248438d52dae4f796f8ae7839807024b795f7c70ddf4cbb58a4d6330ce027df2b3c8481d65b7430d525478785f68212512cd0d537d63bda0f170167a0f757f6#npm:3.2.7"],\
          ["iconv-lite", "npm:0.4.24"],\
          ["sax", "npm:1.2.4"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["negotiator", [\
      ["npm:0.6.3", {\
        "packageLocation": "./.yarn/cache/negotiator-npm-0.6.3-9d50e36171-2723fb822a.zip/node_modules/negotiator/",\
        "packageDependencies": [\
          ["negotiator", "npm:0.6.3"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:1.0.0", {\
        "packageLocation": "./.yarn/cache/negotiator-npm-1.0.0-47d727e27e-b5734e8729.zip/node_modules/negotiator/",\
        "packageDependencies": [\
          ["negotiator", "npm:1.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["nested-property", [\
      ["npm:4.0.0", {\
        "packageLocation": "./.yarn/cache/nested-property-npm-4.0.0-017e2c909b-5653a67d68.zip/node_modules/nested-property/",\
        "packageDependencies": [\
          ["nested-property", "npm:4.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["netmask", [\
      ["npm:2.0.2", {\
        "packageLocation": "./.yarn/cache/netmask-npm-2.0.2-2299510a4d-375cabe898.zip/node_modules/netmask/",\
        "packageDependencies": [\
          ["netmask", "npm:2.0.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["next-tick", [\
      ["npm:1.1.0", {\
        "packageLocation": "./.yarn/cache/next-tick-npm-1.1.0-e0eb60d6a4-83b5cf3602.zip/node_modules/next-tick/",\
        "packageDependencies": [\
          ["next-tick", "npm:1.1.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["node-abort-controller", [\
      ["npm:3.1.1", {\
        "packageLocation": "./.yarn/cache/node-abort-controller-npm-3.1.1-e246ed42cd-0a2cdb7ec0.zip/node_modules/node-abort-controller/",\
        "packageDependencies": [\
          ["node-abort-controller", "npm:3.1.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["node-addon-api", [\
      ["npm:5.1.0", {\
        "packageLocation": "./.yarn/unplugged/node-addon-api-npm-5.1.0-b50d00f739/node_modules/node-addon-api/",\
        "packageDependencies": [\
          ["node-addon-api", "npm:5.1.0"],\
          ["node-gyp", "npm:9.4.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["node-domexception", [\
      ["npm:1.0.0", {\
        "packageLocation": "./.yarn/cache/node-domexception-npm-1.0.0-e1e813b76f-e332522f24.zip/node_modules/node-domexception/",\
        "packageDependencies": [\
          ["node-domexception", "npm:1.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["node-fetch", [\
      ["npm:2.6.12", {\
        "packageLocation": "./.yarn/cache/node-fetch-npm-2.6.12-48619ce9d6-370ed4d906.zip/node_modules/node-fetch/",\
        "packageDependencies": [\
          ["node-fetch", "npm:2.6.12"]\
        ],\
        "linkType": "SOFT"\
      }],\
      ["npm:3.3.2", {\
        "packageLocation": "./.yarn/cache/node-fetch-npm-3.3.2-5267e015f2-24207ca8c8.zip/node_modules/node-fetch/",\
        "packageDependencies": [\
          ["node-fetch", "npm:3.3.2"],\
          ["data-uri-to-buffer", "npm:4.0.1"],\
          ["fetch-blob", "npm:3.2.0"],\
          ["formdata-polyfill", "npm:4.0.10"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["virtual:5547f15a2bb3d361d141532d43f94523f31e9edfe533f8367b3e26e300194e2978be03f56c09e100afcfee4c02b7fbe13c6ffcf58c613b457a86da522a2979f2#npm:2.6.12", {\
        "packageLocation": "./.yarn/__virtual__/node-fetch-virtual-08710871b2/0/cache/node-fetch-npm-2.6.12-48619ce9d6-370ed4d906.zip/node_modules/node-fetch/",\
        "packageDependencies": [\
          ["node-fetch", "virtual:5547f15a2bb3d361d141532d43f94523f31e9edfe533f8367b3e26e300194e2978be03f56c09e100afcfee4c02b7fbe13c6ffcf58c613b457a86da522a2979f2#npm:2.6.12"],\
          ["@types/encoding", null],\
          ["encoding", "npm:0.1.13"],\
          ["whatwg-url", "npm:5.0.0"]\
        ],\
        "packagePeers": [\
          "@types/encoding"\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["node-gyp", [\
      ["npm:11.2.0", {\
        "packageLocation": "./.yarn/unplugged/node-gyp-npm-11.2.0-36aeb0fa50/node_modules/node-gyp/",\
        "packageDependencies": [\
          ["node-gyp", "npm:11.2.0"],\
          ["env-paths", "npm:2.2.1"],\
          ["exponential-backoff", "npm:3.1.1"],\
          ["graceful-fs", "npm:4.2.11"],\
          ["make-fetch-happen", "npm:14.0.3"],\
          ["nopt", "npm:8.1.0"],\
          ["proc-log", "npm:5.0.0"],\
          ["semver", "npm:7.5.4"],\
          ["tar", "npm:7.4.3"],\
          ["tinyglobby", "npm:0.2.14"],\
          ["which", "npm:5.0.0"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:9.4.0", {\
        "packageLocation": "./.yarn/unplugged/node-gyp-npm-9.4.0-ebf5f5573e/node_modules/node-gyp/",\
        "packageDependencies": [\
          ["node-gyp", "npm:9.4.0"],\
          ["env-paths", "npm:2.2.1"],\
          ["exponential-backoff", "npm:3.1.1"],\
          ["glob", "npm:7.2.3"],\
          ["graceful-fs", "npm:4.2.11"],\
          ["make-fetch-happen", "npm:11.1.1"],\
          ["nopt", "npm:6.0.0"],\
          ["npmlog", "npm:6.0.2"],\
          ["rimraf", "npm:3.0.2"],\
          ["semver", "npm:7.5.4"],\
          ["tar", "npm:6.1.15"],\
          ["which", "npm:2.0.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["node-gyp-build", [\
      ["npm:4.6.0", {\
        "packageLocation": "./.yarn/cache/node-gyp-build-npm-4.6.0-5434aac3e5-c8b57abe5e.zip/node_modules/node-gyp-build/",\
        "packageDependencies": [\
          ["node-gyp-build", "npm:4.6.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["node-gyp-build-optional-packages", [\
      ["npm:5.0.7", {\
        "packageLocation": "./.yarn/cache/node-gyp-build-optional-packages-npm-5.0.7-40f21a5d68-f61780b83e.zip/node_modules/node-gyp-build-optional-packages/",\
        "packageDependencies": [\
          ["node-gyp-build-optional-packages", "npm:5.0.7"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["node-releases", [\
      ["npm:2.0.13", {\
        "packageLocation": "./.yarn/cache/node-releases-npm-2.0.13-1f2e177887-c9bb813aab.zip/node_modules/node-releases/",\
        "packageDependencies": [\
          ["node-releases", "npm:2.0.13"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["nodemailer", [\
      ["npm:6.9.3", {\
        "packageLocation": "./.yarn/cache/nodemailer-npm-6.9.3-8a4e39e54a-01ba9688f3.zip/node_modules/nodemailer/",\
        "packageDependencies": [\
          ["nodemailer", "npm:6.9.3"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["nofilter", [\
      ["npm:3.1.0", {\
        "packageLocation": "./.yarn/cache/nofilter-npm-3.1.0-3c5ba47d92-f63d87231d.zip/node_modules/nofilter/",\
        "packageDependencies": [\
          ["nofilter", "npm:3.1.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["nopt", [\
      ["npm:5.0.0", {\
        "packageLocation": "./.yarn/cache/nopt-npm-5.0.0-304b40fbfe-00f9bb2d16.zip/node_modules/nopt/",\
        "packageDependencies": [\
          ["nopt", "npm:5.0.0"],\
          ["abbrev", "npm:1.1.1"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:6.0.0", {\
        "packageLocation": "./.yarn/cache/nopt-npm-6.0.0-5ea8050815-3c1128e07c.zip/node_modules/nopt/",\
        "packageDependencies": [\
          ["nopt", "npm:6.0.0"],\
          ["abbrev", "npm:1.1.1"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:8.1.0", {\
        "packageLocation": "./.yarn/cache/nopt-npm-8.1.0-5570ef63cd-26ab456c51.zip/node_modules/nopt/",\
        "packageDependencies": [\
          ["nopt", "npm:8.1.0"],\
          ["abbrev", "npm:3.0.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["normalize-path", [\
      ["npm:3.0.0", {\
        "packageLocation": "./.yarn/cache/normalize-path-npm-3.0.0-658ba7d77f-88eeb4da89.zip/node_modules/normalize-path/",\
        "packageDependencies": [\
          ["normalize-path", "npm:3.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["normalize-url", [\
      ["npm:6.1.0", {\
        "packageLocation": "./.yarn/cache/normalize-url-npm-6.1.0-b95bc12ece-5ae699402c.zip/node_modules/normalize-url/",\
        "packageDependencies": [\
          ["normalize-url", "npm:6.1.0"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:8.0.0", {\
        "packageLocation": "./.yarn/cache/normalize-url-npm-8.0.0-1f5dc7ece5-4347d6ee39.zip/node_modules/normalize-url/",\
        "packageDependencies": [\
          ["normalize-url", "npm:8.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["npmlog", [\
      ["npm:5.0.1", {\
        "packageLocation": "./.yarn/cache/npmlog-npm-5.0.1-366cab64a2-f42c7b9584.zip/node_modules/npmlog/",\
        "packageDependencies": [\
          ["npmlog", "npm:5.0.1"],\
          ["are-we-there-yet", "npm:2.0.0"],\
          ["console-control-strings", "npm:1.1.0"],\
          ["gauge", "npm:3.0.2"],\
          ["set-blocking", "npm:2.0.0"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:6.0.2", {\
        "packageLocation": "./.yarn/cache/npmlog-npm-6.0.2-e0e69455c7-82b123677e.zip/node_modules/npmlog/",\
        "packageDependencies": [\
          ["npmlog", "npm:6.0.2"],\
          ["are-we-there-yet", "npm:3.0.1"],\
          ["console-control-strings", "npm:1.1.0"],\
          ["gauge", "npm:4.0.4"],\
          ["set-blocking", "npm:2.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["nth-check", [\
      ["npm:1.0.2", {\
        "packageLocation": "./.yarn/cache/nth-check-npm-1.0.2-3f6d0d22eb-59e115fdd7.zip/node_modules/nth-check/",\
        "packageDependencies": [\
          ["nth-check", "npm:1.0.2"],\
          ["boolbase", "npm:1.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["nwsapi", [\
      ["npm:2.2.7", {\
        "packageLocation": "./.yarn/cache/nwsapi-npm-2.2.7-3bed340fab-22c002080f.zip/node_modules/nwsapi/",\
        "packageDependencies": [\
          ["nwsapi", "npm:2.2.7"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["oauth", [\
      ["npm:0.10.0", {\
        "packageLocation": "./.yarn/cache/oauth-npm-0.10.0-74adff7683-3568089799.zip/node_modules/oauth/",\
        "packageDependencies": [\
          ["oauth", "npm:0.10.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["object-assign", [\
      ["npm:4.1.1", {\
        "packageLocation": "./.yarn/cache/object-assign-npm-4.1.1-1004ad6dec-fcc6e4ea8c.zip/node_modules/object-assign/",\
        "packageDependencies": [\
          ["object-assign", "npm:4.1.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["object-inspect", [\
      ["npm:1.12.3", {\
        "packageLocation": "./.yarn/cache/object-inspect-npm-1.12.3-1e7d20f5ff-532b0036f0.zip/node_modules/object-inspect/",\
        "packageDependencies": [\
          ["object-inspect", "npm:1.12.3"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["on-finished", [\
      ["npm:2.4.1", {\
        "packageLocation": "./.yarn/cache/on-finished-npm-2.4.1-907af70f88-8e81472c50.zip/node_modules/on-finished/",\
        "packageDependencies": [\
          ["on-finished", "npm:2.4.1"],\
          ["ee-first", "npm:1.1.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["once", [\
      ["npm:1.4.0", {\
        "packageLocation": "./.yarn/cache/once-npm-1.4.0-ccf03ef07a-cd0a885013.zip/node_modules/once/",\
        "packageDependencies": [\
          ["once", "npm:1.4.0"],\
          ["wrappy", "npm:1.0.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["only", [\
      ["npm:0.0.2", {\
        "packageLocation": "./.yarn/cache/only-npm-0.0.2-122402a3f9-e2ad03e486.zip/node_modules/only/",\
        "packageDependencies": [\
          ["only", "npm:0.0.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["opencollective-postinstall", [\
      ["npm:2.0.3", {\
        "packageLocation": "./.yarn/cache/opencollective-postinstall-npm-2.0.3-954643c36b-69d6377808.zip/node_modules/opencollective-postinstall/",\
        "packageDependencies": [\
          ["opencollective-postinstall", "npm:2.0.3"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["opentype.js", [\
      ["npm:0.4.11", {\
        "packageLocation": "./.yarn/cache/opentype.js-npm-0.4.11-bb2895af0c-436887f913.zip/node_modules/opentype.js/",\
        "packageDependencies": [\
          ["opentype.js", "npm:0.4.11"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["optionator", [\
      ["npm:0.9.3", {\
        "packageLocation": "./.yarn/cache/optionator-npm-0.9.3-56c3a4bf80-fa28d30163.zip/node_modules/optionator/",\
        "packageDependencies": [\
          ["optionator", "npm:0.9.3"],\
          ["@aashutoshrathi/word-wrap", "npm:1.2.6"],\
          ["deep-is", "npm:0.1.4"],\
          ["fast-levenshtein", "npm:2.0.6"],\
          ["levn", "npm:0.4.1"],\
          ["prelude-ls", "npm:1.2.1"],\
          ["type-check", "npm:0.4.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["os-utils", [\
      ["npm:0.0.14", {\
        "packageLocation": "./.yarn/cache/os-utils-npm-0.0.14-139244a17c-6436c9af98.zip/node_modules/os-utils/",\
        "packageDependencies": [\
          ["os-utils", "npm:0.0.14"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["otpauth", [\
      ["npm:9.1.4", {\
        "packageLocation": "./.yarn/cache/otpauth-npm-9.1.4-f92984b665-a5a1a0ffa3.zip/node_modules/otpauth/",\
        "packageDependencies": [\
          ["otpauth", "npm:9.1.4"],\
          ["jssha", "npm:3.3.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["p-cancelable", [\
      ["npm:2.1.1", {\
        "packageLocation": "./.yarn/cache/p-cancelable-npm-2.1.1-9388305f02-7f1b64db17.zip/node_modules/p-cancelable/",\
        "packageDependencies": [\
          ["p-cancelable", "npm:2.1.1"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:3.0.0", {\
        "packageLocation": "./.yarn/cache/p-cancelable-npm-3.0.0-e6c8101c97-a5eab7cf5a.zip/node_modules/p-cancelable/",\
        "packageDependencies": [\
          ["p-cancelable", "npm:3.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["p-limit", [\
      ["npm:2.3.0", {\
        "packageLocation": "./.yarn/cache/p-limit-npm-2.3.0-94a0310039-84ff17f1a3.zip/node_modules/p-limit/",\
        "packageDependencies": [\
          ["p-limit", "npm:2.3.0"],\
          ["p-try", "npm:2.2.0"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:3.1.0", {\
        "packageLocation": "./.yarn/cache/p-limit-npm-3.1.0-05d2ede37f-7c3690c4db.zip/node_modules/p-limit/",\
        "packageDependencies": [\
          ["p-limit", "npm:3.1.0"],\
          ["yocto-queue", "npm:0.1.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["p-locate", [\
      ["npm:4.1.0", {\
        "packageLocation": "./.yarn/cache/p-locate-npm-4.1.0-eec6872537-513bd14a45.zip/node_modules/p-locate/",\
        "packageDependencies": [\
          ["p-locate", "npm:4.1.0"],\
          ["p-limit", "npm:2.3.0"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:5.0.0", {\
        "packageLocation": "./.yarn/cache/p-locate-npm-5.0.0-92cc7c7a3e-1623088f36.zip/node_modules/p-locate/",\
        "packageDependencies": [\
          ["p-locate", "npm:5.0.0"],\
          ["p-limit", "npm:3.1.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["p-map", [\
      ["npm:4.0.0", {\
        "packageLocation": "./.yarn/cache/p-map-npm-4.0.0-4677ae07c7-7ba4a2b1e2.zip/node_modules/p-map/",\
        "packageDependencies": [\
          ["p-map", "npm:4.0.0"],\
          ["aggregate-error", "npm:3.1.0"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:7.0.3", {\
        "packageLocation": "./.yarn/cache/p-map-npm-7.0.3-93bbec0d8c-2ef48ccfc6.zip/node_modules/p-map/",\
        "packageDependencies": [\
          ["p-map", "npm:7.0.3"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["p-try", [\
      ["npm:2.2.0", {\
        "packageLocation": "./.yarn/cache/p-try-npm-2.2.0-e0390dbaf8-f8a8e9a769.zip/node_modules/p-try/",\
        "packageDependencies": [\
          ["p-try", "npm:2.2.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["packet-reader", [\
      ["npm:1.0.0", {\
        "packageLocation": "./.yarn/cache/packet-reader-npm-1.0.0-e93c92246b-8504cc8c32.zip/node_modules/packet-reader/",\
        "packageDependencies": [\
          ["packet-reader", "npm:1.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["pako", [\
      ["npm:0.2.9", {\
        "packageLocation": "./.yarn/cache/pako-npm-0.2.9-c88ac0d326-627c6842e9.zip/node_modules/pako/",\
        "packageDependencies": [\
          ["pako", "npm:0.2.9"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["parent-module", [\
      ["npm:1.0.1", {\
        "packageLocation": "./.yarn/cache/parent-module-npm-1.0.1-1fae11b095-6ba8b25514.zip/node_modules/parent-module/",\
        "packageDependencies": [\
          ["parent-module", "npm:1.0.1"],\
          ["callsites", "npm:3.1.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["parse-duration", [\
      ["npm:1.1.0", {\
        "packageLocation": "./.yarn/cache/parse-duration-npm-1.1.0-cb12528e2a-c26ab1e3fd.zip/node_modules/parse-duration/",\
        "packageDependencies": [\
          ["parse-duration", "npm:1.1.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["parse-srcset", [\
      ["npm:1.0.2", {\
        "packageLocation": "./.yarn/cache/parse-srcset-npm-1.0.2-8acc142245-d40c131cfc.zip/node_modules/parse-srcset/",\
        "packageDependencies": [\
          ["parse-srcset", "npm:1.0.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["parse5", [\
      ["npm:5.1.1", {\
        "packageLocation": "./.yarn/cache/parse5-npm-5.1.1-8e63d82cff-5b509744cf.zip/node_modules/parse5/",\
        "packageDependencies": [\
          ["parse5", "npm:5.1.1"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:6.0.1", {\
        "packageLocation": "./.yarn/cache/parse5-npm-6.0.1-70a35a494a-dfb110581f.zip/node_modules/parse5/",\
        "packageDependencies": [\
          ["parse5", "npm:6.0.1"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:7.1.2", {\
        "packageLocation": "./.yarn/cache/parse5-npm-7.1.2-aa9a92c270-3c86806bb0.zip/node_modules/parse5/",\
        "packageDependencies": [\
          ["parse5", "npm:7.1.2"],\
          ["entities", "npm:4.5.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["parse5-htmlparser2-tree-adapter", [\
      ["npm:6.0.1", {\
        "packageLocation": "./.yarn/cache/parse5-htmlparser2-tree-adapter-npm-6.0.1-60b4888f75-3400a2cd1a.zip/node_modules/parse5-htmlparser2-tree-adapter/",\
        "packageDependencies": [\
          ["parse5-htmlparser2-tree-adapter", "npm:6.0.1"],\
          ["parse5", "npm:6.0.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["parseurl", [\
      ["npm:1.3.3", {\
        "packageLocation": "./.yarn/cache/parseurl-npm-1.3.3-1542397e00-407cee8e0a.zip/node_modules/parseurl/",\
        "packageDependencies": [\
          ["parseurl", "npm:1.3.3"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["passthrough-counter", [\
      ["npm:1.0.0", {\
        "packageLocation": "./.yarn/cache/passthrough-counter-npm-1.0.0-cbb2a89ced-942a0addeb.zip/node_modules/passthrough-counter/",\
        "packageDependencies": [\
          ["passthrough-counter", "npm:1.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["path-exists", [\
      ["npm:4.0.0", {\
        "packageLocation": "./.yarn/cache/path-exists-npm-4.0.0-e9e4f63eb0-505807199d.zip/node_modules/path-exists/",\
        "packageDependencies": [\
          ["path-exists", "npm:4.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["path-is-absolute", [\
      ["npm:1.0.1", {\
        "packageLocation": "./.yarn/cache/path-is-absolute-npm-1.0.1-31bc695ffd-060840f92c.zip/node_modules/path-is-absolute/",\
        "packageDependencies": [\
          ["path-is-absolute", "npm:1.0.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["path-key", [\
      ["npm:3.1.1", {\
        "packageLocation": "./.yarn/cache/path-key-npm-3.1.1-0e66ea8321-55cd7a9dd4.zip/node_modules/path-key/",\
        "packageDependencies": [\
          ["path-key", "npm:3.1.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["path-parse", [\
      ["npm:1.0.7", {\
        "packageLocation": "./.yarn/cache/path-parse-npm-1.0.7-09564527b7-49abf3d811.zip/node_modules/path-parse/",\
        "packageDependencies": [\
          ["path-parse", "npm:1.0.7"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["path-scurry", [\
      ["npm:1.10.1", {\
        "packageLocation": "./.yarn/cache/path-scurry-npm-1.10.1-52bd946f2e-eebfb8304f.zip/node_modules/path-scurry/",\
        "packageDependencies": [\
          ["path-scurry", "npm:1.10.1"],\
          ["lru-cache", "npm:10.0.0"],\
          ["minipass", "npm:7.0.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["path-to-regexp", [\
      ["npm:6.2.1", {\
        "packageLocation": "./.yarn/cache/path-to-regexp-npm-6.2.1-8ebfe03654-1e266be712.zip/node_modules/path-to-regexp/",\
        "packageDependencies": [\
          ["path-to-regexp", "npm:6.2.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["peek-readable", [\
      ["npm:5.0.0", {\
        "packageLocation": "./.yarn/cache/peek-readable-npm-5.0.0-c469f805e3-d342f02dd0.zip/node_modules/peek-readable/",\
        "packageDependencies": [\
          ["peek-readable", "npm:5.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["peek-stream", [\
      ["npm:1.1.3", {\
        "packageLocation": "./.yarn/cache/peek-stream-npm-1.1.3-ff78afd138-a0e09d6d1a.zip/node_modules/peek-stream/",\
        "packageDependencies": [\
          ["peek-stream", "npm:1.1.3"],\
          ["buffer-from", "npm:1.1.2"],\
          ["duplexify", "npm:3.7.1"],\
          ["through2", "npm:2.0.5"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["pend", [\
      ["npm:1.2.0", {\
        "packageLocation": "./.yarn/cache/pend-npm-1.2.0-7a13d93266-6c72f52433.zip/node_modules/pend/",\
        "packageDependencies": [\
          ["pend", "npm:1.2.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["pg", [\
      ["npm:8.11.1", {\
        "packageLocation": "./.yarn/cache/pg-npm-8.11.1-ed8e244704-3ad52f84c0.zip/node_modules/pg/",\
        "packageDependencies": [\
          ["pg", "npm:8.11.1"]\
        ],\
        "linkType": "SOFT"\
      }],\
      ["virtual:aa59773ac87791c4813d53447077fcf8a847d6de5a301d34dc31286584b1dbb26d30d3adb5b4c41c1e8aea04371e926fda05c09c6253647c432e11d872a304ba#npm:8.11.1", {\
        "packageLocation": "./.yarn/__virtual__/pg-virtual-bd80eaacab/0/cache/pg-npm-8.11.1-ed8e244704-3ad52f84c0.zip/node_modules/pg/",\
        "packageDependencies": [\
          ["pg", "virtual:aa59773ac87791c4813d53447077fcf8a847d6de5a301d34dc31286584b1dbb26d30d3adb5b4c41c1e8aea04371e926fda05c09c6253647c432e11d872a304ba#npm:8.11.1"],\
          ["@types/pg-native", null],\
          ["buffer-writer", "npm:2.0.0"],\
          ["packet-reader", "npm:1.0.0"],\
          ["pg-cloudflare", "npm:1.1.1"],\
          ["pg-connection-string", "npm:2.6.1"],\
          ["pg-native", null],\
          ["pg-pool", "virtual:bd80eaacaba4ac69e52ab40a70c2c4b13c6ce0a9346f8311e962f3e59c362840bf10abfde728731d045107c0c12c343c12db88e4d4947cbfbe342854b0e454f8#npm:3.6.1"],\
          ["pg-protocol", "npm:1.6.0"],\
          ["pg-types", "npm:2.2.0"],\
          ["pgpass", "npm:1.0.5"]\
        ],\
        "packagePeers": [\
          "@types/pg-native",\
          "pg-native"\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["pg-cloudflare", [\
      ["npm:1.1.1", {\
        "packageLocation": "./.yarn/cache/pg-cloudflare-npm-1.1.1-fe242426f0-45ca0c7926.zip/node_modules/pg-cloudflare/",\
        "packageDependencies": [\
          ["pg-cloudflare", "npm:1.1.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["pg-connection-string", [\
      ["npm:2.6.1", {\
        "packageLocation": "./.yarn/cache/pg-connection-string-npm-2.6.1-f3f97c91a5-882344a47e.zip/node_modules/pg-connection-string/",\
        "packageDependencies": [\
          ["pg-connection-string", "npm:2.6.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["pg-int8", [\
      ["npm:1.0.1", {\
        "packageLocation": "./.yarn/cache/pg-int8-npm-1.0.1-5cd67f3e22-a1e3a05a69.zip/node_modules/pg-int8/",\
        "packageDependencies": [\
          ["pg-int8", "npm:1.0.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["pg-pool", [\
      ["npm:3.6.1", {\
        "packageLocation": "./.yarn/cache/pg-pool-npm-3.6.1-477c9660b9-5d1b02b959.zip/node_modules/pg-pool/",\
        "packageDependencies": [\
          ["pg-pool", "npm:3.6.1"]\
        ],\
        "linkType": "SOFT"\
      }],\
      ["virtual:bd80eaacaba4ac69e52ab40a70c2c4b13c6ce0a9346f8311e962f3e59c362840bf10abfde728731d045107c0c12c343c12db88e4d4947cbfbe342854b0e454f8#npm:3.6.1", {\
        "packageLocation": "./.yarn/__virtual__/pg-pool-virtual-8f153f9ee5/0/cache/pg-pool-npm-3.6.1-477c9660b9-5d1b02b959.zip/node_modules/pg-pool/",\
        "packageDependencies": [\
          ["pg-pool", "virtual:bd80eaacaba4ac69e52ab40a70c2c4b13c6ce0a9346f8311e962f3e59c362840bf10abfde728731d045107c0c12c343c12db88e4d4947cbfbe342854b0e454f8#npm:3.6.1"],\
          ["@types/pg", null],\
          ["pg", "virtual:aa59773ac87791c4813d53447077fcf8a847d6de5a301d34dc31286584b1dbb26d30d3adb5b4c41c1e8aea04371e926fda05c09c6253647c432e11d872a304ba#npm:8.11.1"]\
        ],\
        "packagePeers": [\
          "@types/pg",\
          "pg"\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["pg-protocol", [\
      ["npm:1.6.0", {\
        "packageLocation": "./.yarn/cache/pg-protocol-npm-1.6.0-089a4b1d3c-995864cc2a.zip/node_modules/pg-protocol/",\
        "packageDependencies": [\
          ["pg-protocol", "npm:1.6.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["pg-types", [\
      ["npm:2.2.0", {\
        "packageLocation": "./.yarn/cache/pg-types-npm-2.2.0-a3360226c4-87a84d4baa.zip/node_modules/pg-types/",\
        "packageDependencies": [\
          ["pg-types", "npm:2.2.0"],\
          ["pg-int8", "npm:1.0.1"],\
          ["postgres-array", "npm:2.0.0"],\
          ["postgres-bytea", "npm:1.0.0"],\
          ["postgres-date", "npm:1.0.7"],\
          ["postgres-interval", "npm:1.2.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["pgpass", [\
      ["npm:1.0.5", {\
        "packageLocation": "./.yarn/cache/pgpass-npm-1.0.5-653e71ddd8-0a6f3bf76e.zip/node_modules/pgpass/",\
        "packageDependencies": [\
          ["pgpass", "npm:1.0.5"],\
          ["split2", "npm:4.2.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["picocolors", [\
      ["npm:1.0.0", {\
        "packageLocation": "./.yarn/cache/picocolors-npm-1.0.0-d81e0b1927-a2e8092dd8.zip/node_modules/picocolors/",\
        "packageDependencies": [\
          ["picocolors", "npm:1.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["picomatch", [\
      ["npm:4.0.2", {\
        "packageLocation": "./.yarn/cache/picomatch-npm-4.0.2-e93516ddf2-ce617b8da3.zip/node_modules/picomatch/",\
        "packageDependencies": [\
          ["picomatch", "npm:4.0.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["pify", [\
      ["npm:2.3.0", {\
        "packageLocation": "./.yarn/cache/pify-npm-2.3.0-8b63310934-9503aaeaf4.zip/node_modules/pify/",\
        "packageDependencies": [\
          ["pify", "npm:2.3.0"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:3.0.0", {\
        "packageLocation": "./.yarn/cache/pify-npm-3.0.0-679ee405c8-668c1dc8d9.zip/node_modules/pify/",\
        "packageDependencies": [\
          ["pify", "npm:3.0.0"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:4.0.1", {\
        "packageLocation": "./.yarn/cache/pify-npm-4.0.1-062756097b-8b97cbf9dc.zip/node_modules/pify/",\
        "packageDependencies": [\
          ["pify", "npm:4.0.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["pinkie", [\
      ["npm:2.0.4", {\
        "packageLocation": "./.yarn/cache/pinkie-npm-2.0.4-cffce4fb09-11d207257a.zip/node_modules/pinkie/",\
        "packageDependencies": [\
          ["pinkie", "npm:2.0.4"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["pinkie-promise", [\
      ["npm:2.0.1", {\
        "packageLocation": "./.yarn/cache/pinkie-promise-npm-2.0.1-095439b8c5-b53a4a2e73.zip/node_modules/pinkie-promise/",\
        "packageDependencies": [\
          ["pinkie-promise", "npm:2.0.1"],\
          ["pinkie", "npm:2.0.4"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["pngjs", [\
      ["npm:3.4.0", {\
        "packageLocation": "./.yarn/cache/pngjs-npm-3.4.0-4e495c1dad-0e9227a413.zip/node_modules/pngjs/",\
        "packageDependencies": [\
          ["pngjs", "npm:3.4.0"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:5.0.0", {\
        "packageLocation": "./.yarn/cache/pngjs-npm-5.0.0-e8ba79f838-3457816447.zip/node_modules/pngjs/",\
        "packageDependencies": [\
          ["pngjs", "npm:5.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["postcss", [\
      ["npm:8.4.27", {\
        "packageLocation": "./.yarn/cache/postcss-npm-8.4.27-2a9f5f8f40-57143e3c5d.zip/node_modules/postcss/",\
        "packageDependencies": [\
          ["postcss", "npm:8.4.27"],\
          ["nanoid", "npm:3.3.6"],\
          ["picocolors", "npm:1.0.0"],\
          ["source-map-js", "npm:1.0.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["postgres-array", [\
      ["npm:2.0.0", {\
        "packageLocation": "./.yarn/cache/postgres-array-npm-2.0.0-4f49dc1389-aff99e7971.zip/node_modules/postgres-array/",\
        "packageDependencies": [\
          ["postgres-array", "npm:2.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["postgres-bytea", [\
      ["npm:1.0.0", {\
        "packageLocation": "./.yarn/cache/postgres-bytea-npm-1.0.0-8c2b81fa73-d844ae4ca7.zip/node_modules/postgres-bytea/",\
        "packageDependencies": [\
          ["postgres-bytea", "npm:1.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["postgres-date", [\
      ["npm:1.0.7", {\
        "packageLocation": "./.yarn/cache/postgres-date-npm-1.0.7-aadfe5531e-571ef45bec.zip/node_modules/postgres-date/",\
        "packageDependencies": [\
          ["postgres-date", "npm:1.0.7"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["postgres-interval", [\
      ["npm:1.2.0", {\
        "packageLocation": "./.yarn/cache/postgres-interval-npm-1.2.0-ca6414744d-746b71f938.zip/node_modules/postgres-interval/",\
        "packageDependencies": [\
          ["postgres-interval", "npm:1.2.0"],\
          ["xtend", "npm:4.0.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["prelude-ls", [\
      ["npm:1.2.1", {\
        "packageLocation": "./.yarn/cache/prelude-ls-npm-1.2.1-3e4d272a55-0b9d2c7680.zip/node_modules/prelude-ls/",\
        "packageDependencies": [\
          ["prelude-ls", "npm:1.2.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["pretty", [\
      ["npm:2.0.0", {\
        "packageLocation": "./.yarn/cache/pretty-npm-2.0.0-9c25795870-9c41ae0559.zip/node_modules/pretty/",\
        "packageDependencies": [\
          ["pretty", "npm:2.0.0"],\
          ["condense-newlines", "npm:0.2.1"],\
          ["extend-shallow", "npm:2.0.1"],\
          ["js-beautify", "npm:1.14.9"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["private-ip", [\
      ["npm:2.3.3", {\
        "packageLocation": "./.yarn/cache/private-ip-npm-2.3.3-330bcf2a5d-c362d1b07e.zip/node_modules/private-ip/",\
        "packageDependencies": [\
          ["private-ip", "npm:2.3.3"],\
          ["ip-regex", "npm:4.3.0"],\
          ["ipaddr.js", "npm:2.1.0"],\
          ["is-ip", "npm:3.1.0"],\
          ["netmask", "npm:2.0.2"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:2.3.4", {\
        "packageLocation": "./.yarn/cache/private-ip-npm-2.3.4-a1b55e33d2-e55874341c.zip/node_modules/private-ip/",\
        "packageDependencies": [\
          ["private-ip", "npm:2.3.4"],\
          ["ip-regex", "npm:4.3.0"],\
          ["ipaddr.js", "npm:2.1.0"],\
          ["is-ip", "npm:3.1.0"],\
          ["netmask", "npm:2.0.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["probe-image-size", [\
      ["npm:7.2.3", {\
        "packageLocation": "./.yarn/cache/probe-image-size-npm-7.2.3-2b6ee36e6f-6df205754d.zip/node_modules/probe-image-size/",\
        "packageDependencies": [\
          ["probe-image-size", "npm:7.2.3"],\
          ["lodash.merge", "npm:4.6.2"],\
          ["needle", "npm:2.9.1"],\
          ["stream-parser", "npm:0.3.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["proc-log", [\
      ["npm:5.0.0", {\
        "packageLocation": "./.yarn/cache/proc-log-npm-5.0.0-405173f9b4-35610bdb01.zip/node_modules/proc-log/",\
        "packageDependencies": [\
          ["proc-log", "npm:5.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["process-nextick-args", [\
      ["npm:2.0.1", {\
        "packageLocation": "./.yarn/cache/process-nextick-args-npm-2.0.1-b8d7971609-1d38588e52.zip/node_modules/process-nextick-args/",\
        "packageDependencies": [\
          ["process-nextick-args", "npm:2.0.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["prom-client", [\
      ["npm:15.1.0", {\
        "packageLocation": "./.yarn/cache/prom-client-npm-15.1.0-0b2231d02c-ecb6f40de7.zip/node_modules/prom-client/",\
        "packageDependencies": [\
          ["prom-client", "npm:15.1.0"],\
          ["@opentelemetry/api", "npm:1.7.0"],\
          ["tdigest", "npm:0.1.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["promise", [\
      ["npm:7.3.1", {\
        "packageLocation": "./.yarn/cache/promise-npm-7.3.1-5d81d474c0-37dbe58ca7.zip/node_modules/promise/",\
        "packageDependencies": [\
          ["promise", "npm:7.3.1"],\
          ["asap", "npm:2.0.6"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["promise-limit", [\
      ["npm:2.7.0", {\
        "packageLocation": "./.yarn/cache/promise-limit-npm-2.7.0-cb930a295a-9756d35a70.zip/node_modules/promise-limit/",\
        "packageDependencies": [\
          ["promise-limit", "npm:2.7.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["promise-retry", [\
      ["npm:2.0.1", {\
        "packageLocation": "./.yarn/cache/promise-retry-npm-2.0.1-871f0b01b7-96e1a82453.zip/node_modules/promise-retry/",\
        "packageDependencies": [\
          ["promise-retry", "npm:2.0.1"],\
          ["err-code", "npm:2.0.3"],\
          ["retry", "npm:0.12.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["proto-list", [\
      ["npm:1.2.4", {\
        "packageLocation": "./.yarn/cache/proto-list-npm-1.2.4-a96a43df28-9cc3b46d61.zip/node_modules/proto-list/",\
        "packageDependencies": [\
          ["proto-list", "npm:1.2.4"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["psl", [\
      ["npm:1.9.0", {\
        "packageLocation": "./.yarn/cache/psl-npm-1.9.0-a546edad1a-d07879d4bf.zip/node_modules/psl/",\
        "packageDependencies": [\
          ["psl", "npm:1.9.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["pug", [\
      ["npm:3.0.2", {\
        "packageLocation": "./.yarn/cache/pug-npm-3.0.2-a900d45f03-4bb4cab1ab.zip/node_modules/pug/",\
        "packageDependencies": [\
          ["pug", "npm:3.0.2"],\
          ["pug-code-gen", "npm:3.0.2"],\
          ["pug-filters", "npm:4.0.0"],\
          ["pug-lexer", "npm:5.0.1"],\
          ["pug-linker", "npm:4.0.0"],\
          ["pug-load", "npm:3.0.0"],\
          ["pug-parser", "npm:6.0.0"],\
          ["pug-runtime", "npm:3.0.1"],\
          ["pug-strip-comments", "npm:2.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["pug-attrs", [\
      ["npm:3.0.0", {\
        "packageLocation": "./.yarn/cache/pug-attrs-npm-3.0.0-31b331fe79-2ca2d34de3.zip/node_modules/pug-attrs/",\
        "packageDependencies": [\
          ["pug-attrs", "npm:3.0.0"],\
          ["constantinople", "npm:4.0.1"],\
          ["js-stringify", "npm:1.0.2"],\
          ["pug-runtime", "npm:3.0.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["pug-code-gen", [\
      ["npm:3.0.2", {\
        "packageLocation": "./.yarn/cache/pug-code-gen-npm-3.0.2-1cc7d40723-8245ba433a.zip/node_modules/pug-code-gen/",\
        "packageDependencies": [\
          ["pug-code-gen", "npm:3.0.2"],\
          ["constantinople", "npm:4.0.1"],\
          ["doctypes", "npm:1.1.0"],\
          ["js-stringify", "npm:1.0.2"],\
          ["pug-attrs", "npm:3.0.0"],\
          ["pug-error", "npm:2.0.0"],\
          ["pug-runtime", "npm:3.0.1"],\
          ["void-elements", "npm:3.1.0"],\
          ["with", "npm:7.0.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["pug-error", [\
      ["npm:2.0.0", {\
        "packageLocation": "./.yarn/cache/pug-error-npm-2.0.0-13b776f97b-c5372d018c.zip/node_modules/pug-error/",\
        "packageDependencies": [\
          ["pug-error", "npm:2.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["pug-filters", [\
      ["npm:4.0.0", {\
        "packageLocation": "./.yarn/cache/pug-filters-npm-4.0.0-d2cf0196e7-ca8b7ffede.zip/node_modules/pug-filters/",\
        "packageDependencies": [\
          ["pug-filters", "npm:4.0.0"],\
          ["constantinople", "npm:4.0.1"],\
          ["jstransformer", "npm:1.0.0"],\
          ["pug-error", "npm:2.0.0"],\
          ["pug-walk", "npm:2.0.0"],\
          ["resolve", "patch:resolve@npm%3A1.22.3#optional!builtin<compat/resolve>::version=1.22.3&hash=c3c19d"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["pug-lexer", [\
      ["npm:5.0.1", {\
        "packageLocation": "./.yarn/cache/pug-lexer-npm-5.0.1-3bdff5fe60-18d74a2dfb.zip/node_modules/pug-lexer/",\
        "packageDependencies": [\
          ["pug-lexer", "npm:5.0.1"],\
          ["character-parser", "npm:2.2.0"],\
          ["is-expression", "npm:4.0.0"],\
          ["pug-error", "npm:2.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["pug-linker", [\
      ["npm:4.0.0", {\
        "packageLocation": "./.yarn/cache/pug-linker-npm-4.0.0-b140c7e607-423f62e860.zip/node_modules/pug-linker/",\
        "packageDependencies": [\
          ["pug-linker", "npm:4.0.0"],\
          ["pug-error", "npm:2.0.0"],\
          ["pug-walk", "npm:2.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["pug-load", [\
      ["npm:3.0.0", {\
        "packageLocation": "./.yarn/cache/pug-load-npm-3.0.0-dc9f2273d3-1800ec5199.zip/node_modules/pug-load/",\
        "packageDependencies": [\
          ["pug-load", "npm:3.0.0"],\
          ["object-assign", "npm:4.1.1"],\
          ["pug-walk", "npm:2.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["pug-parser", [\
      ["npm:6.0.0", {\
        "packageLocation": "./.yarn/cache/pug-parser-npm-6.0.0-87b7dc8a83-4c23e154ea.zip/node_modules/pug-parser/",\
        "packageDependencies": [\
          ["pug-parser", "npm:6.0.0"],\
          ["pug-error", "npm:2.0.0"],\
          ["token-stream", "npm:1.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["pug-runtime", [\
      ["npm:3.0.1", {\
        "packageLocation": "./.yarn/cache/pug-runtime-npm-3.0.1-13038c62ae-d34ee1b951.zip/node_modules/pug-runtime/",\
        "packageDependencies": [\
          ["pug-runtime", "npm:3.0.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["pug-strip-comments", [\
      ["npm:2.0.0", {\
        "packageLocation": "./.yarn/cache/pug-strip-comments-npm-2.0.0-7baa7bca2f-2cfcbf506c.zip/node_modules/pug-strip-comments/",\
        "packageDependencies": [\
          ["pug-strip-comments", "npm:2.0.0"],\
          ["pug-error", "npm:2.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["pug-walk", [\
      ["npm:2.0.0", {\
        "packageLocation": "./.yarn/cache/pug-walk-npm-2.0.0-a8a11880fc-bee64e133b.zip/node_modules/pug-walk/",\
        "packageDependencies": [\
          ["pug-walk", "npm:2.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["pump", [\
      ["npm:2.0.1", {\
        "packageLocation": "./.yarn/cache/pump-npm-2.0.1-05afac7fc4-e9f26a17be.zip/node_modules/pump/",\
        "packageDependencies": [\
          ["pump", "npm:2.0.1"],\
          ["end-of-stream", "npm:1.4.4"],\
          ["once", "npm:1.4.0"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:3.0.0", {\
        "packageLocation": "./.yarn/cache/pump-npm-3.0.0-0080bf6a7a-e42e9229fb.zip/node_modules/pump/",\
        "packageDependencies": [\
          ["pump", "npm:3.0.0"],\
          ["end-of-stream", "npm:1.4.4"],\
          ["once", "npm:1.4.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["pumpify", [\
      ["npm:1.5.1", {\
        "packageLocation": "./.yarn/cache/pumpify-npm-1.5.1-b928bd877f-5d11a99f32.zip/node_modules/pumpify/",\
        "packageDependencies": [\
          ["pumpify", "npm:1.5.1"],\
          ["duplexify", "npm:3.7.1"],\
          ["inherits", "npm:2.0.4"],\
          ["pump", "npm:2.0.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["punycode", [\
      ["npm:1.3.2", {\
        "packageLocation": "./.yarn/cache/punycode-npm-1.3.2-3727a84cea-5c57d588c6.zip/node_modules/punycode/",\
        "packageDependencies": [\
          ["punycode", "npm:1.3.2"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:2.3.0", {\
        "packageLocation": "./.yarn/cache/punycode-npm-2.3.0-df4bdce06b-d4e7fbb96f.zip/node_modules/punycode/",\
        "packageDependencies": [\
          ["punycode", "npm:2.3.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["pureimage", [\
      ["npm:0.3.15", {\
        "packageLocation": "./.yarn/cache/pureimage-npm-0.3.15-06cff99363-da20eb870b.zip/node_modules/pureimage/",\
        "packageDependencies": [\
          ["pureimage", "npm:0.3.15"],\
          ["jpeg-js", "npm:0.4.4"],\
          ["opentype.js", "npm:0.4.11"],\
          ["pngjs", "npm:3.4.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["q", [\
      ["npm:1.4.1", {\
        "packageLocation": "./.yarn/cache/q-npm-1.4.1-cc8d344fb7-31ac481a91.zip/node_modules/q/",\
        "packageDependencies": [\
          ["q", "npm:1.4.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["qrcode", [\
      ["npm:1.5.3", {\
        "packageLocation": "./.yarn/cache/qrcode-npm-1.5.3-08da54d76e-823642d59a.zip/node_modules/qrcode/",\
        "packageDependencies": [\
          ["qrcode", "npm:1.5.3"],\
          ["dijkstrajs", "npm:1.0.3"],\
          ["encode-utf8", "npm:1.0.3"],\
          ["pngjs", "npm:5.0.0"],\
          ["yargs", "npm:15.4.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["qs", [\
      ["npm:6.11.2", {\
        "packageLocation": "./.yarn/cache/qs-npm-6.11.2-b118bc1c6f-f2321d0796.zip/node_modules/qs/",\
        "packageDependencies": [\
          ["qs", "npm:6.11.2"],\
          ["side-channel", "npm:1.0.4"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["querystring", [\
      ["npm:0.2.0", {\
        "packageLocation": "./.yarn/cache/querystring-npm-0.2.0-421b870c92-37b91720be.zip/node_modules/querystring/",\
        "packageDependencies": [\
          ["querystring", "npm:0.2.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["querystringify", [\
      ["npm:2.2.0", {\
        "packageLocation": "./.yarn/cache/querystringify-npm-2.2.0-4e77c9f606-46ab16f252.zip/node_modules/querystringify/",\
        "packageDependencies": [\
          ["querystringify", "npm:2.2.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["queue-microtask", [\
      ["npm:1.2.3", {\
        "packageLocation": "./.yarn/cache/queue-microtask-npm-1.2.3-fcc98e4e2d-72900df061.zip/node_modules/queue-microtask/",\
        "packageDependencies": [\
          ["queue-microtask", "npm:1.2.3"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["queue-tick", [\
      ["npm:1.0.1", {\
        "packageLocation": "./.yarn/cache/queue-tick-npm-1.0.1-10bd6eaf3d-f447926c51.zip/node_modules/queue-tick/",\
        "packageDependencies": [\
          ["queue-tick", "npm:1.0.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["quick-lru", [\
      ["npm:5.1.1", {\
        "packageLocation": "./.yarn/cache/quick-lru-npm-5.1.1-e38e0edce3-a516faa255.zip/node_modules/quick-lru/",\
        "packageDependencies": [\
          ["quick-lru", "npm:5.1.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["random-seed", [\
      ["npm:0.3.0", {\
        "packageLocation": "./.yarn/cache/random-seed-npm-0.3.0-0bd617817e-7e6b395736.zip/node_modules/random-seed/",\
        "packageDependencies": [\
          ["random-seed", "npm:0.3.0"],\
          ["json-stringify-safe", "npm:5.0.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["rangestr", [\
      ["npm:0.0.1", {\
        "packageLocation": "./.yarn/cache/rangestr-npm-0.0.1-a9c9d08cb3-031a8f0f4d.zip/node_modules/rangestr/",\
        "packageDependencies": [\
          ["rangestr", "npm:0.0.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["ratelimiter", [\
      ["npm:3.4.1", {\
        "packageLocation": "./.yarn/cache/ratelimiter-npm-3.4.1-5ba5f26b13-00212edbe8.zip/node_modules/ratelimiter/",\
        "packageDependencies": [\
          ["ratelimiter", "npm:3.4.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["raw-body", [\
      ["npm:2.5.2", {\
        "packageLocation": "./.yarn/cache/raw-body-npm-2.5.2-5cb9dfebc1-863b5171e1.zip/node_modules/raw-body/",\
        "packageDependencies": [\
          ["raw-body", "npm:2.5.2"],\
          ["bytes", "npm:3.1.2"],\
          ["http-errors", "npm:2.0.0"],\
          ["iconv-lite", "npm:0.4.24"],\
          ["unpipe", "npm:1.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["rdf-canonize", [\
      ["npm:3.4.0", {\
        "packageLocation": "./.yarn/cache/rdf-canonize-npm-3.4.0-87bb945794-4b77dad3ef.zip/node_modules/rdf-canonize/",\
        "packageDependencies": [\
          ["rdf-canonize", "npm:3.4.0"],\
          ["setimmediate", "npm:1.0.5"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["re2", [\
      ["npm:1.22.1", {\
        "packageLocation": "./.yarn/unplugged/re2-npm-1.22.1-6879e9193a/node_modules/re2/",\
        "packageDependencies": [\
          ["re2", "npm:1.22.1"],\
          ["install-artifact-from-github", "npm:1.4.0"],\
          ["nan", "npm:2.22.2"],\
          ["node-gyp", "npm:11.2.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["readable-stream", [\
      ["npm:2.3.8", {\
        "packageLocation": "./.yarn/cache/readable-stream-npm-2.3.8-67a94c2cb1-8500dd3a90.zip/node_modules/readable-stream/",\
        "packageDependencies": [\
          ["readable-stream", "npm:2.3.8"],\
          ["core-util-is", "npm:1.0.3"],\
          ["inherits", "npm:2.0.4"],\
          ["isarray", "npm:1.0.0"],\
          ["process-nextick-args", "npm:2.0.1"],\
          ["safe-buffer", "npm:5.1.2"],\
          ["string_decoder", "npm:1.1.1"],\
          ["util-deprecate", "npm:1.0.2"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:3.6.2", {\
        "packageLocation": "./.yarn/cache/readable-stream-npm-3.6.2-d2a6069158-d9e3e53193.zip/node_modules/readable-stream/",\
        "packageDependencies": [\
          ["readable-stream", "npm:3.6.2"],\
          ["inherits", "npm:2.0.4"],\
          ["string_decoder", "npm:1.3.0"],\
          ["util-deprecate", "npm:1.0.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["readable-web-to-node-stream", [\
      ["npm:3.0.2", {\
        "packageLocation": "./.yarn/cache/readable-web-to-node-stream-npm-3.0.2-682f5de297-d3a5bf9d70.zip/node_modules/readable-web-to-node-stream/",\
        "packageDependencies": [\
          ["readable-web-to-node-stream", "npm:3.0.2"],\
          ["readable-stream", "npm:3.6.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["readdir-glob", [\
      ["npm:1.1.3", {\
        "packageLocation": "./.yarn/cache/readdir-glob-npm-1.1.3-ad1a82fc20-ca3a20aa1e.zip/node_modules/readdir-glob/",\
        "packageDependencies": [\
          ["readdir-glob", "npm:1.1.3"],\
          ["minimatch", "npm:5.1.6"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["reconnecting-websocket", [\
      ["npm:4.4.0", {\
        "packageLocation": "./.yarn/cache/reconnecting-websocket-npm-4.4.0-c6f262f5df-542b09b460.zip/node_modules/reconnecting-websocket/",\
        "packageDependencies": [\
          ["reconnecting-websocket", "npm:4.4.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["redis-errors", [\
      ["npm:1.2.0", {\
        "packageLocation": "./.yarn/cache/redis-errors-npm-1.2.0-a81fd9b0f1-001c11f63d.zip/node_modules/redis-errors/",\
        "packageDependencies": [\
          ["redis-errors", "npm:1.2.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["redis-info", [\
      ["npm:3.1.0", {\
        "packageLocation": "./.yarn/cache/redis-info-npm-3.1.0-74f2dc4b4d-92ed68d47e.zip/node_modules/redis-info/",\
        "packageDependencies": [\
          ["redis-info", "npm:3.1.0"],\
          ["lodash", "npm:4.17.21"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["redis-lock", [\
      ["npm:0.1.4", {\
        "packageLocation": "./.yarn/cache/redis-lock-npm-0.1.4-bb01cc5915-31a9e9cd54.zip/node_modules/redis-lock/",\
        "packageDependencies": [\
          ["redis-lock", "npm:0.1.4"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["redis-parser", [\
      ["npm:3.0.0", {\
        "packageLocation": "./.yarn/cache/redis-parser-npm-3.0.0-7ebe40abcb-b10846844b.zip/node_modules/redis-parser/",\
        "packageDependencies": [\
          ["redis-parser", "npm:3.0.0"],\
          ["redis-errors", "npm:1.2.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["redis-semaphore", [\
      ["npm:5.3.1", {\
        "packageLocation": "./.yarn/cache/redis-semaphore-npm-5.3.1-977928cd75-7fcafee7b9.zip/node_modules/redis-semaphore/",\
        "packageDependencies": [\
          ["redis-semaphore", "npm:5.3.1"]\
        ],\
        "linkType": "SOFT"\
      }],\
      ["virtual:aa59773ac87791c4813d53447077fcf8a847d6de5a301d34dc31286584b1dbb26d30d3adb5b4c41c1e8aea04371e926fda05c09c6253647c432e11d872a304ba#npm:5.3.1", {\
        "packageLocation": "./.yarn/__virtual__/redis-semaphore-virtual-afdd0cddc1/0/cache/redis-semaphore-npm-5.3.1-977928cd75-7fcafee7b9.zip/node_modules/redis-semaphore/",\
        "packageDependencies": [\
          ["redis-semaphore", "virtual:aa59773ac87791c4813d53447077fcf8a847d6de5a301d34dc31286584b1dbb26d30d3adb5b4c41c1e8aea04371e926fda05c09c6253647c432e11d872a304ba#npm:5.3.1"],\
          ["@types/ioredis", null],\
          ["debug", "virtual:c8a47bd44e78262f6ba81f94852e5b6ec2a824806d82727a6ba6fdf6dc4be2b7d8b5dea8ceb347fa00fa505716d763276ebc48239b4faa6fbc5f8f9d2aa668e2#npm:4.3.4"],\
          ["ioredis", "npm:5.4.1"]\
        ],\
        "packagePeers": [\
          "@types/ioredis",\
          "ioredis"\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["reflect-metadata", [\
      ["npm:0.1.13", {\
        "packageLocation": "./.yarn/cache/reflect-metadata-npm-0.1.13-c525998e20-732570da35.zip/node_modules/reflect-metadata/",\
        "packageDependencies": [\
          ["reflect-metadata", "npm:0.1.13"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["regenerator-runtime", [\
      ["npm:0.13.11", {\
        "packageLocation": "./.yarn/cache/regenerator-runtime-npm-0.13.11-90bf536060-d493e9e118.zip/node_modules/regenerator-runtime/",\
        "packageDependencies": [\
          ["regenerator-runtime", "npm:0.13.11"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["rename", [\
      ["npm:1.0.4", {\
        "packageLocation": "./.yarn/cache/rename-npm-1.0.4-3df037de05-7600876ee2.zip/node_modules/rename/",\
        "packageDependencies": [\
          ["rename", "npm:1.0.4"],\
          ["debug", "virtual:0b70187c8540c711e7ec6828978e1d7ecbf862adebfcbfade4bfe1470fbdf59ca56319a056ee7ea510b1dd57a2faea769d1589a1b06d26c3a84a4bd41431045b#npm:2.6.9"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["require-all", [\
      ["npm:3.0.0", {\
        "packageLocation": "./.yarn/cache/require-all-npm-3.0.0-a4509266cc-eb79715e07.zip/node_modules/require-all/",\
        "packageDependencies": [\
          ["require-all", "npm:3.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["require-directory", [\
      ["npm:2.1.1", {\
        "packageLocation": "./.yarn/cache/require-directory-npm-2.1.1-8608aee50b-a72468e258.zip/node_modules/require-directory/",\
        "packageDependencies": [\
          ["require-directory", "npm:2.1.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["require-from-string", [\
      ["npm:2.0.2", {\
        "packageLocation": "./.yarn/cache/require-from-string-npm-2.0.2-8557e0db12-839a3a8901.zip/node_modules/require-from-string/",\
        "packageDependencies": [\
          ["require-from-string", "npm:2.0.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["require-main-filename", [\
      ["npm:2.0.0", {\
        "packageLocation": "./.yarn/cache/require-main-filename-npm-2.0.0-03eef65c84-8604a570c0.zip/node_modules/require-main-filename/",\
        "packageDependencies": [\
          ["require-main-filename", "npm:2.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["requires-port", [\
      ["npm:1.0.0", {\
        "packageLocation": "./.yarn/cache/requires-port-npm-1.0.0-fd036b488a-878880ee78.zip/node_modules/requires-port/",\
        "packageDependencies": [\
          ["requires-port", "npm:1.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["resolve", [\
      ["patch:resolve@npm%3A1.22.3#optional!builtin<compat/resolve>::version=1.22.3&hash=c3c19d", {\
        "packageLocation": "./.yarn/cache/resolve-patch-ac9d7e4cbf-b775dffbad.zip/node_modules/resolve/",\
        "packageDependencies": [\
          ["resolve", "patch:resolve@npm%3A1.22.3#optional!builtin<compat/resolve>::version=1.22.3&hash=c3c19d"],\
          ["is-core-module", "npm:2.12.1"],\
          ["path-parse", "npm:1.0.7"],\
          ["supports-preserve-symlinks-flag", "npm:1.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["resolve-alpn", [\
      ["npm:1.2.1", {\
        "packageLocation": "./.yarn/cache/resolve-alpn-npm-1.2.1-af77edd28b-744e87888f.zip/node_modules/resolve-alpn/",\
        "packageDependencies": [\
          ["resolve-alpn", "npm:1.2.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["resolve-from", [\
      ["npm:4.0.0", {\
        "packageLocation": "./.yarn/cache/resolve-from-npm-4.0.0-f758ec21bf-91eb76ce83.zip/node_modules/resolve-from/",\
        "packageDependencies": [\
          ["resolve-from", "npm:4.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["resolve-path", [\
      ["npm:1.4.0", {\
        "packageLocation": "./.yarn/cache/resolve-path-npm-1.4.0-796e63d898-1a39f569ee.zip/node_modules/resolve-path/",\
        "packageDependencies": [\
          ["resolve-path", "npm:1.4.0"],\
          ["http-errors", "npm:1.6.3"],\
          ["path-is-absolute", "npm:1.0.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["resolve-url", [\
      ["npm:0.2.1", {\
        "packageLocation": "./.yarn/cache/resolve-url-npm-0.2.1-39edb8f908-c8bbf63857.zip/node_modules/resolve-url/",\
        "packageDependencies": [\
          ["resolve-url", "npm:0.2.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["responselike", [\
      ["npm:2.0.1", {\
        "packageLocation": "./.yarn/cache/responselike-npm-2.0.1-7f64b6e122-b122535466.zip/node_modules/responselike/",\
        "packageDependencies": [\
          ["responselike", "npm:2.0.1"],\
          ["lowercase-keys", "npm:2.0.0"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:3.0.0", {\
        "packageLocation": "./.yarn/cache/responselike-npm-3.0.0-9ab07af81f-e0cc9be30d.zip/node_modules/responselike/",\
        "packageDependencies": [\
          ["responselike", "npm:3.0.0"],\
          ["lowercase-keys", "npm:3.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["retry", [\
      ["npm:0.12.0", {\
        "packageLocation": "./.yarn/cache/retry-npm-0.12.0-72ac7fb4cc-1f914879f9.zip/node_modules/retry/",\
        "packageDependencies": [\
          ["retry", "npm:0.12.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["reusify", [\
      ["npm:1.0.4", {\
        "packageLocation": "./.yarn/cache/reusify-npm-1.0.4-95ac4aec11-14222c9e1d.zip/node_modules/reusify/",\
        "packageDependencies": [\
          ["reusify", "npm:1.0.4"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["rimraf", [\
      ["npm:3.0.2", {\
        "packageLocation": "./.yarn/cache/rimraf-npm-3.0.2-2cb7dac69a-063ffaccaa.zip/node_modules/rimraf/",\
        "packageDependencies": [\
          ["rimraf", "npm:3.0.2"],\
          ["glob", "npm:7.2.3"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["rndstr", [\
      ["npm:1.0.0", {\
        "packageLocation": "./.yarn/cache/rndstr-npm-1.0.0-df1a4b0cd3-faab72785f.zip/node_modules/rndstr/",\
        "packageDependencies": [\
          ["rndstr", "npm:1.0.0"],\
          ["rangestr", "npm:0.0.1"],\
          ["seedrandom", "npm:2.4.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["rss-parser", [\
      ["npm:3.13.0", {\
        "packageLocation": "./.yarn/cache/rss-parser-npm-3.13.0-eb7c12b2b0-c27fc0c3c2.zip/node_modules/rss-parser/",\
        "packageDependencies": [\
          ["rss-parser", "npm:3.13.0"],\
          ["entities", "npm:2.2.0"],\
          ["xml2js", "npm:0.5.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["run-parallel", [\
      ["npm:1.2.0", {\
        "packageLocation": "./.yarn/cache/run-parallel-npm-1.2.0-3f47ff2034-cb4f97ad25.zip/node_modules/run-parallel/",\
        "packageDependencies": [\
          ["run-parallel", "npm:1.2.0"],\
          ["queue-microtask", "npm:1.2.3"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["safe-buffer", [\
      ["npm:5.1.2", {\
        "packageLocation": "./.yarn/cache/safe-buffer-npm-5.1.2-c27fedf6c4-7eb5b48f2e.zip/node_modules/safe-buffer/",\
        "packageDependencies": [\
          ["safe-buffer", "npm:5.1.2"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:5.2.1", {\
        "packageLocation": "./.yarn/cache/safe-buffer-npm-5.2.1-3481c8aa9b-32872cd0ff.zip/node_modules/safe-buffer/",\
        "packageDependencies": [\
          ["safe-buffer", "npm:5.2.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["safer-buffer", [\
      ["npm:2.1.2", {\
        "packageLocation": "./.yarn/cache/safer-buffer-npm-2.1.2-8d5c0b705e-7eaf7a0cf3.zip/node_modules/safer-buffer/",\
        "packageDependencies": [\
          ["safer-buffer", "npm:2.1.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["sanitize-html", [\
      ["npm:2.10.0", {\
        "packageLocation": "./.yarn/cache/sanitize-html-npm-2.10.0-78eeb0dd04-16f3214e85.zip/node_modules/sanitize-html/",\
        "packageDependencies": [\
          ["sanitize-html", "npm:2.10.0"],\
          ["deepmerge", "npm:4.3.1"],\
          ["escape-string-regexp", "npm:4.0.0"],\
          ["htmlparser2", "npm:8.0.2"],\
          ["is-plain-object", "npm:5.0.0"],\
          ["parse-srcset", "npm:1.0.2"],\
          ["postcss", "npm:8.4.27"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["sax", [\
      ["npm:1.2.1", {\
        "packageLocation": "./.yarn/cache/sax-npm-1.2.1-fd2ad7b223-d64f65291c.zip/node_modules/sax/",\
        "packageDependencies": [\
          ["sax", "npm:1.2.1"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:1.2.4", {\
        "packageLocation": "./.yarn/cache/sax-npm-1.2.4-178f05f12f-09b79ff6dc.zip/node_modules/sax/",\
        "packageDependencies": [\
          ["sax", "npm:1.2.4"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["saxes", [\
      ["npm:6.0.0", {\
        "packageLocation": "./.yarn/cache/saxes-npm-6.0.0-31558949f5-97b50daf6c.zip/node_modules/saxes/",\
        "packageDependencies": [\
          ["saxes", "npm:6.0.0"],\
          ["xmlchars", "npm:2.2.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["seedrandom", [\
      ["npm:2.4.2", {\
        "packageLocation": "./.yarn/cache/seedrandom-npm-2.4.2-b435b54ae9-a0b6707cb7.zip/node_modules/seedrandom/",\
        "packageDependencies": [\
          ["seedrandom", "npm:2.4.2"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:3.0.5", {\
        "packageLocation": "./.yarn/cache/seedrandom-npm-3.0.5-6946e8f8db-acad5e516c.zip/node_modules/seedrandom/",\
        "packageDependencies": [\
          ["seedrandom", "npm:3.0.5"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["seek-bzip", [\
      ["npm:1.0.6", {\
        "packageLocation": "./.yarn/cache/seek-bzip-npm-1.0.6-cb7be69a1d-e47967b694.zip/node_modules/seek-bzip/",\
        "packageDependencies": [\
          ["seek-bzip", "npm:1.0.6"],\
          ["commander", "npm:2.20.3"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["semver", [\
      ["npm:6.3.1", {\
        "packageLocation": "./.yarn/cache/semver-npm-6.3.1-bcba31fdbe-1ef3a85bd0.zip/node_modules/semver/",\
        "packageDependencies": [\
          ["semver", "npm:6.3.1"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:7.5.4", {\
        "packageLocation": "./.yarn/cache/semver-npm-7.5.4-c4ad957fcd-985dec0d37.zip/node_modules/semver/",\
        "packageDependencies": [\
          ["semver", "npm:7.5.4"],\
          ["lru-cache", "npm:6.0.0"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:7.7.1", {\
        "packageLocation": "./.yarn/cache/semver-npm-7.7.1-4572475307-4cfa1eb91e.zip/node_modules/semver/",\
        "packageDependencies": [\
          ["semver", "npm:7.7.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["set-blocking", [\
      ["npm:2.0.0", {\
        "packageLocation": "./.yarn/cache/set-blocking-npm-2.0.0-49e2cffa24-8980ebf7ae.zip/node_modules/set-blocking/",\
        "packageDependencies": [\
          ["set-blocking", "npm:2.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["setimmediate", [\
      ["npm:1.0.5", {\
        "packageLocation": "./.yarn/cache/setimmediate-npm-1.0.5-54587459b6-76e3f5d7f4.zip/node_modules/setimmediate/",\
        "packageDependencies": [\
          ["setimmediate", "npm:1.0.5"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["setprototypeof", [\
      ["npm:1.1.0", {\
        "packageLocation": "./.yarn/cache/setprototypeof-npm-1.1.0-7d8becb375-02d2564e02.zip/node_modules/setprototypeof/",\
        "packageDependencies": [\
          ["setprototypeof", "npm:1.1.0"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:1.2.0", {\
        "packageLocation": "./.yarn/cache/setprototypeof-npm-1.2.0-0fedbdcd3a-fde1630422.zip/node_modules/setprototypeof/",\
        "packageDependencies": [\
          ["setprototypeof", "npm:1.2.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["sha.js", [\
      ["npm:2.4.11", {\
        "packageLocation": "./.yarn/cache/sha.js-npm-2.4.11-14868df4ca-d833bfa3e0.zip/node_modules/sha.js/",\
        "packageDependencies": [\
          ["sha.js", "npm:2.4.11"],\
          ["inherits", "npm:2.0.4"],\
          ["safe-buffer", "npm:5.2.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["sharp", [\
      ["npm:0.33.5", {\
        "packageLocation": "./.yarn/unplugged/sharp-npm-0.33.5-a76aeda369/node_modules/sharp/",\
        "packageDependencies": [\
          ["sharp", "npm:0.33.5"],\
          ["@img/sharp-darwin-arm64", "npm:0.33.5"],\
          ["@img/sharp-darwin-x64", "npm:0.33.5"],\
          ["@img/sharp-libvips-darwin-arm64", "npm:1.0.4"],\
          ["@img/sharp-libvips-darwin-x64", "npm:1.0.4"],\
          ["@img/sharp-libvips-linux-arm", "npm:1.0.5"],\
          ["@img/sharp-libvips-linux-arm64", "npm:1.0.4"],\
          ["@img/sharp-libvips-linux-s390x", "npm:1.0.4"],\
          ["@img/sharp-libvips-linux-x64", "npm:1.0.4"],\
          ["@img/sharp-libvips-linuxmusl-arm64", "npm:1.0.4"],\
          ["@img/sharp-libvips-linuxmusl-x64", "npm:1.0.4"],\
          ["@img/sharp-linux-arm", "npm:0.33.5"],\
          ["@img/sharp-linux-arm64", "npm:0.33.5"],\
          ["@img/sharp-linux-s390x", "npm:0.33.5"],\
          ["@img/sharp-linux-x64", "npm:0.33.5"],\
          ["@img/sharp-linuxmusl-arm64", "npm:0.33.5"],\
          ["@img/sharp-linuxmusl-x64", "npm:0.33.5"],\
          ["@img/sharp-wasm32", "npm:0.33.5"],\
          ["@img/sharp-win32-ia32", "npm:0.33.5"],\
          ["@img/sharp-win32-x64", "npm:0.33.5"],\
          ["color", "npm:4.2.3"],\
          ["detect-libc", "npm:2.0.3"],\
          ["semver", "npm:7.7.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["shebang-command", [\
      ["npm:2.0.0", {\
        "packageLocation": "./.yarn/cache/shebang-command-npm-2.0.0-eb2b01921d-6b52fe8727.zip/node_modules/shebang-command/",\
        "packageDependencies": [\
          ["shebang-command", "npm:2.0.0"],\
          ["shebang-regex", "npm:3.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["shebang-regex", [\
      ["npm:3.0.0", {\
        "packageLocation": "./.yarn/cache/shebang-regex-npm-3.0.0-899a0cd65e-1a2bcae50d.zip/node_modules/shebang-regex/",\
        "packageDependencies": [\
          ["shebang-regex", "npm:3.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["side-channel", [\
      ["npm:1.0.4", {\
        "packageLocation": "./.yarn/cache/side-channel-npm-1.0.4-e1f38b9e06-c4998d9fc5.zip/node_modules/side-channel/",\
        "packageDependencies": [\
          ["side-channel", "npm:1.0.4"],\
          ["call-bind", "npm:1.0.2"],\
          ["get-intrinsic", "npm:1.2.1"],\
          ["object-inspect", "npm:1.12.3"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["signal-exit", [\
      ["npm:3.0.7", {\
        "packageLocation": "./.yarn/cache/signal-exit-npm-3.0.7-bd270458a3-a2f098f247.zip/node_modules/signal-exit/",\
        "packageDependencies": [\
          ["signal-exit", "npm:3.0.7"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:4.0.2", {\
        "packageLocation": "./.yarn/cache/signal-exit-npm-4.0.2-e3f0e8ed25-99d49eab7f.zip/node_modules/signal-exit/",\
        "packageDependencies": [\
          ["signal-exit", "npm:4.0.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["simple-swizzle", [\
      ["npm:0.2.2", {\
        "packageLocation": "./.yarn/cache/simple-swizzle-npm-0.2.2-8dee37fad1-c6dffff17a.zip/node_modules/simple-swizzle/",\
        "packageDependencies": [\
          ["simple-swizzle", "npm:0.2.2"],\
          ["is-arrayish", "npm:0.3.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["smart-buffer", [\
      ["npm:4.2.0", {\
        "packageLocation": "./.yarn/cache/smart-buffer-npm-4.2.0-5ac3f668bb-927484aa0b.zip/node_modules/smart-buffer/",\
        "packageDependencies": [\
          ["smart-buffer", "npm:4.2.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["socks", [\
      ["npm:2.7.1", {\
        "packageLocation": "./.yarn/cache/socks-npm-2.7.1-17f2b53052-5074f7d6a1.zip/node_modules/socks/",\
        "packageDependencies": [\
          ["socks", "npm:2.7.1"],\
          ["ip", "npm:2.0.0"],\
          ["smart-buffer", "npm:4.2.0"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:2.8.5", {\
        "packageLocation": "./.yarn/cache/socks-npm-2.8.5-d96a42ad79-0109090ec2.zip/node_modules/socks/",\
        "packageDependencies": [\
          ["socks", "npm:2.8.5"],\
          ["ip-address", "npm:9.0.5"],\
          ["smart-buffer", "npm:4.2.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["socks-proxy-agent", [\
      ["npm:7.0.0", {\
        "packageLocation": "./.yarn/cache/socks-proxy-agent-npm-7.0.0-7aacf32ea0-26c75d9c62.zip/node_modules/socks-proxy-agent/",\
        "packageDependencies": [\
          ["socks-proxy-agent", "npm:7.0.0"],\
          ["agent-base", "npm:6.0.2"],\
          ["debug", "virtual:c8a47bd44e78262f6ba81f94852e5b6ec2a824806d82727a6ba6fdf6dc4be2b7d8b5dea8ceb347fa00fa505716d763276ebc48239b4faa6fbc5f8f9d2aa668e2#npm:4.3.4"],\
          ["socks", "npm:2.7.1"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:8.0.5", {\
        "packageLocation": "./.yarn/cache/socks-proxy-agent-npm-8.0.5-24d77a90dc-ee99e1daca.zip/node_modules/socks-proxy-agent/",\
        "packageDependencies": [\
          ["socks-proxy-agent", "npm:8.0.5"],\
          ["agent-base", "npm:7.1.3"],\
          ["debug", "virtual:c8a47bd44e78262f6ba81f94852e5b6ec2a824806d82727a6ba6fdf6dc4be2b7d8b5dea8ceb347fa00fa505716d763276ebc48239b4faa6fbc5f8f9d2aa668e2#npm:4.3.4"],\
          ["socks", "npm:2.8.5"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["source-map", [\
      ["npm:0.6.1", {\
        "packageLocation": "./.yarn/cache/source-map-npm-0.6.1-1a3621db16-59ef7462f1.zip/node_modules/source-map/",\
        "packageDependencies": [\
          ["source-map", "npm:0.6.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["source-map-js", [\
      ["npm:1.0.2", {\
        "packageLocation": "./.yarn/cache/source-map-js-npm-1.0.2-ee4f9f9b30-38e2d2dd18.zip/node_modules/source-map-js/",\
        "packageDependencies": [\
          ["source-map-js", "npm:1.0.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["split2", [\
      ["npm:4.2.0", {\
        "packageLocation": "./.yarn/cache/split2-npm-4.2.0-16aa3883ba-09bbefc11b.zip/node_modules/split2/",\
        "packageDependencies": [\
          ["split2", "npm:4.2.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["sprintf-js", [\
      ["npm:1.1.2", {\
        "packageLocation": "./.yarn/cache/sprintf-js-npm-1.1.2-ea16269a6d-0044322a25.zip/node_modules/sprintf-js/",\
        "packageDependencies": [\
          ["sprintf-js", "npm:1.1.2"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:1.1.3", {\
        "packageLocation": "./.yarn/cache/sprintf-js-npm-1.1.3-b99efd75b2-e7587128c4.zip/node_modules/sprintf-js/",\
        "packageDependencies": [\
          ["sprintf-js", "npm:1.1.3"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["sshpk", [\
      ["npm:1.17.0", {\
        "packageLocation": "./.yarn/cache/sshpk-npm-1.17.0-95f17f597f-668c2a279a.zip/node_modules/sshpk/",\
        "packageDependencies": [\
          ["sshpk", "npm:1.17.0"],\
          ["asn1", "npm:0.2.6"],\
          ["assert-plus", "npm:1.0.0"],\
          ["bcrypt-pbkdf", "npm:1.0.2"],\
          ["dashdash", "npm:1.14.1"],\
          ["ecc-jsbn", "npm:0.1.2"],\
          ["getpass", "npm:0.1.7"],\
          ["jsbn", "npm:0.1.1"],\
          ["safer-buffer", "npm:2.1.2"],\
          ["tweetnacl", "npm:0.14.5"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["ssri", [\
      ["npm:10.0.4", {\
        "packageLocation": "./.yarn/cache/ssri-npm-10.0.4-f583dafaf3-3f3dc4a0bb.zip/node_modules/ssri/",\
        "packageDependencies": [\
          ["ssri", "npm:10.0.4"],\
          ["minipass", "npm:5.0.0"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:12.0.0", {\
        "packageLocation": "./.yarn/cache/ssri-npm-12.0.0-97c0e53d2e-7024c1a6e3.zip/node_modules/ssri/",\
        "packageDependencies": [\
          ["ssri", "npm:12.0.0"],\
          ["minipass", "npm:7.0.4"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["standard-as-callback", [\
      ["npm:2.1.0", {\
        "packageLocation": "./.yarn/cache/standard-as-callback-npm-2.1.0-8e47620bd4-88bec83ee2.zip/node_modules/standard-as-callback/",\
        "packageDependencies": [\
          ["standard-as-callback", "npm:2.1.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["statuses", [\
      ["npm:1.5.0", {\
        "packageLocation": "./.yarn/cache/statuses-npm-1.5.0-f88f91b2e9-c469b9519d.zip/node_modules/statuses/",\
        "packageDependencies": [\
          ["statuses", "npm:1.5.0"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:2.0.1", {\
        "packageLocation": "./.yarn/cache/statuses-npm-2.0.1-81d2b97fee-18c7623fdb.zip/node_modules/statuses/",\
        "packageDependencies": [\
          ["statuses", "npm:2.0.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["stream-parser", [\
      ["npm:0.3.1", {\
        "packageLocation": "./.yarn/cache/stream-parser-npm-0.3.1-0b70187c85-1ea2bbbb4e.zip/node_modules/stream-parser/",\
        "packageDependencies": [\
          ["stream-parser", "npm:0.3.1"],\
          ["debug", "virtual:0b70187c8540c711e7ec6828978e1d7ecbf862adebfcbfade4bfe1470fbdf59ca56319a056ee7ea510b1dd57a2faea769d1589a1b06d26c3a84a4bd41431045b#npm:2.6.9"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["stream-shift", [\
      ["npm:1.0.1", {\
        "packageLocation": "./.yarn/cache/stream-shift-npm-1.0.1-9526210fa7-59b82b44b2.zip/node_modules/stream-shift/",\
        "packageDependencies": [\
          ["stream-shift", "npm:1.0.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["streamsearch", [\
      ["npm:1.1.0", {\
        "packageLocation": "./.yarn/cache/streamsearch-npm-1.1.0-fc3ad6536d-612c2b2a7d.zip/node_modules/streamsearch/",\
        "packageDependencies": [\
          ["streamsearch", "npm:1.1.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["streamx", [\
      ["npm:2.15.0", {\
        "packageLocation": "./.yarn/cache/streamx-npm-2.15.0-ea55d22e88-c4d311a4b7.zip/node_modules/streamx/",\
        "packageDependencies": [\
          ["streamx", "npm:2.15.0"],\
          ["fast-fifo", "npm:1.3.0"],\
          ["queue-tick", "npm:1.0.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["string-width", [\
      ["npm:4.2.3", {\
        "packageLocation": "./.yarn/cache/string-width-npm-4.2.3-2c27177bae-e52c10dc3f.zip/node_modules/string-width/",\
        "packageDependencies": [\
          ["string-width", "npm:4.2.3"],\
          ["emoji-regex", "npm:8.0.0"],\
          ["is-fullwidth-code-point", "npm:3.0.0"],\
          ["strip-ansi", "npm:6.0.1"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:5.1.2", {\
        "packageLocation": "./.yarn/cache/string-width-npm-5.1.2-bf60531341-7369deaa29.zip/node_modules/string-width/",\
        "packageDependencies": [\
          ["string-width", "npm:5.1.2"],\
          ["eastasianwidth", "npm:0.2.0"],\
          ["emoji-regex", "npm:9.2.2"],\
          ["strip-ansi", "npm:7.1.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["string_decoder", [\
      ["npm:1.1.1", {\
        "packageLocation": "./.yarn/cache/string_decoder-npm-1.1.1-e46a6c1353-7c41c17ed4.zip/node_modules/string_decoder/",\
        "packageDependencies": [\
          ["string_decoder", "npm:1.1.1"],\
          ["safe-buffer", "npm:5.1.2"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:1.3.0", {\
        "packageLocation": "./.yarn/cache/string_decoder-npm-1.3.0-2422117fd0-54d23f4a6a.zip/node_modules/string_decoder/",\
        "packageDependencies": [\
          ["string_decoder", "npm:1.3.0"],\
          ["safe-buffer", "npm:5.2.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["stringz", [\
      ["npm:2.1.0", {\
        "packageLocation": "./.yarn/cache/stringz-npm-2.1.0-7e1a5cafed-1745b7d508.zip/node_modules/stringz/",\
        "packageDependencies": [\
          ["stringz", "npm:2.1.0"],\
          ["char-regex", "npm:1.0.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["strip-ansi", [\
      ["npm:6.0.1", {\
        "packageLocation": "./.yarn/cache/strip-ansi-npm-6.0.1-caddc7cb40-ae3b5436d3.zip/node_modules/strip-ansi/",\
        "packageDependencies": [\
          ["strip-ansi", "npm:6.0.1"],\
          ["ansi-regex", "npm:5.0.1"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:7.1.0", {\
        "packageLocation": "./.yarn/cache/strip-ansi-npm-7.1.0-7453b80b79-475f53e9c4.zip/node_modules/strip-ansi/",\
        "packageDependencies": [\
          ["strip-ansi", "npm:7.1.0"],\
          ["ansi-regex", "npm:6.0.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["strip-dirs", [\
      ["npm:2.1.0", {\
        "packageLocation": "./.yarn/cache/strip-dirs-npm-2.1.0-f0e727d3fc-7284fc61cf.zip/node_modules/strip-dirs/",\
        "packageDependencies": [\
          ["strip-dirs", "npm:2.1.0"],\
          ["is-natural-number", "npm:4.0.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["strip-json-comments", [\
      ["npm:3.1.1", {\
        "packageLocation": "./.yarn/cache/strip-json-comments-npm-3.1.1-dcb2324823-492f73e272.zip/node_modules/strip-json-comments/",\
        "packageDependencies": [\
          ["strip-json-comments", "npm:3.1.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["strnum", [\
      ["npm:1.0.5", {\
        "packageLocation": "./.yarn/cache/strnum-npm-1.0.5-9ba11d2a0a-d3117975db.zip/node_modules/strnum/",\
        "packageDependencies": [\
          ["strnum", "npm:1.0.5"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["strtok3", [\
      ["npm:7.0.0", {\
        "packageLocation": "./.yarn/cache/strtok3-npm-7.0.0-bb1edd9ba5-4f2269679f.zip/node_modules/strtok3/",\
        "packageDependencies": [\
          ["strtok3", "npm:7.0.0"],\
          ["@tokenizer/token", "npm:0.3.0"],\
          ["peek-readable", "npm:5.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["supports-color", [\
      ["npm:5.5.0", {\
        "packageLocation": "./.yarn/cache/supports-color-npm-5.5.0-183ac537bc-5f505c6fa3.zip/node_modules/supports-color/",\
        "packageDependencies": [\
          ["supports-color", "npm:5.5.0"],\
          ["has-flag", "npm:3.0.0"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:7.2.0", {\
        "packageLocation": "./.yarn/cache/supports-color-npm-7.2.0-606bfcf7da-c8bb7afd56.zip/node_modules/supports-color/",\
        "packageDependencies": [\
          ["supports-color", "npm:7.2.0"],\
          ["has-flag", "npm:4.0.0"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:8.1.1", {\
        "packageLocation": "./.yarn/cache/supports-color-npm-8.1.1-289e937149-157b534df8.zip/node_modules/supports-color/",\
        "packageDependencies": [\
          ["supports-color", "npm:8.1.1"],\
          ["has-flag", "npm:4.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["supports-preserve-symlinks-flag", [\
      ["npm:1.0.0", {\
        "packageLocation": "./.yarn/cache/supports-preserve-symlinks-flag-npm-1.0.0-f17c4d0028-a9dc19ae22.zip/node_modules/supports-preserve-symlinks-flag/",\
        "packageDependencies": [\
          ["supports-preserve-symlinks-flag", "npm:1.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["sw", [\
      ["workspace:packages/sw", {\
        "packageLocation": "./packages/sw/",\
        "packageDependencies": [\
          ["sw", "workspace:packages/sw"]\
        ],\
        "linkType": "SOFT"\
      }]\
    ]],\
    ["symbol-tree", [\
      ["npm:3.2.4", {\
        "packageLocation": "./.yarn/cache/symbol-tree-npm-3.2.4-fe70cdb75b-c09a00aadf.zip/node_modules/symbol-tree/",\
        "packageDependencies": [\
          ["symbol-tree", "npm:3.2.4"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["syslog-pro", [\
      ["npm:1.0.0", {\
        "packageLocation": "./.yarn/cache/syslog-pro-npm-1.0.0-ba0abe8320-6253c9c93f.zip/node_modules/syslog-pro/",\
        "packageDependencies": [\
          ["syslog-pro", "npm:1.0.0"],\
          ["moment", "npm:2.29.4"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["systeminformation", [\
      ["npm:5.21.12", {\
        "packageLocation": "./.yarn/unplugged/systeminformation-npm-5.21.12-948047a9ef/node_modules/systeminformation/",\
        "packageDependencies": [\
          ["systeminformation", "npm:5.21.12"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["tar", [\
      ["npm:6.1.15", {\
        "packageLocation": "./.yarn/cache/tar-npm-6.1.15-44c3e71720-4848b92da8.zip/node_modules/tar/",\
        "packageDependencies": [\
          ["tar", "npm:6.1.15"],\
          ["chownr", "npm:2.0.0"],\
          ["fs-minipass", "npm:2.1.0"],\
          ["minipass", "npm:5.0.0"],\
          ["minizlib", "npm:2.1.2"],\
          ["mkdirp", "npm:1.0.4"],\
          ["yallist", "npm:4.0.0"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:7.4.3", {\
        "packageLocation": "./.yarn/cache/tar-npm-7.4.3-1dbbd1ffc3-12a2a4fc6d.zip/node_modules/tar/",\
        "packageDependencies": [\
          ["tar", "npm:7.4.3"],\
          ["@isaacs/fs-minipass", "npm:4.0.1"],\
          ["chownr", "npm:3.0.0"],\
          ["minipass", "npm:7.1.2"],\
          ["minizlib", "npm:3.0.2"],\
          ["mkdirp", "npm:3.0.1"],\
          ["yallist", "npm:5.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["tar-stream", [\
      ["npm:1.6.2", {\
        "packageLocation": "./.yarn/cache/tar-stream-npm-1.6.2-f4a7fc08e2-ac9b850bd4.zip/node_modules/tar-stream/",\
        "packageDependencies": [\
          ["tar-stream", "npm:1.6.2"],\
          ["bl", "npm:1.2.3"],\
          ["buffer-alloc", "npm:1.2.0"],\
          ["end-of-stream", "npm:1.4.4"],\
          ["fs-constants", "npm:1.0.0"],\
          ["readable-stream", "npm:2.3.8"],\
          ["to-buffer", "npm:1.1.1"],\
          ["xtend", "npm:4.0.2"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:2.2.0", {\
        "packageLocation": "./.yarn/cache/tar-stream-npm-2.2.0-884c79b510-1a52a51d24.zip/node_modules/tar-stream/",\
        "packageDependencies": [\
          ["tar-stream", "npm:2.2.0"],\
          ["bl", "npm:4.1.0"],\
          ["end-of-stream", "npm:1.4.4"],\
          ["fs-constants", "npm:1.0.0"],\
          ["inherits", "npm:2.0.4"],\
          ["readable-stream", "npm:3.6.2"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:3.1.6", {\
        "packageLocation": "./.yarn/cache/tar-stream-npm-3.1.6-ce3ac17e49-2c32e0d57d.zip/node_modules/tar-stream/",\
        "packageDependencies": [\
          ["tar-stream", "npm:3.1.6"],\
          ["b4a", "npm:1.6.4"],\
          ["fast-fifo", "npm:1.3.0"],\
          ["streamx", "npm:2.15.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["tdigest", [\
      ["npm:0.1.2", {\
        "packageLocation": "./.yarn/cache/tdigest-npm-0.1.2-b73cfcf726-45be99fa52.zip/node_modules/tdigest/",\
        "packageDependencies": [\
          ["tdigest", "npm:0.1.2"],\
          ["bintrees", "npm:1.0.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["tesseract.js", [\
      ["npm:3.0.3", {\
        "packageLocation": "./.yarn/unplugged/tesseract.js-npm-3.0.3-1e3a1e45ed/node_modules/tesseract.js/",\
        "packageDependencies": [\
          ["tesseract.js", "npm:3.0.3"],\
          ["babel-eslint", "virtual:1e3a1e45ed0e919595fadc2924df9fc49984d9bd66d08740bfc417c54eabc89d499a1458a951e9abe3067c7f7c07c2253eb1ed2a28ad34045e4bb5cb9fbc74dc#npm:10.1.0"],\
          ["bmp-js", "npm:0.1.0"],\
          ["file-type", "npm:12.4.2"],\
          ["idb-keyval", "npm:3.2.0"],\
          ["is-electron", "npm:2.2.2"],\
          ["is-url", "npm:1.2.4"],\
          ["node-fetch", "virtual:5547f15a2bb3d361d141532d43f94523f31e9edfe533f8367b3e26e300194e2978be03f56c09e100afcfee4c02b7fbe13c6ffcf58c613b457a86da522a2979f2#npm:2.6.12"],\
          ["opencollective-postinstall", "npm:2.0.3"],\
          ["regenerator-runtime", "npm:0.13.11"],\
          ["resolve-url", "npm:0.2.1"],\
          ["tesseract.js-core", "npm:3.0.2"],\
          ["wasm-feature-detect", "npm:1.5.1"],\
          ["zlibjs", "npm:0.3.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["tesseract.js-core", [\
      ["npm:3.0.2", {\
        "packageLocation": "./.yarn/cache/tesseract.js-core-npm-3.0.2-2dd27ab9db-085978c4d7.zip/node_modules/tesseract.js-core/",\
        "packageDependencies": [\
          ["tesseract.js-core", "npm:3.0.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["text-table", [\
      ["npm:0.2.0", {\
        "packageLocation": "./.yarn/cache/text-table-npm-0.2.0-d92a778b59-4383b5baae.zip/node_modules/text-table/",\
        "packageDependencies": [\
          ["text-table", "npm:0.2.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["thenify", [\
      ["npm:3.3.1", {\
        "packageLocation": "./.yarn/cache/thenify-npm-3.3.1-030bedb22c-486e1283a8.zip/node_modules/thenify/",\
        "packageDependencies": [\
          ["thenify", "npm:3.3.1"],\
          ["any-promise", "npm:1.3.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["thenify-all", [\
      ["npm:1.6.0", {\
        "packageLocation": "./.yarn/cache/thenify-all-npm-1.6.0-96309bbc8b-dba7cc8a23.zip/node_modules/thenify-all/",\
        "packageDependencies": [\
          ["thenify-all", "npm:1.6.0"],\
          ["thenify", "npm:3.3.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["through", [\
      ["npm:2.3.8", {\
        "packageLocation": "./.yarn/cache/through-npm-2.3.8-df5f72a16e-5da78346f7.zip/node_modules/through/",\
        "packageDependencies": [\
          ["through", "npm:2.3.8"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["through2", [\
      ["npm:2.0.5", {\
        "packageLocation": "./.yarn/cache/through2-npm-2.0.5-77d90f13cd-cd71f7dcdc.zip/node_modules/through2/",\
        "packageDependencies": [\
          ["through2", "npm:2.0.5"],\
          ["readable-stream", "npm:2.3.8"],\
          ["xtend", "npm:4.0.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["tinycolor2", [\
      ["npm:1.5.2", {\
        "packageLocation": "./.yarn/cache/tinycolor2-npm-1.5.2-0898381e92-8a0cffda1f.zip/node_modules/tinycolor2/",\
        "packageDependencies": [\
          ["tinycolor2", "npm:1.5.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["tinyglobby", [\
      ["npm:0.2.14", {\
        "packageLocation": "./.yarn/cache/tinyglobby-npm-0.2.14-d4e4bcf80e-3d306d3197.zip/node_modules/tinyglobby/",\
        "packageDependencies": [\
          ["tinyglobby", "npm:0.2.14"],\
          ["fdir", "virtual:d4e4bcf80e67f9de0540c123c7c4882e34dce6a8ba807a0a834f267f9132ee6bd264e69a49c6203aa89877ed3a5a5d633bfa002384881be452cc3a2d2fbcce0b#npm:6.4.6"],\
          ["picomatch", "npm:4.0.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["tmp", [\
      ["npm:0.2.1", {\
        "packageLocation": "./.yarn/cache/tmp-npm-0.2.1-a9c8d9c0ca-445148d72d.zip/node_modules/tmp/",\
        "packageDependencies": [\
          ["tmp", "npm:0.2.1"],\
          ["rimraf", "npm:3.0.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["to-buffer", [\
      ["npm:1.1.1", {\
        "packageLocation": "./.yarn/cache/to-buffer-npm-1.1.1-0be2cf74fe-8ade59fe04.zip/node_modules/to-buffer/",\
        "packageDependencies": [\
          ["to-buffer", "npm:1.1.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["to-fast-properties", [\
      ["npm:2.0.0", {\
        "packageLocation": "./.yarn/cache/to-fast-properties-npm-2.0.0-0dc60cc481-be2de62fe5.zip/node_modules/to-fast-properties/",\
        "packageDependencies": [\
          ["to-fast-properties", "npm:2.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["toidentifier", [\
      ["npm:1.0.1", {\
        "packageLocation": "./.yarn/cache/toidentifier-npm-1.0.1-f759712599-952c29e2a8.zip/node_modules/toidentifier/",\
        "packageDependencies": [\
          ["toidentifier", "npm:1.0.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["token-stream", [\
      ["npm:1.0.0", {\
        "packageLocation": "./.yarn/cache/token-stream-npm-1.0.0-b6bc01bff8-e8adb56f31.zip/node_modules/token-stream/",\
        "packageDependencies": [\
          ["token-stream", "npm:1.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["token-types", [\
      ["npm:5.0.1", {\
        "packageLocation": "./.yarn/cache/token-types-npm-5.0.1-a86fdb8b12-0985369bbe.zip/node_modules/token-types/",\
        "packageDependencies": [\
          ["token-types", "npm:5.0.1"],\
          ["@tokenizer/token", "npm:0.3.0"],\
          ["ieee754", "npm:1.2.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["tough-cookie", [\
      ["npm:4.1.3", {\
        "packageLocation": "./.yarn/cache/tough-cookie-npm-4.1.3-08285e2518-cf148c359b.zip/node_modules/tough-cookie/",\
        "packageDependencies": [\
          ["tough-cookie", "npm:4.1.3"],\
          ["psl", "npm:1.9.0"],\
          ["punycode", "npm:2.3.0"],\
          ["universalify", "npm:0.2.0"],\
          ["url-parse", "npm:1.5.10"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["tr46", [\
      ["npm:0.0.3", {\
        "packageLocation": "./.yarn/cache/tr46-npm-0.0.3-de53018915-8f1f5aa6cb.zip/node_modules/tr46/",\
        "packageDependencies": [\
          ["tr46", "npm:0.0.3"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:3.0.0", {\
        "packageLocation": "./.yarn/cache/tr46-npm-3.0.0-e1ae1ea7c9-b09a15886c.zip/node_modules/tr46/",\
        "packageDependencies": [\
          ["tr46", "npm:3.0.0"],\
          ["punycode", "npm:2.3.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["tslib", [\
      ["npm:2.6.1", {\
        "packageLocation": "./.yarn/cache/tslib-npm-2.6.1-de28eba753-5cf1aa7ea4.zip/node_modules/tslib/",\
        "packageDependencies": [\
          ["tslib", "npm:2.6.1"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:2.6.2", {\
        "packageLocation": "./.yarn/cache/tslib-npm-2.6.2-4fc8c068d9-bd26c22d36.zip/node_modules/tslib/",\
        "packageDependencies": [\
          ["tslib", "npm:2.6.2"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:2.7.0", {\
        "packageLocation": "./.yarn/cache/tslib-npm-2.7.0-21668f5c21-9a5b47ddac.zip/node_modules/tslib/",\
        "packageDependencies": [\
          ["tslib", "npm:2.7.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["tsscmp", [\
      ["npm:1.0.6", {\
        "packageLocation": "./.yarn/cache/tsscmp-npm-1.0.6-3223087558-850405080e.zip/node_modules/tsscmp/",\
        "packageDependencies": [\
          ["tsscmp", "npm:1.0.6"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["tweetnacl", [\
      ["npm:0.14.5", {\
        "packageLocation": "./.yarn/cache/tweetnacl-npm-0.14.5-a3f766c0d1-04ee27901c.zip/node_modules/tweetnacl/",\
        "packageDependencies": [\
          ["tweetnacl", "npm:0.14.5"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["type", [\
      ["npm:1.2.0", {\
        "packageLocation": "./.yarn/cache/type-npm-1.2.0-e67311c4b2-b4d4b27d19.zip/node_modules/type/",\
        "packageDependencies": [\
          ["type", "npm:1.2.0"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:2.7.2", {\
        "packageLocation": "./.yarn/cache/type-npm-2.7.2-626963ea46-602f1b369f.zip/node_modules/type/",\
        "packageDependencies": [\
          ["type", "npm:2.7.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["type-check", [\
      ["npm:0.4.0", {\
        "packageLocation": "./.yarn/cache/type-check-npm-0.4.0-60565800ce-1468777647.zip/node_modules/type-check/",\
        "packageDependencies": [\
          ["type-check", "npm:0.4.0"],\
          ["prelude-ls", "npm:1.2.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["type-fest", [\
      ["npm:0.20.2", {\
        "packageLocation": "./.yarn/cache/type-fest-npm-0.20.2-b36432617f-8907e16284.zip/node_modules/type-fest/",\
        "packageDependencies": [\
          ["type-fest", "npm:0.20.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["type-is", [\
      ["npm:1.6.18", {\
        "packageLocation": "./.yarn/cache/type-is-npm-1.6.18-6dee4d4961-0bd9eeae5e.zip/node_modules/type-is/",\
        "packageDependencies": [\
          ["type-is", "npm:1.6.18"],\
          ["media-typer", "npm:0.3.0"],\
          ["mime-types", "npm:2.1.35"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["typedarray", [\
      ["npm:0.0.6", {\
        "packageLocation": "./.yarn/cache/typedarray-npm-0.0.6-37638b2241-2cc1bcf7d8.zip/node_modules/typedarray/",\
        "packageDependencies": [\
          ["typedarray", "npm:0.0.6"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["typedarray-to-buffer", [\
      ["npm:3.1.5", {\
        "packageLocation": "./.yarn/cache/typedarray-to-buffer-npm-3.1.5-aadc11995e-7c850c3433.zip/node_modules/typedarray-to-buffer/",\
        "packageDependencies": [\
          ["typedarray-to-buffer", "npm:3.1.5"],\
          ["is-typedarray", "npm:1.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["typeorm", [\
      ["npm:0.3.17", {\
        "packageLocation": "./.yarn/cache/typeorm-npm-0.3.17-f8c2578e7f-3a7fe2a5e9.zip/node_modules/typeorm/",\
        "packageDependencies": [\
          ["typeorm", "npm:0.3.17"]\
        ],\
        "linkType": "SOFT"\
      }],\
      ["virtual:aa59773ac87791c4813d53447077fcf8a847d6de5a301d34dc31286584b1dbb26d30d3adb5b4c41c1e8aea04371e926fda05c09c6253647c432e11d872a304ba#npm:0.3.17", {\
        "packageLocation": "./.yarn/__virtual__/typeorm-virtual-f799884fa5/0/cache/typeorm-npm-0.3.17-f8c2578e7f-3a7fe2a5e9.zip/node_modules/typeorm/",\
        "packageDependencies": [\
          ["typeorm", "virtual:aa59773ac87791c4813d53447077fcf8a847d6de5a301d34dc31286584b1dbb26d30d3adb5b4c41c1e8aea04371e926fda05c09c6253647c432e11d872a304ba#npm:0.3.17"],\
          ["@google-cloud/spanner", null],\
          ["@sap/hana-client", null],\
          ["@sqltools/formatter", "npm:1.2.5"],\
          ["@types/better-sqlite3", null],\
          ["@types/google-cloud__spanner", null],\
          ["@types/hdb-pool", null],\
          ["@types/ioredis", null],\
          ["@types/mongodb", null],\
          ["@types/mssql", null],\
          ["@types/mysql2", null],\
          ["@types/oracledb", null],\
          ["@types/pg", null],\
          ["@types/pg-native", null],\
          ["@types/pg-query-stream", null],\
          ["@types/redis", null],\
          ["@types/sap__hana-client", null],\
          ["@types/sql.js", null],\
          ["@types/sqlite3", null],\
          ["@types/ts-node", null],\
          ["@types/typeorm-aurora-data-api-driver", null],\
          ["app-root-path", "npm:3.1.0"],\
          ["better-sqlite3", null],\
          ["buffer", "npm:6.0.3"],\
          ["chalk", "npm:4.1.2"],\
          ["cli-highlight", "npm:2.1.11"],\
          ["date-fns", "npm:2.30.0"],\
          ["debug", "virtual:c8a47bd44e78262f6ba81f94852e5b6ec2a824806d82727a6ba6fdf6dc4be2b7d8b5dea8ceb347fa00fa505716d763276ebc48239b4faa6fbc5f8f9d2aa668e2#npm:4.3.4"],\
          ["dotenv", "npm:16.3.1"],\
          ["glob", "npm:8.1.0"],\
          ["hdb-pool", null],\
          ["ioredis", "npm:5.4.1"],\
          ["mkdirp", "npm:2.1.6"],\
          ["mongodb", null],\
          ["mssql", null],\
          ["mysql2", null],\
          ["oracledb", null],\
          ["pg", "virtual:aa59773ac87791c4813d53447077fcf8a847d6de5a301d34dc31286584b1dbb26d30d3adb5b4c41c1e8aea04371e926fda05c09c6253647c432e11d872a304ba#npm:8.11.1"],\
          ["pg-native", null],\
          ["pg-query-stream", null],\
          ["redis", null],\
          ["reflect-metadata", "npm:0.1.13"],\
          ["sha.js", "npm:2.4.11"],\
          ["sql.js", null],\
          ["sqlite3", null],\
          ["ts-node", null],\
          ["tslib", "npm:2.6.1"],\
          ["typeorm-aurora-data-api-driver", null],\
          ["uuid", "npm:9.0.0"],\
          ["yargs", "npm:17.7.2"]\
        ],\
        "packagePeers": [\
          "@google-cloud/spanner",\
          "@sap/hana-client",\
          "@types/better-sqlite3",\
          "@types/google-cloud__spanner",\
          "@types/hdb-pool",\
          "@types/ioredis",\
          "@types/mongodb",\
          "@types/mssql",\
          "@types/mysql2",\
          "@types/oracledb",\
          "@types/pg-native",\
          "@types/pg-query-stream",\
          "@types/pg",\
          "@types/redis",\
          "@types/sap__hana-client",\
          "@types/sql.js",\
          "@types/sqlite3",\
          "@types/ts-node",\
          "@types/typeorm-aurora-data-api-driver",\
          "better-sqlite3",\
          "hdb-pool",\
          "ioredis",\
          "mongodb",\
          "mssql",\
          "mysql2",\
          "oracledb",\
          "pg-native",\
          "pg-query-stream",\
          "pg",\
          "redis",\
          "sql.js",\
          "sqlite3",\
          "ts-node",\
          "typeorm-aurora-data-api-driver"\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["unbzip2-stream", [\
      ["npm:1.4.3", {\
        "packageLocation": "./.yarn/cache/unbzip2-stream-npm-1.4.3-c5582d6a9f-4ffc0e14f4.zip/node_modules/unbzip2-stream/",\
        "packageDependencies": [\
          ["unbzip2-stream", "npm:1.4.3"],\
          ["buffer", "npm:5.7.1"],\
          ["through", "npm:2.3.8"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["undici", [\
      ["npm:5.22.1", {\
        "packageLocation": "./.yarn/cache/undici-npm-5.22.1-ff9b0b961e-4e4ae06137.zip/node_modules/undici/",\
        "packageDependencies": [\
          ["undici", "npm:5.22.1"],\
          ["busboy", "npm:1.6.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["unique-filename", [\
      ["npm:3.0.0", {\
        "packageLocation": "./.yarn/cache/unique-filename-npm-3.0.0-77d68e0a45-8e2f59b356.zip/node_modules/unique-filename/",\
        "packageDependencies": [\
          ["unique-filename", "npm:3.0.0"],\
          ["unique-slug", "npm:4.0.0"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:4.0.0", {\
        "packageLocation": "./.yarn/cache/unique-filename-npm-4.0.0-bfc100c4e3-6a62094fca.zip/node_modules/unique-filename/",\
        "packageDependencies": [\
          ["unique-filename", "npm:4.0.0"],\
          ["unique-slug", "npm:5.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["unique-slug", [\
      ["npm:4.0.0", {\
        "packageLocation": "./.yarn/cache/unique-slug-npm-4.0.0-e6b08f28aa-40912a8963.zip/node_modules/unique-slug/",\
        "packageDependencies": [\
          ["unique-slug", "npm:4.0.0"],\
          ["imurmurhash", "npm:0.1.4"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:5.0.0", {\
        "packageLocation": "./.yarn/cache/unique-slug-npm-5.0.0-11508c0469-beafdf3d6f.zip/node_modules/unique-slug/",\
        "packageDependencies": [\
          ["unique-slug", "npm:5.0.0"],\
          ["imurmurhash", "npm:0.1.4"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["universalify", [\
      ["npm:0.1.2", {\
        "packageLocation": "./.yarn/cache/universalify-npm-0.1.2-9b22d31d2d-40cdc60f6e.zip/node_modules/universalify/",\
        "packageDependencies": [\
          ["universalify", "npm:0.1.2"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:0.2.0", {\
        "packageLocation": "./.yarn/cache/universalify-npm-0.2.0-9984e61c10-e86134cb12.zip/node_modules/universalify/",\
        "packageDependencies": [\
          ["universalify", "npm:0.2.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["unpipe", [\
      ["npm:1.0.0", {\
        "packageLocation": "./.yarn/cache/unpipe-npm-1.0.0-2ed2a3c2bf-4fa18d8d8d.zip/node_modules/unpipe/",\
        "packageDependencies": [\
          ["unpipe", "npm:1.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["update-browserslist-db", [\
      ["npm:1.0.11", {\
        "packageLocation": "./.yarn/cache/update-browserslist-db-npm-1.0.11-2c8e64258f-cc1c7a38d1.zip/node_modules/update-browserslist-db/",\
        "packageDependencies": [\
          ["update-browserslist-db", "npm:1.0.11"]\
        ],\
        "linkType": "SOFT"\
      }],\
      ["virtual:f6128308c12e2b37fe427262226a88e213eb66128b3445db14a7af8a6dafb815a9c4562e232b574e216fb796ee19313d71844b195e41ad82170480289a6b575c#npm:1.0.11", {\
        "packageLocation": "./.yarn/__virtual__/update-browserslist-db-virtual-3718aa891c/0/cache/update-browserslist-db-npm-1.0.11-2c8e64258f-cc1c7a38d1.zip/node_modules/update-browserslist-db/",\
        "packageDependencies": [\
          ["update-browserslist-db", "virtual:f6128308c12e2b37fe427262226a88e213eb66128b3445db14a7af8a6dafb815a9c4562e232b574e216fb796ee19313d71844b195e41ad82170480289a6b575c#npm:1.0.11"],\
          ["@types/browserslist", null],\
          ["browserslist", "npm:4.21.9"],\
          ["escalade", "npm:3.1.1"],\
          ["picocolors", "npm:1.0.0"]\
        ],\
        "packagePeers": [\
          "@types/browserslist",\
          "browserslist"\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["uri-js", [\
      ["npm:4.4.1", {\
        "packageLocation": "./.yarn/cache/uri-js-npm-4.4.1-66d11cbcaf-b271ca7e3d.zip/node_modules/uri-js/",\
        "packageDependencies": [\
          ["uri-js", "npm:4.4.1"],\
          ["punycode", "npm:2.3.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["url", [\
      ["npm:0.10.3", {\
        "packageLocation": "./.yarn/cache/url-npm-0.10.3-37c0b27c3c-8c04e30d65.zip/node_modules/url/",\
        "packageDependencies": [\
          ["url", "npm:0.10.3"],\
          ["punycode", "npm:1.3.2"],\
          ["querystring", "npm:0.2.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["url-parse", [\
      ["npm:1.5.10", {\
        "packageLocation": "./.yarn/cache/url-parse-npm-1.5.10-64fa2bcd6d-c9e96bc8c5.zip/node_modules/url-parse/",\
        "packageDependencies": [\
          ["url-parse", "npm:1.5.10"],\
          ["querystringify", "npm:2.2.0"],\
          ["requires-port", "npm:1.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["urlsafe-base64", [\
      ["npm:1.0.0", {\
        "packageLocation": "./.yarn/cache/urlsafe-base64-npm-1.0.0-b7c5cc65ae-41d28a3370.zip/node_modules/urlsafe-base64/",\
        "packageDependencies": [\
          ["urlsafe-base64", "npm:1.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["utf-8-validate", [\
      ["npm:5.0.10", {\
        "packageLocation": "./.yarn/unplugged/utf-8-validate-npm-5.0.10-93e9b6f750/node_modules/utf-8-validate/",\
        "packageDependencies": [\
          ["utf-8-validate", "npm:5.0.10"],\
          ["node-gyp", "npm:9.4.0"],\
          ["node-gyp-build", "npm:4.6.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["util", [\
      ["npm:0.12.5", {\
        "packageLocation": "./.yarn/cache/util-npm-0.12.5-3668276f26-61a10de775.zip/node_modules/util/",\
        "packageDependencies": [\
          ["util", "npm:0.12.5"],\
          ["inherits", "npm:2.0.4"],\
          ["is-arguments", "npm:1.1.1"],\
          ["is-generator-function", "npm:1.0.10"],\
          ["is-typed-array", "npm:1.1.12"],\
          ["which-typed-array", "npm:1.1.11"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["util-deprecate", [\
      ["npm:1.0.2", {\
        "packageLocation": "./.yarn/cache/util-deprecate-npm-1.0.2-e3fe1a219c-474acf1146.zip/node_modules/util-deprecate/",\
        "packageDependencies": [\
          ["util-deprecate", "npm:1.0.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["uuid", [\
      ["npm:8.0.0", {\
        "packageLocation": "./.yarn/cache/uuid-npm-8.0.0-591e3a2e23-5086c43bbe.zip/node_modules/uuid/",\
        "packageDependencies": [\
          ["uuid", "npm:8.0.0"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:9.0.0", {\
        "packageLocation": "./.yarn/cache/uuid-npm-9.0.0-46c41e3e43-23857699a6.zip/node_modules/uuid/",\
        "packageDependencies": [\
          ["uuid", "npm:9.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["vary", [\
      ["npm:1.1.2", {\
        "packageLocation": "./.yarn/cache/vary-npm-1.1.2-b49f70ae63-31389debef.zip/node_modules/vary/",\
        "packageDependencies": [\
          ["vary", "npm:1.1.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["verror", [\
      ["npm:1.10.0", {\
        "packageLocation": "./.yarn/cache/verror-npm-1.10.0-c3f839c579-da548149dd.zip/node_modules/verror/",\
        "packageDependencies": [\
          ["verror", "npm:1.10.0"],\
          ["assert-plus", "npm:1.0.0"],\
          ["core-util-is", "npm:1.0.2"],\
          ["extsprintf", "npm:1.4.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["void-elements", [\
      ["npm:3.1.0", {\
        "packageLocation": "./.yarn/cache/void-elements-npm-3.1.0-4f43780839-0390f81810.zip/node_modules/void-elements/",\
        "packageDependencies": [\
          ["void-elements", "npm:3.1.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["w3c-xmlserializer", [\
      ["npm:4.0.0", {\
        "packageLocation": "./.yarn/cache/w3c-xmlserializer-npm-4.0.0-f09d0ec3fc-9a00c412b5.zip/node_modules/w3c-xmlserializer/",\
        "packageDependencies": [\
          ["w3c-xmlserializer", "npm:4.0.0"],\
          ["xml-name-validator", "npm:4.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["wasm-feature-detect", [\
      ["npm:1.5.1", {\
        "packageLocation": "./.yarn/cache/wasm-feature-detect-npm-1.5.1-1cc8734127-e5a63a0a4a.zip/node_modules/wasm-feature-detect/",\
        "packageDependencies": [\
          ["wasm-feature-detect", "npm:1.5.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["web-push", [\
      ["npm:3.6.3", {\
        "packageLocation": "./.yarn/cache/web-push-npm-3.6.3-570abed14f-8b2fda652c.zip/node_modules/web-push/",\
        "packageDependencies": [\
          ["web-push", "npm:3.6.3"],\
          ["asn1.js", "npm:5.4.1"],\
          ["http_ece", "npm:1.1.0"],\
          ["https-proxy-agent", "npm:7.0.1"],\
          ["jws", "npm:4.0.0"],\
          ["minimist", "npm:1.2.8"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["web-streams-polyfill", [\
      ["npm:3.2.1", {\
        "packageLocation": "./.yarn/cache/web-streams-polyfill-npm-3.2.1-835bd3857e-08fcf97b78.zip/node_modules/web-streams-polyfill/",\
        "packageDependencies": [\
          ["web-streams-polyfill", "npm:3.2.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["webidl-conversions", [\
      ["npm:3.0.1", {\
        "packageLocation": "./.yarn/cache/webidl-conversions-npm-3.0.1-60310f6a2b-b65b9f8d68.zip/node_modules/webidl-conversions/",\
        "packageDependencies": [\
          ["webidl-conversions", "npm:3.0.1"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:7.0.0", {\
        "packageLocation": "./.yarn/cache/webidl-conversions-npm-7.0.0-e8c8e30c68-4c4f65472c.zip/node_modules/webidl-conversions/",\
        "packageDependencies": [\
          ["webidl-conversions", "npm:7.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["websocket", [\
      ["npm:1.0.34", {\
        "packageLocation": "./.yarn/cache/websocket-npm-1.0.34-3aaa6c5dc0-b72e3dcc3f.zip/node_modules/websocket/",\
        "packageDependencies": [\
          ["websocket", "npm:1.0.34"],\
          ["bufferutil", "npm:4.0.7"],\
          ["debug", "virtual:0b70187c8540c711e7ec6828978e1d7ecbf862adebfcbfade4bfe1470fbdf59ca56319a056ee7ea510b1dd57a2faea769d1589a1b06d26c3a84a4bd41431045b#npm:2.6.9"],\
          ["es5-ext", "npm:0.10.62"],\
          ["typedarray-to-buffer", "npm:3.1.5"],\
          ["utf-8-validate", "npm:5.0.10"],\
          ["yaeti", "npm:0.0.6"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["whatwg-encoding", [\
      ["npm:2.0.0", {\
        "packageLocation": "./.yarn/cache/whatwg-encoding-npm-2.0.0-d7451f51b4-162d712d88.zip/node_modules/whatwg-encoding/",\
        "packageDependencies": [\
          ["whatwg-encoding", "npm:2.0.0"],\
          ["iconv-lite", "npm:0.6.3"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["whatwg-mimetype", [\
      ["npm:3.0.0", {\
        "packageLocation": "./.yarn/cache/whatwg-mimetype-npm-3.0.0-5b617710c1-96f9f628c6.zip/node_modules/whatwg-mimetype/",\
        "packageDependencies": [\
          ["whatwg-mimetype", "npm:3.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["whatwg-url", [\
      ["npm:11.0.0", {\
        "packageLocation": "./.yarn/cache/whatwg-url-npm-11.0.0-073529d93a-dfcd51c6f4.zip/node_modules/whatwg-url/",\
        "packageDependencies": [\
          ["whatwg-url", "npm:11.0.0"],\
          ["tr46", "npm:3.0.0"],\
          ["webidl-conversions", "npm:7.0.0"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:5.0.0", {\
        "packageLocation": "./.yarn/cache/whatwg-url-npm-5.0.0-374fb45e60-f95adbc1e8.zip/node_modules/whatwg-url/",\
        "packageDependencies": [\
          ["whatwg-url", "npm:5.0.0"],\
          ["tr46", "npm:0.0.3"],\
          ["webidl-conversions", "npm:3.0.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["which", [\
      ["npm:1.3.1", {\
        "packageLocation": "./.yarn/cache/which-npm-1.3.1-f0ebb8bdd8-549dcf1752.zip/node_modules/which/",\
        "packageDependencies": [\
          ["which", "npm:1.3.1"],\
          ["isexe", "npm:2.0.0"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:2.0.2", {\
        "packageLocation": "./.yarn/cache/which-npm-2.0.2-320ddf72f7-4782f8a1d6.zip/node_modules/which/",\
        "packageDependencies": [\
          ["which", "npm:2.0.2"],\
          ["isexe", "npm:2.0.0"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:5.0.0", {\
        "packageLocation": "./.yarn/cache/which-npm-5.0.0-15aa39eb60-6ec99e89ba.zip/node_modules/which/",\
        "packageDependencies": [\
          ["which", "npm:5.0.0"],\
          ["isexe", "npm:3.1.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["which-module", [\
      ["npm:2.0.1", {\
        "packageLocation": "./.yarn/cache/which-module-npm-2.0.1-90f889f6f6-1967b7ce17.zip/node_modules/which-module/",\
        "packageDependencies": [\
          ["which-module", "npm:2.0.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["which-typed-array", [\
      ["npm:1.1.11", {\
        "packageLocation": "./.yarn/cache/which-typed-array-npm-1.1.11-f37f0cefe2-bc9e8690e7.zip/node_modules/which-typed-array/",\
        "packageDependencies": [\
          ["which-typed-array", "npm:1.1.11"],\
          ["available-typed-arrays", "npm:1.0.5"],\
          ["call-bind", "npm:1.0.2"],\
          ["for-each", "npm:0.3.3"],\
          ["gopd", "npm:1.0.1"],\
          ["has-tostringtag", "npm:1.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["wide-align", [\
      ["npm:1.1.5", {\
        "packageLocation": "./.yarn/cache/wide-align-npm-1.1.5-889d77e592-d5f8027b9a.zip/node_modules/wide-align/",\
        "packageDependencies": [\
          ["wide-align", "npm:1.1.5"],\
          ["string-width", "npm:4.2.3"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["with", [\
      ["npm:7.0.2", {\
        "packageLocation": "./.yarn/cache/with-npm-7.0.2-135a242adb-06ad978f9a.zip/node_modules/with/",\
        "packageDependencies": [\
          ["with", "npm:7.0.2"],\
          ["@babel/parser", "npm:7.22.7"],\
          ["@babel/types", "npm:7.22.5"],\
          ["assert-never", "npm:1.2.1"],\
          ["babel-walk", "npm:3.0.0-canary-5"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["wrap-ansi", [\
      ["npm:6.2.0", {\
        "packageLocation": "./.yarn/cache/wrap-ansi-npm-6.2.0-439a7246d8-0d64f2d438.zip/node_modules/wrap-ansi/",\
        "packageDependencies": [\
          ["wrap-ansi", "npm:6.2.0"],\
          ["ansi-styles", "npm:4.3.0"],\
          ["string-width", "npm:4.2.3"],\
          ["strip-ansi", "npm:6.0.1"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:7.0.0", {\
        "packageLocation": "./.yarn/cache/wrap-ansi-npm-7.0.0-ad6e1a0554-cebdaeca3a.zip/node_modules/wrap-ansi/",\
        "packageDependencies": [\
          ["wrap-ansi", "npm:7.0.0"],\
          ["ansi-styles", "npm:4.3.0"],\
          ["string-width", "npm:4.2.3"],\
          ["strip-ansi", "npm:6.0.1"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:8.1.0", {\
        "packageLocation": "./.yarn/cache/wrap-ansi-npm-8.1.0-26a4e6ae28-7b1e4b35e9.zip/node_modules/wrap-ansi/",\
        "packageDependencies": [\
          ["wrap-ansi", "npm:8.1.0"],\
          ["ansi-styles", "npm:6.2.1"],\
          ["string-width", "npm:5.1.2"],\
          ["strip-ansi", "npm:7.1.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["wrappy", [\
      ["npm:1.0.2", {\
        "packageLocation": "./.yarn/cache/wrappy-npm-1.0.2-916de4d4b3-159da4805f.zip/node_modules/wrappy/",\
        "packageDependencies": [\
          ["wrappy", "npm:1.0.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["ws", [\
      ["npm:8.13.0", {\
        "packageLocation": "./.yarn/cache/ws-npm-8.13.0-26ffa3016a-1769532b6f.zip/node_modules/ws/",\
        "packageDependencies": [\
          ["ws", "npm:8.13.0"]\
        ],\
        "linkType": "SOFT"\
      }],\
      ["virtual:86986a050ebfa0645214908f5c0b3534e5c08ae20fa9ea9ec50f256f9d5ebc5322cc052fbca4aa13b5fd5ce7ec86291a194d448eac36bce4374c3ca49c53eb46#npm:8.13.0", {\
        "packageLocation": "./.yarn/__virtual__/ws-virtual-4404a00873/0/cache/ws-npm-8.13.0-26ffa3016a-1769532b6f.zip/node_modules/ws/",\
        "packageDependencies": [\
          ["ws", "virtual:86986a050ebfa0645214908f5c0b3534e5c08ae20fa9ea9ec50f256f9d5ebc5322cc052fbca4aa13b5fd5ce7ec86291a194d448eac36bce4374c3ca49c53eb46#npm:8.13.0"],\
          ["@types/bufferutil", null],\
          ["@types/utf-8-validate", null],\
          ["bufferutil", "npm:4.0.7"],\
          ["utf-8-validate", null]\
        ],\
        "packagePeers": [\
          "@types/bufferutil",\
          "@types/utf-8-validate",\
          "utf-8-validate"\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["xev", [\
      ["npm:3.0.2", {\
        "packageLocation": "./.yarn/cache/xev-npm-3.0.2-f116178e64-57655a5430.zip/node_modules/xev/",\
        "packageDependencies": [\
          ["xev", "npm:3.0.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["xml-js", [\
      ["npm:1.6.11", {\
        "packageLocation": "./.yarn/cache/xml-js-npm-1.6.11-56742b7fb0-55ce342a47.zip/node_modules/xml-js/",\
        "packageDependencies": [\
          ["xml-js", "npm:1.6.11"],\
          ["sax", "npm:1.2.4"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["xml-name-validator", [\
      ["npm:4.0.0", {\
        "packageLocation": "./.yarn/cache/xml-name-validator-npm-4.0.0-0857c21729-f9582a3f28.zip/node_modules/xml-name-validator/",\
        "packageDependencies": [\
          ["xml-name-validator", "npm:4.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["xml2js", [\
      ["npm:0.5.0", {\
        "packageLocation": "./.yarn/cache/xml2js-npm-0.5.0-06e57a2771-27c4d75921.zip/node_modules/xml2js/",\
        "packageDependencies": [\
          ["xml2js", "npm:0.5.0"],\
          ["sax", "npm:1.2.4"],\
          ["xmlbuilder", "npm:11.0.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["xmlbuilder", [\
      ["npm:11.0.1", {\
        "packageLocation": "./.yarn/cache/xmlbuilder-npm-11.0.1-b8b04dc929-c8c3d20878.zip/node_modules/xmlbuilder/",\
        "packageDependencies": [\
          ["xmlbuilder", "npm:11.0.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["xmlchars", [\
      ["npm:2.2.0", {\
        "packageLocation": "./.yarn/cache/xmlchars-npm-2.2.0-8b78f0f5e4-4ad5924974.zip/node_modules/xmlchars/",\
        "packageDependencies": [\
          ["xmlchars", "npm:2.2.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["xtend", [\
      ["npm:4.0.2", {\
        "packageLocation": "./.yarn/cache/xtend-npm-4.0.2-7f2375736e-ac5dfa738b.zip/node_modules/xtend/",\
        "packageDependencies": [\
          ["xtend", "npm:4.0.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["y18n", [\
      ["npm:4.0.3", {\
        "packageLocation": "./.yarn/cache/y18n-npm-4.0.3-ced95acdbc-392870b2a1.zip/node_modules/y18n/",\
        "packageDependencies": [\
          ["y18n", "npm:4.0.3"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:5.0.8", {\
        "packageLocation": "./.yarn/cache/y18n-npm-5.0.8-5f3a0a7e62-5f1b5f95e3.zip/node_modules/y18n/",\
        "packageDependencies": [\
          ["y18n", "npm:5.0.8"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["yaeti", [\
      ["npm:0.0.6", {\
        "packageLocation": "./.yarn/cache/yaeti-npm-0.0.6-cffd01e35a-6db12c152f.zip/node_modules/yaeti/",\
        "packageDependencies": [\
          ["yaeti", "npm:0.0.6"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["yallist", [\
      ["npm:3.1.1", {\
        "packageLocation": "./.yarn/cache/yallist-npm-3.1.1-a568a556b4-9af0a4329c.zip/node_modules/yallist/",\
        "packageDependencies": [\
          ["yallist", "npm:3.1.1"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:4.0.0", {\
        "packageLocation": "./.yarn/cache/yallist-npm-4.0.0-b493d9e907-4cb02b42b8.zip/node_modules/yallist/",\
        "packageDependencies": [\
          ["yallist", "npm:4.0.0"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:5.0.0", {\
        "packageLocation": "./.yarn/cache/yallist-npm-5.0.0-8732dd9f1c-1884d272d4.zip/node_modules/yallist/",\
        "packageDependencies": [\
          ["yallist", "npm:5.0.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["yargs", [\
      ["npm:15.4.1", {\
        "packageLocation": "./.yarn/cache/yargs-npm-15.4.1-ca1c444de1-bbcc822229.zip/node_modules/yargs/",\
        "packageDependencies": [\
          ["yargs", "npm:15.4.1"],\
          ["cliui", "npm:6.0.0"],\
          ["decamelize", "npm:1.2.0"],\
          ["find-up", "npm:4.1.0"],\
          ["get-caller-file", "npm:2.0.5"],\
          ["require-directory", "npm:2.1.1"],\
          ["require-main-filename", "npm:2.0.0"],\
          ["set-blocking", "npm:2.0.0"],\
          ["string-width", "npm:4.2.3"],\
          ["which-module", "npm:2.0.1"],\
          ["y18n", "npm:4.0.3"],\
          ["yargs-parser", "npm:18.1.3"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:16.2.0", {\
        "packageLocation": "./.yarn/cache/yargs-npm-16.2.0-547873d425-807fa21211.zip/node_modules/yargs/",\
        "packageDependencies": [\
          ["yargs", "npm:16.2.0"],\
          ["cliui", "npm:7.0.4"],\
          ["escalade", "npm:3.1.1"],\
          ["get-caller-file", "npm:2.0.5"],\
          ["require-directory", "npm:2.1.1"],\
          ["string-width", "npm:4.2.3"],\
          ["y18n", "npm:5.0.8"],\
          ["yargs-parser", "npm:20.2.9"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:17.7.2", {\
        "packageLocation": "./.yarn/cache/yargs-npm-17.7.2-80b62638e1-abb3e37678.zip/node_modules/yargs/",\
        "packageDependencies": [\
          ["yargs", "npm:17.7.2"],\
          ["cliui", "npm:8.0.1"],\
          ["escalade", "npm:3.1.1"],\
          ["get-caller-file", "npm:2.0.5"],\
          ["require-directory", "npm:2.1.1"],\
          ["string-width", "npm:4.2.3"],\
          ["y18n", "npm:5.0.8"],\
          ["yargs-parser", "npm:21.1.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["yargs-parser", [\
      ["npm:18.1.3", {\
        "packageLocation": "./.yarn/cache/yargs-parser-npm-18.1.3-0ba9c4f088-235bcbad5b.zip/node_modules/yargs-parser/",\
        "packageDependencies": [\
          ["yargs-parser", "npm:18.1.3"],\
          ["camelcase", "npm:5.3.1"],\
          ["decamelize", "npm:1.2.0"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:20.2.9", {\
        "packageLocation": "./.yarn/cache/yargs-parser-npm-20.2.9-a1d19e598d-0188f430a0.zip/node_modules/yargs-parser/",\
        "packageDependencies": [\
          ["yargs-parser", "npm:20.2.9"]\
        ],\
        "linkType": "HARD"\
      }],\
      ["npm:21.1.1", {\
        "packageLocation": "./.yarn/cache/yargs-parser-npm-21.1.1-8fdc003314-9dc2c217ea.zip/node_modules/yargs-parser/",\
        "packageDependencies": [\
          ["yargs-parser", "npm:21.1.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["yauzl", [\
      ["npm:2.10.0", {\
        "packageLocation": "./.yarn/cache/yauzl-npm-2.10.0-72e70ea021-1e4c311050.zip/node_modules/yauzl/",\
        "packageDependencies": [\
          ["yauzl", "npm:2.10.0"],\
          ["buffer-crc32", "npm:0.2.13"],\
          ["fd-slicer", "npm:1.1.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["ylru", [\
      ["npm:1.3.2", {\
        "packageLocation": "./.yarn/cache/ylru-npm-1.3.2-81969d097f-56ea73b6fd.zip/node_modules/ylru/",\
        "packageDependencies": [\
          ["ylru", "npm:1.3.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["yocto-queue", [\
      ["npm:0.1.0", {\
        "packageLocation": "./.yarn/cache/yocto-queue-npm-0.1.0-c6c9a7db29-f77b3d8d00.zip/node_modules/yocto-queue/",\
        "packageDependencies": [\
          ["yocto-queue", "npm:0.1.0"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["zip-stream", [\
      ["npm:4.1.0", {\
        "packageLocation": "./.yarn/cache/zip-stream-npm-4.1.0-c77601aed4-4a73da8567.zip/node_modules/zip-stream/",\
        "packageDependencies": [\
          ["zip-stream", "npm:4.1.0"],\
          ["archiver-utils", "npm:2.1.0"],\
          ["compress-commons", "npm:4.1.1"],\
          ["readable-stream", "npm:3.6.2"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["zlibjs", [\
      ["npm:0.3.1", {\
        "packageLocation": "./.yarn/cache/zlibjs-npm-0.3.1-abe8aa675c-f7cbf1d224.zip/node_modules/zlibjs/",\
        "packageDependencies": [\
          ["zlibjs", "npm:0.3.1"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]],\
    ["zod", [\
      ["npm:3.21.4", {\
        "packageLocation": "./.yarn/cache/zod-npm-3.21.4-9f570b215c-03c79fa461.zip/node_modules/zod/",\
        "packageDependencies": [\
          ["zod", "npm:3.21.4"]\
        ],\
        "linkType": "HARD"\
      }]\
    ]]\
  ]\
}';

function $$SETUP_STATE(hydrateRuntimeState, basePath) {
  return hydrateRuntimeState(JSON.parse(RAW_RUNTIME_STATE), {basePath: basePath || __dirname});
}

const fs = require('fs');
const path = require('path');
const crypto = require('crypto');
const os = require('os');
const events = require('events');
const nodeUtils = require('util');
const stream = require('stream');
const zlib = require('zlib');
const require$$0 = require('module');
const StringDecoder = require('string_decoder');
const url = require('url');
const buffer = require('buffer');
const readline = require('readline');
const assert = require('assert');

const _interopDefaultLegacy = e => e && typeof e === 'object' && 'default' in e ? e : { default: e };

function _interopNamespace(e) {
  if (e && e.__esModule) return e;
  const n = Object.create(null);
  if (e) {
    for (const k in e) {
      if (k !== 'default') {
        const d = Object.getOwnPropertyDescriptor(e, k);
        Object.defineProperty(n, k, d.get ? d : {
          enumerable: true,
          get: () => e[k]
        });
      }
    }
  }
  n.default = e;
  return Object.freeze(n);
}

const fs__default = /*#__PURE__*/_interopDefaultLegacy(fs);
const path__default = /*#__PURE__*/_interopDefaultLegacy(path);
const nodeUtils__namespace = /*#__PURE__*/_interopNamespace(nodeUtils);
const zlib__default = /*#__PURE__*/_interopDefaultLegacy(zlib);
const require$$0__default = /*#__PURE__*/_interopDefaultLegacy(require$$0);
const StringDecoder__default = /*#__PURE__*/_interopDefaultLegacy(StringDecoder);
const buffer__default = /*#__PURE__*/_interopDefaultLegacy(buffer);
const assert__default = /*#__PURE__*/_interopDefaultLegacy(assert);

const S_IFMT = 61440;
const S_IFDIR = 16384;
const S_IFREG = 32768;
const S_IFLNK = 40960;
const SAFE_TIME = 456789e3;

function makeError$1(code, message) {
  return Object.assign(new Error(`${code}: ${message}`), { code });
}
function EBUSY(message) {
  return makeError$1(`EBUSY`, message);
}
function ENOSYS(message, reason) {
  return makeError$1(`ENOSYS`, `${message}, ${reason}`);
}
function EINVAL(reason) {
  return makeError$1(`EINVAL`, `invalid argument, ${reason}`);
}
function EBADF(reason) {
  return makeError$1(`EBADF`, `bad file descriptor, ${reason}`);
}
function ENOENT(reason) {
  return makeError$1(`ENOENT`, `no such file or directory, ${reason}`);
}
function ENOTDIR(reason) {
  return makeError$1(`ENOTDIR`, `not a directory, ${reason}`);
}
function EISDIR(reason) {
  return makeError$1(`EISDIR`, `illegal operation on a directory, ${reason}`);
}
function EEXIST(reason) {
  return makeError$1(`EEXIST`, `file already exists, ${reason}`);
}
function EROFS(reason) {
  return makeError$1(`EROFS`, `read-only filesystem, ${reason}`);
}
function ENOTEMPTY(reason) {
  return makeError$1(`ENOTEMPTY`, `directory not empty, ${reason}`);
}
function EOPNOTSUPP(reason) {
  return makeError$1(`EOPNOTSUPP`, `operation not supported, ${reason}`);
}
function ERR_DIR_CLOSED() {
  return makeError$1(`ERR_DIR_CLOSED`, `Directory handle was closed`);
}

const DEFAULT_MODE = S_IFREG | 420;
class StatEntry {
  constructor() {
    this.uid = 0;
    this.gid = 0;
    this.size = 0;
    this.blksize = 0;
    this.atimeMs = 0;
    this.mtimeMs = 0;
    this.ctimeMs = 0;
    this.birthtimeMs = 0;
    this.atime = new Date(0);
    this.mtime = new Date(0);
    this.ctime = new Date(0);
    this.birthtime = new Date(0);
    this.dev = 0;
    this.ino = 0;
    this.mode = DEFAULT_MODE;
    this.nlink = 1;
    this.rdev = 0;
    this.blocks = 1;
  }
  isBlockDevice() {
    return false;
  }
  isCharacterDevice() {
    return false;
  }
  isDirectory() {
    return (this.mode & S_IFMT) === S_IFDIR;
  }
  isFIFO() {
    return false;
  }
  isFile() {
    return (this.mode & S_IFMT) === S_IFREG;
  }
  isSocket() {
    return false;
  }
  isSymbolicLink() {
    return (this.mode & S_IFMT) === S_IFLNK;
  }
}
class BigIntStatsEntry {
  constructor() {
    this.uid = BigInt(0);
    this.gid = BigInt(0);
    this.size = BigInt(0);
    this.blksize = BigInt(0);
    this.atimeMs = BigInt(0);
    this.mtimeMs = BigInt(0);
    this.ctimeMs = BigInt(0);
    this.birthtimeMs = BigInt(0);
    this.atimeNs = BigInt(0);
    this.mtimeNs = BigInt(0);
    this.ctimeNs = BigInt(0);
    this.birthtimeNs = BigInt(0);
    this.atime = new Date(0);
    this.mtime = new Date(0);
    this.ctime = new Date(0);
    this.birthtime = new Date(0);
    this.dev = BigInt(0);
    this.ino = BigInt(0);
    this.mode = BigInt(DEFAULT_MODE);
    this.nlink = BigInt(1);
    this.rdev = BigInt(0);
    this.blocks = BigInt(1);
  }
  isBlockDevice() {
    return false;
  }
  isCharacterDevice() {
    return false;
  }
  isDirectory() {
    return (this.mode & BigInt(S_IFMT)) === BigInt(S_IFDIR);
  }
  isFIFO() {
    return false;
  }
  isFile() {
    return (this.mode & BigInt(S_IFMT)) === BigInt(S_IFREG);
  }
  isSocket() {
    return false;
  }
  isSymbolicLink() {
    return (this.mode & BigInt(S_IFMT)) === BigInt(S_IFLNK);
  }
}
function makeDefaultStats() {
  return new StatEntry();
}
function clearStats(stats) {
  for (const key in stats) {
    if (Object.hasOwn(stats, key)) {
      const element = stats[key];
      if (typeof element === `number`) {
        stats[key] = 0;
      } else if (typeof element === `bigint`) {
        stats[key] = BigInt(0);
      } else if (nodeUtils__namespace.types.isDate(element)) {
        stats[key] = new Date(0);
      }
    }
  }
  return stats;
}
function convertToBigIntStats(stats) {
  const bigintStats = new BigIntStatsEntry();
  for (const key in stats) {
    if (Object.hasOwn(stats, key)) {
      const element = stats[key];
      if (typeof element === `number`) {
        bigintStats[key] = BigInt(element);
      } else if (nodeUtils__namespace.types.isDate(element)) {
        bigintStats[key] = new Date(element);
      }
    }
  }
  bigintStats.atimeNs = bigintStats.atimeMs * BigInt(1e6);
  bigintStats.mtimeNs = bigintStats.mtimeMs * BigInt(1e6);
  bigintStats.ctimeNs = bigintStats.ctimeMs * BigInt(1e6);
  bigintStats.birthtimeNs = bigintStats.birthtimeMs * BigInt(1e6);
  return bigintStats;
}
function areStatsEqual(a, b) {
  if (a.atimeMs !== b.atimeMs)
    return false;
  if (a.birthtimeMs !== b.birthtimeMs)
    return false;
  if (a.blksize !== b.blksize)
    return false;
  if (a.blocks !== b.blocks)
    return false;
  if (a.ctimeMs !== b.ctimeMs)
    return false;
  if (a.dev !== b.dev)
    return false;
  if (a.gid !== b.gid)
    return false;
  if (a.ino !== b.ino)
    return false;
  if (a.isBlockDevice() !== b.isBlockDevice())
    return false;
  if (a.isCharacterDevice() !== b.isCharacterDevice())
    return false;
  if (a.isDirectory() !== b.isDirectory())
    return false;
  if (a.isFIFO() !== b.isFIFO())
    return false;
  if (a.isFile() !== b.isFile())
    return false;
  if (a.isSocket() !== b.isSocket())
    return false;
  if (a.isSymbolicLink() !== b.isSymbolicLink())
    return false;
  if (a.mode !== b.mode)
    return false;
  if (a.mtimeMs !== b.mtimeMs)
    return false;
  if (a.nlink !== b.nlink)
    return false;
  if (a.rdev !== b.rdev)
    return false;
  if (a.size !== b.size)
    return false;
  if (a.uid !== b.uid)
    return false;
  const aN = a;
  const bN = b;
  if (aN.atimeNs !== bN.atimeNs)
    return false;
  if (aN.mtimeNs !== bN.mtimeNs)
    return false;
  if (aN.ctimeNs !== bN.ctimeNs)
    return false;
  if (aN.birthtimeNs !== bN.birthtimeNs)
    return false;
  return true;
}

const PortablePath = {
  root: `/`,
  dot: `.`,
  parent: `..`
};
const Filename = {
  home: `~`,
  nodeModules: `node_modules`,
  manifest: `package.json`,
  lockfile: `yarn.lock`,
  virtual: `__virtual__`,
  pnpJs: `.pnp.js`,
  pnpCjs: `.pnp.cjs`,
  pnpData: `.pnp.data.json`,
  pnpEsmLoader: `.pnp.loader.mjs`,
  rc: `.yarnrc.yml`,
  env: `.env`
};
const npath = Object.create(path__default.default);
const ppath = Object.create(path__default.default.posix);
npath.cwd = () => process.cwd();
ppath.cwd = process.platform === `win32` ? () => toPortablePath(process.cwd()) : process.cwd;
if (process.platform === `win32`) {
  ppath.resolve = (...segments) => {
    if (segments.length > 0 && ppath.isAbsolute(segments[0])) {
      return path__default.default.posix.resolve(...segments);
    } else {
      return path__default.default.posix.resolve(ppath.cwd(), ...segments);
    }
  };
}
const contains = function(pathUtils, from, to) {
  from = pathUtils.normalize(from);
  to = pathUtils.normalize(to);
  if (from === to)
    return `.`;
  if (!from.endsWith(pathUtils.sep))
    from = from + pathUtils.sep;
  if (to.startsWith(from)) {
    return to.slice(from.length);
  } else {
    return null;
  }
};
npath.contains = (from, to) => contains(npath, from, to);
ppath.contains = (from, to) => contains(ppath, from, to);
const WINDOWS_PATH_REGEXP = /^([a-zA-Z]:.*)$/;
const UNC_WINDOWS_PATH_REGEXP = /^\/\/(\.\/)?(.*)$/;
const PORTABLE_PATH_REGEXP = /^\/([a-zA-Z]:.*)$/;
const UNC_PORTABLE_PATH_REGEXP = /^\/unc\/(\.dot\/)?(.*)$/;
function fromPortablePathWin32(p) {
  let portablePathMatch, uncPortablePathMatch;
  if (portablePathMatch = p.match(PORTABLE_PATH_REGEXP))
    p = portablePathMatch[1];
  else if (uncPortablePathMatch = p.match(UNC_PORTABLE_PATH_REGEXP))
    p = `\\\\${uncPortablePathMatch[1] ? `.\\` : ``}${uncPortablePathMatch[2]}`;
  else
    return p;
  return p.replace(/\//g, `\\`);
}
function toPortablePathWin32(p) {
  p = p.replace(/\\/g, `/`);
  let windowsPathMatch, uncWindowsPathMatch;
  if (windowsPathMatch = p.match(WINDOWS_PATH_REGEXP))
    p = `/${windowsPathMatch[1]}`;
  else if (uncWindowsPathMatch = p.match(UNC_WINDOWS_PATH_REGEXP))
    p = `/unc/${uncWindowsPathMatch[1] ? `.dot/` : ``}${uncWindowsPathMatch[2]}`;
  return p;
}
const toPortablePath = process.platform === `win32` ? toPortablePathWin32 : (p) => p;
const fromPortablePath = process.platform === `win32` ? fromPortablePathWin32 : (p) => p;
npath.fromPortablePath = fromPortablePath;
npath.toPortablePath = toPortablePath;
function convertPath(targetPathUtils, sourcePath) {
  return targetPathUtils === npath ? fromPortablePath(sourcePath) : toPortablePath(sourcePath);
}

const defaultTime = new Date(SAFE_TIME * 1e3);
const defaultTimeMs = defaultTime.getTime();
async function copyPromise(destinationFs, destination, sourceFs, source, opts) {
  const normalizedDestination = destinationFs.pathUtils.normalize(destination);
  const normalizedSource = sourceFs.pathUtils.normalize(source);
  const prelayout = [];
  const postlayout = [];
  const { atime, mtime } = opts.stableTime ? { atime: defaultTime, mtime: defaultTime } : await sourceFs.lstatPromise(normalizedSource);
  await destinationFs.mkdirpPromise(destinationFs.pathUtils.dirname(destination), { utimes: [atime, mtime] });
  await copyImpl(prelayout, postlayout, destinationFs, normalizedDestination, sourceFs, normalizedSource, { ...opts, didParentExist: true });
  for (const operation of prelayout)
    await operation();
  await Promise.all(postlayout.map((operation) => {
    return operation();
  }));
}
async function copyImpl(prelayout, postlayout, destinationFs, destination, sourceFs, source, opts) {
  const destinationStat = opts.didParentExist ? await maybeLStat(destinationFs, destination) : null;
  const sourceStat = await sourceFs.lstatPromise(source);
  const { atime, mtime } = opts.stableTime ? { atime: defaultTime, mtime: defaultTime } : sourceStat;
  let updated;
  switch (true) {
    case sourceStat.isDirectory():
      {
        updated = await copyFolder(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts);
      }
      break;
    case sourceStat.isFile():
      {
        updated = await copyFile(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts);
      }
      break;
    case sourceStat.isSymbolicLink():
      {
        updated = await copySymlink(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts);
      }
      break;
    default: {
      throw new Error(`Unsupported file type (${sourceStat.mode})`);
    }
  }
  if (opts.linkStrategy?.type !== `HardlinkFromIndex` || !sourceStat.isFile()) {
    if (updated || destinationStat?.mtime?.getTime() !== mtime.getTime() || destinationStat?.atime?.getTime() !== atime.getTime()) {
      postlayout.push(() => destinationFs.lutimesPromise(destination, atime, mtime));
      updated = true;
    }
    if (destinationStat === null || (destinationStat.mode & 511) !== (sourceStat.mode & 511)) {
      postlayout.push(() => destinationFs.chmodPromise(destination, sourceStat.mode & 511));
      updated = true;
    }
  }
  return updated;
}
async function maybeLStat(baseFs, p) {
  try {
    return await baseFs.lstatPromise(p);
  } catch (e) {
    return null;
  }
}
async function copyFolder(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts) {
  if (destinationStat !== null && !destinationStat.isDirectory()) {
    if (opts.overwrite) {
      prelayout.push(async () => destinationFs.removePromise(destination));
      destinationStat = null;
    } else {
      return false;
    }
  }
  let updated = false;
  if (destinationStat === null) {
    prelayout.push(async () => {
      try {
        await destinationFs.mkdirPromise(destination, { mode: sourceStat.mode });
      } catch (err) {
        if (err.code !== `EEXIST`) {
          throw err;
        }
      }
    });
    updated = true;
  }
  const entries = await sourceFs.readdirPromise(source);
  const nextOpts = opts.didParentExist && !destinationStat ? { ...opts, didParentExist: false } : opts;
  if (opts.stableSort) {
    for (const entry of entries.sort()) {
      if (await copyImpl(prelayout, postlayout, destinationFs, destinationFs.pathUtils.join(destination, entry), sourceFs, sourceFs.pathUtils.join(source, entry), nextOpts)) {
        updated = true;
      }
    }
  } else {
    const entriesUpdateStatus = await Promise.all(entries.map(async (entry) => {
      await copyImpl(prelayout, postlayout, destinationFs, destinationFs.pathUtils.join(destination, entry), sourceFs, sourceFs.pathUtils.join(source, entry), nextOpts);
    }));
    if (entriesUpdateStatus.some((status) => status)) {
      updated = true;
    }
  }
  return updated;
}
async function copyFileViaIndex(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts, linkStrategy) {
  const sourceHash = await sourceFs.checksumFilePromise(source, { algorithm: `sha1` });
  const defaultMode = 420;
  const sourceMode = sourceStat.mode & 511;
  const indexFileName = `${sourceHash}${sourceMode !== defaultMode ? sourceMode.toString(8) : ``}`;
  const indexPath = destinationFs.pathUtils.join(linkStrategy.indexPath, sourceHash.slice(0, 2), `${indexFileName}.dat`);
  let AtomicBehavior;
  ((AtomicBehavior2) => {
    AtomicBehavior2[AtomicBehavior2["Lock"] = 0] = "Lock";
    AtomicBehavior2[AtomicBehavior2["Rename"] = 1] = "Rename";
  })(AtomicBehavior || (AtomicBehavior = {}));
  let atomicBehavior = 1 /* Rename */;
  let indexStat = await maybeLStat(destinationFs, indexPath);
  if (destinationStat) {
    const isDestinationHardlinkedFromIndex = indexStat && destinationStat.dev === indexStat.dev && destinationStat.ino === indexStat.ino;
    const isIndexModified = indexStat?.mtimeMs !== defaultTimeMs;
    if (isDestinationHardlinkedFromIndex) {
      if (isIndexModified && linkStrategy.autoRepair) {
        atomicBehavior = 0 /* Lock */;
        indexStat = null;
      }
    }
    if (!isDestinationHardlinkedFromIndex) {
      if (opts.overwrite) {
        prelayout.push(async () => destinationFs.removePromise(destination));
        destinationStat = null;
      } else {
        return false;
      }
    }
  }
  const tempPath = !indexStat && atomicBehavior === 1 /* Rename */ ? `${indexPath}.${Math.floor(Math.random() * 4294967296).toString(16).padStart(8, `0`)}` : null;
  let tempPathCleaned = false;
  prelayout.push(async () => {
    if (!indexStat) {
      if (atomicBehavior === 0 /* Lock */) {
        await destinationFs.lockPromise(indexPath, async () => {
          const content = await sourceFs.readFilePromise(source);
          await destinationFs.writeFilePromise(indexPath, content);
        });
      }
      if (atomicBehavior === 1 /* Rename */ && tempPath) {
        const content = await sourceFs.readFilePromise(source);
        await destinationFs.writeFilePromise(tempPath, content);
        try {
          await destinationFs.linkPromise(tempPath, indexPath);
        } catch (err) {
          if (err.code === `EEXIST`) {
            tempPathCleaned = true;
            await destinationFs.unlinkPromise(tempPath);
          } else {
            throw err;
          }
        }
      }
    }
    if (!destinationStat) {
      await destinationFs.linkPromise(indexPath, destination);
    }
  });
  postlayout.push(async () => {
    if (!indexStat) {
      await destinationFs.lutimesPromise(indexPath, defaultTime, defaultTime);
      if (sourceMode !== defaultMode) {
        await destinationFs.chmodPromise(indexPath, sourceMode);
      }
    }
    if (tempPath && !tempPathCleaned) {
      await destinationFs.unlinkPromise(tempPath);
    }
  });
  return false;
}
async function copyFileDirect(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts) {
  if (destinationStat !== null) {
    if (opts.overwrite) {
      prelayout.push(async () => destinationFs.removePromise(destination));
      destinationStat = null;
    } else {
      return false;
    }
  }
  prelayout.push(async () => {
    const content = await sourceFs.readFilePromise(source);
    await destinationFs.writeFilePromise(destination, content);
  });
  return true;
}
async function copyFile(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts) {
  if (opts.linkStrategy?.type === `HardlinkFromIndex`) {
    return copyFileViaIndex(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts, opts.linkStrategy);
  } else {
    return copyFileDirect(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts);
  }
}
async function copySymlink(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts) {
  if (destinationStat !== null) {
    if (opts.overwrite) {
      prelayout.push(async () => destinationFs.removePromise(destination));
      destinationStat = null;
    } else {
      return false;
    }
  }
  prelayout.push(async () => {
    await destinationFs.symlinkPromise(convertPath(destinationFs.pathUtils, await sourceFs.readlinkPromise(source)), destination);
  });
  return true;
}

class CustomDir {
  constructor(path, nextDirent, opts = {}) {
    this.path = path;
    this.nextDirent = nextDirent;
    this.opts = opts;
    this.closed = false;
  }
  throwIfClosed() {
    if (this.closed) {
      throw ERR_DIR_CLOSED();
    }
  }
  async *[Symbol.asyncIterator]() {
    try {
      let dirent;
      while ((dirent = await this.read()) !== null) {
        yield dirent;
      }
    } finally {
      await this.close();
    }
  }
  read(cb) {
    const dirent = this.readSync();
    if (typeof cb !== `undefined`)
      return cb(null, dirent);
    return Promise.resolve(dirent);
  }
  readSync() {
    this.throwIfClosed();
    return this.nextDirent();
  }
  close(cb) {
    this.closeSync();
    if (typeof cb !== `undefined`)
      return cb(null);
    return Promise.resolve();
  }
  closeSync() {
    this.throwIfClosed();
    this.opts.onClose?.();
    this.closed = true;
  }
}
function opendir(fakeFs, path, entries, opts) {
  const nextDirent = () => {
    const filename = entries.shift();
    if (typeof filename === `undefined`)
      return null;
    const entryPath = fakeFs.pathUtils.join(path, filename);
    return Object.assign(fakeFs.statSync(entryPath), {
      name: filename,
      path: void 0
    });
  };
  return new CustomDir(path, nextDirent, opts);
}

function assertStatus(current, expected) {
  if (current !== expected) {
    throw new Error(`Invalid StatWatcher status: expected '${expected}', got '${current}'`);
  }
}
class CustomStatWatcher extends events.EventEmitter {
  constructor(fakeFs, path, { bigint = false } = {}) {
    super();
    this.status = "ready" /* Ready */;
    this.changeListeners = /* @__PURE__ */ new Map();
    this.startTimeout = null;
    this.fakeFs = fakeFs;
    this.path = path;
    this.bigint = bigint;
    this.lastStats = this.stat();
  }
  static create(fakeFs, path, opts) {
    const statWatcher = new CustomStatWatcher(fakeFs, path, opts);
    statWatcher.start();
    return statWatcher;
  }
  start() {
    assertStatus(this.status, "ready" /* Ready */);
    this.status = "running" /* Running */;
    this.startTimeout = setTimeout(() => {
      this.startTimeout = null;
      if (!this.fakeFs.existsSync(this.path)) {
        this.emit("change" /* Change */, this.lastStats, this.lastStats);
      }
    }, 3);
  }
  stop() {
    assertStatus(this.status, "running" /* Running */);
    this.status = "stopped" /* Stopped */;
    if (this.startTimeout !== null) {
      clearTimeout(this.startTimeout);
      this.startTimeout = null;
    }
    this.emit("stop" /* Stop */);
  }
  stat() {
    try {
      return this.fakeFs.statSync(this.path, { bigint: this.bigint });
    } catch (error) {
      const statInstance = this.bigint ? new BigIntStatsEntry() : new StatEntry();
      return clearStats(statInstance);
    }
  }
  makeInterval(opts) {
    const interval = setInterval(() => {
      const currentStats = this.stat();
      const previousStats = this.lastStats;
      if (areStatsEqual(currentStats, previousStats))
        return;
      this.lastStats = currentStats;
      this.emit("change" /* Change */, currentStats, previousStats);
    }, opts.interval);
    return opts.persistent ? interval : interval.unref();
  }
  registerChangeListener(listener, opts) {
    this.addListener("change" /* Change */, listener);
    this.changeListeners.set(listener, this.makeInterval(opts));
  }
  unregisterChangeListener(listener) {
    this.removeListener("change" /* Change */, listener);
    const interval = this.changeListeners.get(listener);
    if (typeof interval !== `undefined`)
      clearInterval(interval);
    this.changeListeners.delete(listener);
  }
  unregisterAllChangeListeners() {
    for (const listener of this.changeListeners.keys()) {
      this.unregisterChangeListener(listener);
    }
  }
  hasChangeListeners() {
    return this.changeListeners.size > 0;
  }
  ref() {
    for (const interval of this.changeListeners.values())
      interval.ref();
    return this;
  }
  unref() {
    for (const interval of this.changeListeners.values())
      interval.unref();
    return this;
  }
}

const statWatchersByFakeFS = /* @__PURE__ */ new WeakMap();
function watchFile(fakeFs, path, a, b) {
  let bigint;
  let persistent;
  let interval;
  let listener;
  switch (typeof a) {
    case `function`:
      {
        bigint = false;
        persistent = true;
        interval = 5007;
        listener = a;
      }
      break;
    default:
      {
        ({
          bigint = false,
          persistent = true,
          interval = 5007
        } = a);
        listener = b;
      }
      break;
  }
  let statWatchers = statWatchersByFakeFS.get(fakeFs);
  if (typeof statWatchers === `undefined`)
    statWatchersByFakeFS.set(fakeFs, statWatchers = /* @__PURE__ */ new Map());
  let statWatcher = statWatchers.get(path);
  if (typeof statWatcher === `undefined`) {
    statWatcher = CustomStatWatcher.create(fakeFs, path, { bigint });
    statWatchers.set(path, statWatcher);
  }
  statWatcher.registerChangeListener(listener, { persistent, interval });
  return statWatcher;
}
function unwatchFile(fakeFs, path, cb) {
  const statWatchers = statWatchersByFakeFS.get(fakeFs);
  if (typeof statWatchers === `undefined`)
    return;
  const statWatcher = statWatchers.get(path);
  if (typeof statWatcher === `undefined`)
    return;
  if (typeof cb === `undefined`)
    statWatcher.unregisterAllChangeListeners();
  else
    statWatcher.unregisterChangeListener(cb);
  if (!statWatcher.hasChangeListeners()) {
    statWatcher.stop();
    statWatchers.delete(path);
  }
}
function unwatchAllFiles(fakeFs) {
  const statWatchers = statWatchersByFakeFS.get(fakeFs);
  if (typeof statWatchers === `undefined`)
    return;
  for (const path of statWatchers.keys()) {
    unwatchFile(fakeFs, path);
  }
}

class FakeFS {
  constructor(pathUtils) {
    this.pathUtils = pathUtils;
  }
  async *genTraversePromise(init, { stableSort = false } = {}) {
    const stack = [init];
    while (stack.length > 0) {
      const p = stack.shift();
      const entry = await this.lstatPromise(p);
      if (entry.isDirectory()) {
        const entries = await this.readdirPromise(p);
        if (stableSort) {
          for (const entry2 of entries.sort()) {
            stack.push(this.pathUtils.join(p, entry2));
          }
        } else {
          throw new Error(`Not supported`);
        }
      } else {
        yield p;
      }
    }
  }
  async checksumFilePromise(path, { algorithm = `sha512` } = {}) {
    const fd = await this.openPromise(path, `r`);
    try {
      const CHUNK_SIZE = 65536;
      const chunk = Buffer.allocUnsafeSlow(CHUNK_SIZE);
      const hash = crypto.createHash(algorithm);
      let bytesRead = 0;
      while ((bytesRead = await this.readPromise(fd, chunk, 0, CHUNK_SIZE)) !== 0)
        hash.update(bytesRead === CHUNK_SIZE ? chunk : chunk.slice(0, bytesRead));
      return hash.digest(`hex`);
    } finally {
      await this.closePromise(fd);
    }
  }
  async removePromise(p, { recursive = true, maxRetries = 5 } = {}) {
    let stat;
    try {
      stat = await this.lstatPromise(p);
    } catch (error) {
      if (error.code === `ENOENT`) {
        return;
      } else {
        throw error;
      }
    }
    if (stat.isDirectory()) {
      if (recursive) {
        const entries = await this.readdirPromise(p);
        await Promise.all(entries.map((entry) => {
          return this.removePromise(this.pathUtils.resolve(p, entry));
        }));
      }
      for (let t = 0; t <= maxRetries; t++) {
        try {
          await this.rmdirPromise(p);
          break;
        } catch (error) {
          if (error.code !== `EBUSY` && error.code !== `ENOTEMPTY`) {
            throw error;
          } else if (t < maxRetries) {
            await new Promise((resolve) => setTimeout(resolve, t * 100));
          }
        }
      }
    } else {
      await this.unlinkPromise(p);
    }
  }
  removeSync(p, { recursive = true } = {}) {
    let stat;
    try {
      stat = this.lstatSync(p);
    } catch (error) {
      if (error.code === `ENOENT`) {
        return;
      } else {
        throw error;
      }
    }
    if (stat.isDirectory()) {
      if (recursive)
        for (const entry of this.readdirSync(p))
          this.removeSync(this.pathUtils.resolve(p, entry));
      this.rmdirSync(p);
    } else {
      this.unlinkSync(p);
    }
  }
  async mkdirpPromise(p, { chmod, utimes } = {}) {
    p = this.resolve(p);
    if (p === this.pathUtils.dirname(p))
      return void 0;
    const parts = p.split(this.pathUtils.sep);
    let createdDirectory;
    for (let u = 2; u <= parts.length; ++u) {
      const subPath = parts.slice(0, u).join(this.pathUtils.sep);
      if (!this.existsSync(subPath)) {
        try {
          await this.mkdirPromise(subPath);
        } catch (error) {
          if (error.code === `EEXIST`) {
            continue;
          } else {
            throw error;
          }
        }
        createdDirectory ??= subPath;
        if (chmod != null)
          await this.chmodPromise(subPath, chmod);
        if (utimes != null) {
          await this.utimesPromise(subPath, utimes[0], utimes[1]);
        } else {
          const parentStat = await this.statPromise(this.pathUtils.dirname(subPath));
          await this.utimesPromise(subPath, parentStat.atime, parentStat.mtime);
        }
      }
    }
    return createdDirectory;
  }
  mkdirpSync(p, { chmod, utimes } = {}) {
    p = this.resolve(p);
    if (p === this.pathUtils.dirname(p))
      return void 0;
    const parts = p.split(this.pathUtils.sep);
    let createdDirectory;
    for (let u = 2; u <= parts.length; ++u) {
      const subPath = parts.slice(0, u).join(this.pathUtils.sep);
      if (!this.existsSync(subPath)) {
        try {
          this.mkdirSync(subPath);
        } catch (error) {
          if (error.code === `EEXIST`) {
            continue;
          } else {
            throw error;
          }
        }
        createdDirectory ??= subPath;
        if (chmod != null)
          this.chmodSync(subPath, chmod);
        if (utimes != null) {
          this.utimesSync(subPath, utimes[0], utimes[1]);
        } else {
          const parentStat = this.statSync(this.pathUtils.dirname(subPath));
          this.utimesSync(subPath, parentStat.atime, parentStat.mtime);
        }
      }
    }
    return createdDirectory;
  }
  async copyPromise(destination, source, { baseFs = this, overwrite = true, stableSort = false, stableTime = false, linkStrategy = null } = {}) {
    return await copyPromise(this, destination, baseFs, source, { overwrite, stableSort, stableTime, linkStrategy });
  }
  copySync(destination, source, { baseFs = this, overwrite = true } = {}) {
    const stat = baseFs.lstatSync(source);
    const exists = this.existsSync(destination);
    if (stat.isDirectory()) {
      this.mkdirpSync(destination);
      const directoryListing = baseFs.readdirSync(source);
      for (const entry of directoryListing) {
        this.copySync(this.pathUtils.join(destination, entry), baseFs.pathUtils.join(source, entry), { baseFs, overwrite });
      }
    } else if (stat.isFile()) {
      if (!exists || overwrite) {
        if (exists)
          this.removeSync(destination);
        const content = baseFs.readFileSync(source);
        this.writeFileSync(destination, content);
      }
    } else if (stat.isSymbolicLink()) {
      if (!exists || overwrite) {
        if (exists)
          this.removeSync(destination);
        const target = baseFs.readlinkSync(source);
        this.symlinkSync(convertPath(this.pathUtils, target), destination);
      }
    } else {
      throw new Error(`Unsupported file type (file: ${source}, mode: 0o${stat.mode.toString(8).padStart(6, `0`)})`);
    }
    const mode = stat.mode & 511;
    this.chmodSync(destination, mode);
  }
  async changeFilePromise(p, content, opts = {}) {
    if (Buffer.isBuffer(content)) {
      return this.changeFileBufferPromise(p, content, opts);
    } else {
      return this.changeFileTextPromise(p, content, opts);
    }
  }
  async changeFileBufferPromise(p, content, { mode } = {}) {
    let current = Buffer.alloc(0);
    try {
      current = await this.readFilePromise(p);
    } catch (error) {
    }
    if (Buffer.compare(current, content) === 0)
      return;
    await this.writeFilePromise(p, content, { mode });
  }
  async changeFileTextPromise(p, content, { automaticNewlines, mode } = {}) {
    let current = ``;
    try {
      current = await this.readFilePromise(p, `utf8`);
    } catch (error) {
    }
    const normalizedContent = automaticNewlines ? normalizeLineEndings(current, content) : content;
    if (current === normalizedContent)
      return;
    await this.writeFilePromise(p, normalizedContent, { mode });
  }
  changeFileSync(p, content, opts = {}) {
    if (Buffer.isBuffer(content)) {
      return this.changeFileBufferSync(p, content, opts);
    } else {
      return this.changeFileTextSync(p, content, opts);
    }
  }
  changeFileBufferSync(p, content, { mode } = {}) {
    let current = Buffer.alloc(0);
    try {
      current = this.readFileSync(p);
    } catch (error) {
    }
    if (Buffer.compare(current, content) === 0)
      return;
    this.writeFileSync(p, content, { mode });
  }
  changeFileTextSync(p, content, { automaticNewlines = false, mode } = {}) {
    let current = ``;
    try {
      current = this.readFileSync(p, `utf8`);
    } catch (error) {
    }
    const normalizedContent = automaticNewlines ? normalizeLineEndings(current, content) : content;
    if (current === normalizedContent)
      return;
    this.writeFileSync(p, normalizedContent, { mode });
  }
  async movePromise(fromP, toP) {
    try {
      await this.renamePromise(fromP, toP);
    } catch (error) {
      if (error.code === `EXDEV`) {
        await this.copyPromise(toP, fromP);
        await this.removePromise(fromP);
      } else {
        throw error;
      }
    }
  }
  moveSync(fromP, toP) {
    try {
      this.renameSync(fromP, toP);
    } catch (error) {
      if (error.code === `EXDEV`) {
        this.copySync(toP, fromP);
        this.removeSync(fromP);
      } else {
        throw error;
      }
    }
  }
  async lockPromise(affectedPath, callback) {
    const lockPath = `${affectedPath}.flock`;
    const interval = 1e3 / 60;
    const startTime = Date.now();
    let fd = null;
    const isAlive = async () => {
      let pid;
      try {
        [pid] = await this.readJsonPromise(lockPath);
      } catch (error) {
        return Date.now() - startTime < 500;
      }
      try {
        process.kill(pid, 0);
        return true;
      } catch (error) {
        return false;
      }
    };
    while (fd === null) {
      try {
        fd = await this.openPromise(lockPath, `wx`);
      } catch (error) {
        if (error.code === `EEXIST`) {
          if (!await isAlive()) {
            try {
              await this.unlinkPromise(lockPath);
              continue;
            } catch (error2) {
            }
          }
          if (Date.now() - startTime < 60 * 1e3) {
            await new Promise((resolve) => setTimeout(resolve, interval));
          } else {
            throw new Error(`Couldn't acquire a lock in a reasonable time (via ${lockPath})`);
          }
        } else {
          throw error;
        }
      }
    }
    await this.writePromise(fd, JSON.stringify([process.pid]));
    try {
      return await callback();
    } finally {
      try {
        await this.closePromise(fd);
        await this.unlinkPromise(lockPath);
      } catch (error) {
      }
    }
  }
  async readJsonPromise(p) {
    const content = await this.readFilePromise(p, `utf8`);
    try {
      return JSON.parse(content);
    } catch (error) {
      error.message += ` (in ${p})`;
      throw error;
    }
  }
  readJsonSync(p) {
    const content = this.readFileSync(p, `utf8`);
    try {
      return JSON.parse(content);
    } catch (error) {
      error.message += ` (in ${p})`;
      throw error;
    }
  }
  async writeJsonPromise(p, data, { compact = false } = {}) {
    const space = compact ? 0 : 2;
    return await this.writeFilePromise(p, `${JSON.stringify(data, null, space)}
`);
  }
  writeJsonSync(p, data, { compact = false } = {}) {
    const space = compact ? 0 : 2;
    return this.writeFileSync(p, `${JSON.stringify(data, null, space)}
`);
  }
  async preserveTimePromise(p, cb) {
    const stat = await this.lstatPromise(p);
    const result = await cb();
    if (typeof result !== `undefined`)
      p = result;
    await this.lutimesPromise(p, stat.atime, stat.mtime);
  }
  async preserveTimeSync(p, cb) {
    const stat = this.lstatSync(p);
    const result = cb();
    if (typeof result !== `undefined`)
      p = result;
    this.lutimesSync(p, stat.atime, stat.mtime);
  }
}
class BasePortableFakeFS extends FakeFS {
  constructor() {
    super(ppath);
  }
}
function getEndOfLine(content) {
  const matches = content.match(/\r?\n/g);
  if (matches === null)
    return os.EOL;
  const crlf = matches.filter((nl) => nl === `\r
`).length;
  const lf = matches.length - crlf;
  return crlf > lf ? `\r
` : `
`;
}
function normalizeLineEndings(originalContent, newContent) {
  return newContent.replace(/\r?\n/g, getEndOfLine(originalContent));
}

class ProxiedFS extends FakeFS {
  getExtractHint(hints) {
    return this.baseFs.getExtractHint(hints);
  }
  resolve(path) {
    return this.mapFromBase(this.baseFs.resolve(this.mapToBase(path)));
  }
  getRealPath() {
    return this.mapFromBase(this.baseFs.getRealPath());
  }
  async openPromise(p, flags, mode) {
    return this.baseFs.openPromise(this.mapToBase(p), flags, mode);
  }
  openSync(p, flags, mode) {
    return this.baseFs.openSync(this.mapToBase(p), flags, mode);
  }
  async opendirPromise(p, opts) {
    return Object.assign(await this.baseFs.opendirPromise(this.mapToBase(p), opts), { path: p });
  }
  opendirSync(p, opts) {
    return Object.assign(this.baseFs.opendirSync(this.mapToBase(p), opts), { path: p });
  }
  async readPromise(fd, buffer, offset, length, position) {
    return await this.baseFs.readPromise(fd, buffer, offset, length, position);
  }
  readSync(fd, buffer, offset, length, position) {
    return this.baseFs.readSync(fd, buffer, offset, length, position);
  }
  async writePromise(fd, buffer, offset, length, position) {
    if (typeof buffer === `string`) {
      return await this.baseFs.writePromise(fd, buffer, offset);
    } else {
      return await this.baseFs.writePromise(fd, buffer, offset, length, position);
    }
  }
  writeSync(fd, buffer, offset, length, position) {
    if (typeof buffer === `string`) {
      return this.baseFs.writeSync(fd, buffer, offset);
    } else {
      return this.baseFs.writeSync(fd, buffer, offset, length, position);
    }
  }
  async closePromise(fd) {
    return this.baseFs.closePromise(fd);
  }
  closeSync(fd) {
    this.baseFs.closeSync(fd);
  }
  createReadStream(p, opts) {
    return this.baseFs.createReadStream(p !== null ? this.mapToBase(p) : p, opts);
  }
  createWriteStream(p, opts) {
    return this.baseFs.createWriteStream(p !== null ? this.mapToBase(p) : p, opts);
  }
  async realpathPromise(p) {
    return this.mapFromBase(await this.baseFs.realpathPromise(this.mapToBase(p)));
  }
  realpathSync(p) {
    return this.mapFromBase(this.baseFs.realpathSync(this.mapToBase(p)));
  }
  async existsPromise(p) {
    return this.baseFs.existsPromise(this.mapToBase(p));
  }
  existsSync(p) {
    return this.baseFs.existsSync(this.mapToBase(p));
  }
  accessSync(p, mode) {
    return this.baseFs.accessSync(this.mapToBase(p), mode);
  }
  async accessPromise(p, mode) {
    return this.baseFs.accessPromise(this.mapToBase(p), mode);
  }
  async statPromise(p, opts) {
    return this.baseFs.statPromise(this.mapToBase(p), opts);
  }
  statSync(p, opts) {
    return this.baseFs.statSync(this.mapToBase(p), opts);
  }
  async fstatPromise(fd, opts) {
    return this.baseFs.fstatPromise(fd, opts);
  }
  fstatSync(fd, opts) {
    return this.baseFs.fstatSync(fd, opts);
  }
  lstatPromise(p, opts) {
    return this.baseFs.lstatPromise(this.mapToBase(p), opts);
  }
  lstatSync(p, opts) {
    return this.baseFs.lstatSync(this.mapToBase(p), opts);
  }
  async fchmodPromise(fd, mask) {
    return this.baseFs.fchmodPromise(fd, mask);
  }
  fchmodSync(fd, mask) {
    return this.baseFs.fchmodSync(fd, mask);
  }
  async chmodPromise(p, mask) {
    return this.baseFs.chmodPromise(this.mapToBase(p), mask);
  }
  chmodSync(p, mask) {
    return this.baseFs.chmodSync(this.mapToBase(p), mask);
  }
  async fchownPromise(fd, uid, gid) {
    return this.baseFs.fchownPromise(fd, uid, gid);
  }
  fchownSync(fd, uid, gid) {
    return this.baseFs.fchownSync(fd, uid, gid);
  }
  async chownPromise(p, uid, gid) {
    return this.baseFs.chownPromise(this.mapToBase(p), uid, gid);
  }
  chownSync(p, uid, gid) {
    return this.baseFs.chownSync(this.mapToBase(p), uid, gid);
  }
  async renamePromise(oldP, newP) {
    return this.baseFs.renamePromise(this.mapToBase(oldP), this.mapToBase(newP));
  }
  renameSync(oldP, newP) {
    return this.baseFs.renameSync(this.mapToBase(oldP), this.mapToBase(newP));
  }
  async copyFilePromise(sourceP, destP, flags = 0) {
    return this.baseFs.copyFilePromise(this.mapToBase(sourceP), this.mapToBase(destP), flags);
  }
  copyFileSync(sourceP, destP, flags = 0) {
    return this.baseFs.copyFileSync(this.mapToBase(sourceP), this.mapToBase(destP), flags);
  }
  async appendFilePromise(p, content, opts) {
    return this.baseFs.appendFilePromise(this.fsMapToBase(p), content, opts);
  }
  appendFileSync(p, content, opts) {
    return this.baseFs.appendFileSync(this.fsMapToBase(p), content, opts);
  }
  async writeFilePromise(p, content, opts) {
    return this.baseFs.writeFilePromise(this.fsMapToBase(p), content, opts);
  }
  writeFileSync(p, content, opts) {
    return this.baseFs.writeFileSync(this.fsMapToBase(p), content, opts);
  }
  async unlinkPromise(p) {
    return this.baseFs.unlinkPromise(this.mapToBase(p));
  }
  unlinkSync(p) {
    return this.baseFs.unlinkSync(this.mapToBase(p));
  }
  async utimesPromise(p, atime, mtime) {
    return this.baseFs.utimesPromise(this.mapToBase(p), atime, mtime);
  }
  utimesSync(p, atime, mtime) {
    return this.baseFs.utimesSync(this.mapToBase(p), atime, mtime);
  }
  async lutimesPromise(p, atime, mtime) {
    return this.baseFs.lutimesPromise(this.mapToBase(p), atime, mtime);
  }
  lutimesSync(p, atime, mtime) {
    return this.baseFs.lutimesSync(this.mapToBase(p), atime, mtime);
  }
  async mkdirPromise(p, opts) {
    return this.baseFs.mkdirPromise(this.mapToBase(p), opts);
  }
  mkdirSync(p, opts) {
    return this.baseFs.mkdirSync(this.mapToBase(p), opts);
  }
  async rmdirPromise(p, opts) {
    return this.baseFs.rmdirPromise(this.mapToBase(p), opts);
  }
  rmdirSync(p, opts) {
    return this.baseFs.rmdirSync(this.mapToBase(p), opts);
  }
  async rmPromise(p, opts) {
    return this.baseFs.rmPromise(this.mapToBase(p), opts);
  }
  rmSync(p, opts) {
    return this.baseFs.rmSync(this.mapToBase(p), opts);
  }
  async linkPromise(existingP, newP) {
    return this.baseFs.linkPromise(this.mapToBase(existingP), this.mapToBase(newP));
  }
  linkSync(existingP, newP) {
    return this.baseFs.linkSync(this.mapToBase(existingP), this.mapToBase(newP));
  }
  async symlinkPromise(target, p, type) {
    const mappedP = this.mapToBase(p);
    if (this.pathUtils.isAbsolute(target))
      return this.baseFs.symlinkPromise(this.mapToBase(target), mappedP, type);
    const mappedAbsoluteTarget = this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(p), target));
    const mappedTarget = this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(mappedP), mappedAbsoluteTarget);
    return this.baseFs.symlinkPromise(mappedTarget, mappedP, type);
  }
  symlinkSync(target, p, type) {
    const mappedP = this.mapToBase(p);
    if (this.pathUtils.isAbsolute(target))
      return this.baseFs.symlinkSync(this.mapToBase(target), mappedP, type);
    const mappedAbsoluteTarget = this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(p), target));
    const mappedTarget = this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(mappedP), mappedAbsoluteTarget);
    return this.baseFs.symlinkSync(mappedTarget, mappedP, type);
  }
  async readFilePromise(p, encoding) {
    return this.baseFs.readFilePromise(this.fsMapToBase(p), encoding);
  }
  readFileSync(p, encoding) {
    return this.baseFs.readFileSync(this.fsMapToBase(p), encoding);
  }
  readdirPromise(p, opts) {
    return this.baseFs.readdirPromise(this.mapToBase(p), opts);
  }
  readdirSync(p, opts) {
    return this.baseFs.readdirSync(this.mapToBase(p), opts);
  }
  async readlinkPromise(p) {
    return this.mapFromBase(await this.baseFs.readlinkPromise(this.mapToBase(p)));
  }
  readlinkSync(p) {
    return this.mapFromBase(this.baseFs.readlinkSync(this.mapToBase(p)));
  }
  async truncatePromise(p, len) {
    return this.baseFs.truncatePromise(this.mapToBase(p), len);
  }
  truncateSync(p, len) {
    return this.baseFs.truncateSync(this.mapToBase(p), len);
  }
  async ftruncatePromise(fd, len) {
    return this.baseFs.ftruncatePromise(fd, len);
  }
  ftruncateSync(fd, len) {
    return this.baseFs.ftruncateSync(fd, len);
  }
  watch(p, a, b) {
    return this.baseFs.watch(
      this.mapToBase(p),
      a,
      b
    );
  }
  watchFile(p, a, b) {
    return this.baseFs.watchFile(
      this.mapToBase(p),
      a,
      b
    );
  }
  unwatchFile(p, cb) {
    return this.baseFs.unwatchFile(this.mapToBase(p), cb);
  }
  fsMapToBase(p) {
    if (typeof p === `number`) {
      return p;
    } else {
      return this.mapToBase(p);
    }
  }
}

function direntToPortable(dirent) {
  const portableDirent = dirent;
  if (typeof dirent.path === `string`)
    portableDirent.path = npath.toPortablePath(dirent.path);
  return portableDirent;
}
class NodeFS extends BasePortableFakeFS {
  constructor(realFs = fs__default.default) {
    super();
    this.realFs = realFs;
  }
  getExtractHint() {
    return false;
  }
  getRealPath() {
    return PortablePath.root;
  }
  resolve(p) {
    return ppath.resolve(p);
  }
  async openPromise(p, flags, mode) {
    return await new Promise((resolve, reject) => {
      this.realFs.open(npath.fromPortablePath(p), flags, mode, this.makeCallback(resolve, reject));
    });
  }
  openSync(p, flags, mode) {
    return this.realFs.openSync(npath.fromPortablePath(p), flags, mode);
  }
  async opendirPromise(p, opts) {
    return await new Promise((resolve, reject) => {
      if (typeof opts !== `undefined`) {
        this.realFs.opendir(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject));
      } else {
        this.realFs.opendir(npath.fromPortablePath(p), this.makeCallback(resolve, reject));
      }
    }).then((dir) => {
      const dirWithFixedPath = dir;
      Object.defineProperty(dirWithFixedPath, `path`, {
        value: p,
        configurable: true,
        writable: true
      });
      return dirWithFixedPath;
    });
  }
  opendirSync(p, opts) {
    const dir = typeof opts !== `undefined` ? this.realFs.opendirSync(npath.fromPortablePath(p), opts) : this.realFs.opendirSync(npath.fromPortablePath(p));
    const dirWithFixedPath = dir;
    Object.defineProperty(dirWithFixedPath, `path`, {
      value: p,
      configurable: true,
      writable: true
    });
    return dirWithFixedPath;
  }
  async readPromise(fd, buffer, offset = 0, length = 0, position = -1) {
    return await new Promise((resolve, reject) => {
      this.realFs.read(fd, buffer, offset, length, position, (error, bytesRead) => {
        if (error) {
          reject(error);
        } else {
          resolve(bytesRead);
        }
      });
    });
  }
  readSync(fd, buffer, offset, length, position) {
    return this.realFs.readSync(fd, buffer, offset, length, position);
  }
  async writePromise(fd, buffer, offset, length, position) {
    return await new Promise((resolve, reject) => {
      if (typeof buffer === `string`) {
        return this.realFs.write(fd, buffer, offset, this.makeCallback(resolve, reject));
      } else {
        return this.realFs.write(fd, buffer, offset, length, position, this.makeCallback(resolve, reject));
      }
    });
  }
  writeSync(fd, buffer, offset, length, position) {
    if (typeof buffer === `string`) {
      return this.realFs.writeSync(fd, buffer, offset);
    } else {
      return this.realFs.writeSync(fd, buffer, offset, length, position);
    }
  }
  async closePromise(fd) {
    await new Promise((resolve, reject) => {
      this.realFs.close(fd, this.makeCallback(resolve, reject));
    });
  }
  closeSync(fd) {
    this.realFs.closeSync(fd);
  }
  createReadStream(p, opts) {
    const realPath = p !== null ? npath.fromPortablePath(p) : p;
    return this.realFs.createReadStream(realPath, opts);
  }
  createWriteStream(p, opts) {
    const realPath = p !== null ? npath.fromPortablePath(p) : p;
    return this.realFs.createWriteStream(realPath, opts);
  }
  async realpathPromise(p) {
    return await new Promise((resolve, reject) => {
      this.realFs.realpath(npath.fromPortablePath(p), {}, this.makeCallback(resolve, reject));
    }).then((path) => {
      return npath.toPortablePath(path);
    });
  }
  realpathSync(p) {
    return npath.toPortablePath(this.realFs.realpathSync(npath.fromPortablePath(p), {}));
  }
  async existsPromise(p) {
    return await new Promise((resolve) => {
      this.realFs.exists(npath.fromPortablePath(p), resolve);
    });
  }
  accessSync(p, mode) {
    return this.realFs.accessSync(npath.fromPortablePath(p), mode);
  }
  async accessPromise(p, mode) {
    return await new Promise((resolve, reject) => {
      this.realFs.access(npath.fromPortablePath(p), mode, this.makeCallback(resolve, reject));
    });
  }
  existsSync(p) {
    return this.realFs.existsSync(npath.fromPortablePath(p));
  }
  async statPromise(p, opts) {
    return await new Promise((resolve, reject) => {
      if (opts) {
        this.realFs.stat(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject));
      } else {
        this.realFs.stat(npath.fromPortablePath(p), this.makeCallback(resolve, reject));
      }
    });
  }
  statSync(p, opts) {
    if (opts) {
      return this.realFs.statSync(npath.fromPortablePath(p), opts);
    } else {
      return this.realFs.statSync(npath.fromPortablePath(p));
    }
  }
  async fstatPromise(fd, opts) {
    return await new Promise((resolve, reject) => {
      if (opts) {
        this.realFs.fstat(fd, opts, this.makeCallback(resolve, reject));
      } else {
        this.realFs.fstat(fd, this.makeCallback(resolve, reject));
      }
    });
  }
  fstatSync(fd, opts) {
    if (opts) {
      return this.realFs.fstatSync(fd, opts);
    } else {
      return this.realFs.fstatSync(fd);
    }
  }
  async lstatPromise(p, opts) {
    return await new Promise((resolve, reject) => {
      if (opts) {
        this.realFs.lstat(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject));
      } else {
        this.realFs.lstat(npath.fromPortablePath(p), this.makeCallback(resolve, reject));
      }
    });
  }
  lstatSync(p, opts) {
    if (opts) {
      return this.realFs.lstatSync(npath.fromPortablePath(p), opts);
    } else {
      return this.realFs.lstatSync(npath.fromPortablePath(p));
    }
  }
  async fchmodPromise(fd, mask) {
    return await new Promise((resolve, reject) => {
      this.realFs.fchmod(fd, mask, this.makeCallback(resolve, reject));
    });
  }
  fchmodSync(fd, mask) {
    return this.realFs.fchmodSync(fd, mask);
  }
  async chmodPromise(p, mask) {
    return await new Promise((resolve, reject) => {
      this.realFs.chmod(npath.fromPortablePath(p), mask, this.makeCallback(resolve, reject));
    });
  }
  chmodSync(p, mask) {
    return this.realFs.chmodSync(npath.fromPortablePath(p), mask);
  }
  async fchownPromise(fd, uid, gid) {
    return await new Promise((resolve, reject) => {
      this.realFs.fchown(fd, uid, gid, this.makeCallback(resolve, reject));
    });
  }
  fchownSync(fd, uid, gid) {
    return this.realFs.fchownSync(fd, uid, gid);
  }
  async chownPromise(p, uid, gid) {
    return await new Promise((resolve, reject) => {
      this.realFs.chown(npath.fromPortablePath(p), uid, gid, this.makeCallback(resolve, reject));
    });
  }
  chownSync(p, uid, gid) {
    return this.realFs.chownSync(npath.fromPortablePath(p), uid, gid);
  }
  async renamePromise(oldP, newP) {
    return await new Promise((resolve, reject) => {
      this.realFs.rename(npath.fromPortablePath(oldP), npath.fromPortablePath(newP), this.makeCallback(resolve, reject));
    });
  }
  renameSync(oldP, newP) {
    return this.realFs.renameSync(npath.fromPortablePath(oldP), npath.fromPortablePath(newP));
  }
  async copyFilePromise(sourceP, destP, flags = 0) {
    return await new Promise((resolve, reject) => {
      this.realFs.copyFile(npath.fromPortablePath(sourceP), npath.fromPortablePath(destP), flags, this.makeCallback(resolve, reject));
    });
  }
  copyFileSync(sourceP, destP, flags = 0) {
    return this.realFs.copyFileSync(npath.fromPortablePath(sourceP), npath.fromPortablePath(destP), flags);
  }
  async appendFilePromise(p, content, opts) {
    return await new Promise((resolve, reject) => {
      const fsNativePath = typeof p === `string` ? npath.fromPortablePath(p) : p;
      if (opts) {
        this.realFs.appendFile(fsNativePath, content, opts, this.makeCallback(resolve, reject));
      } else {
        this.realFs.appendFile(fsNativePath, content, this.makeCallback(resolve, reject));
      }
    });
  }
  appendFileSync(p, content, opts) {
    const fsNativePath = typeof p === `string` ? npath.fromPortablePath(p) : p;
    if (opts) {
      this.realFs.appendFileSync(fsNativePath, content, opts);
    } else {
      this.realFs.appendFileSync(fsNativePath, content);
    }
  }
  async writeFilePromise(p, content, opts) {
    return await new Promise((resolve, reject) => {
      const fsNativePath = typeof p === `string` ? npath.fromPortablePath(p) : p;
      if (opts) {
        this.realFs.writeFile(fsNativePath, content, opts, this.makeCallback(resolve, reject));
      } else {
        this.realFs.writeFile(fsNativePath, content, this.makeCallback(resolve, reject));
      }
    });
  }
  writeFileSync(p, content, opts) {
    const fsNativePath = typeof p === `string` ? npath.fromPortablePath(p) : p;
    if (opts) {
      this.realFs.writeFileSync(fsNativePath, content, opts);
    } else {
      this.realFs.writeFileSync(fsNativePath, content);
    }
  }
  async unlinkPromise(p) {
    return await new Promise((resolve, reject) => {
      this.realFs.unlink(npath.fromPortablePath(p), this.makeCallback(resolve, reject));
    });
  }
  unlinkSync(p) {
    return this.realFs.unlinkSync(npath.fromPortablePath(p));
  }
  async utimesPromise(p, atime, mtime) {
    return await new Promise((resolve, reject) => {
      this.realFs.utimes(npath.fromPortablePath(p), atime, mtime, this.makeCallback(resolve, reject));
    });
  }
  utimesSync(p, atime, mtime) {
    this.realFs.utimesSync(npath.fromPortablePath(p), atime, mtime);
  }
  async lutimesPromise(p, atime, mtime) {
    return await new Promise((resolve, reject) => {
      this.realFs.lutimes(npath.fromPortablePath(p), atime, mtime, this.makeCallback(resolve, reject));
    });
  }
  lutimesSync(p, atime, mtime) {
    this.realFs.lutimesSync(npath.fromPortablePath(p), atime, mtime);
  }
  async mkdirPromise(p, opts) {
    return await new Promise((resolve, reject) => {
      this.realFs.mkdir(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject));
    });
  }
  mkdirSync(p, opts) {
    return this.realFs.mkdirSync(npath.fromPortablePath(p), opts);
  }
  async rmdirPromise(p, opts) {
    return await new Promise((resolve, reject) => {
      if (opts) {
        this.realFs.rmdir(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject));
      } else {
        this.realFs.rmdir(npath.fromPortablePath(p), this.makeCallback(resolve, reject));
      }
    });
  }
  rmdirSync(p, opts) {
    return this.realFs.rmdirSync(npath.fromPortablePath(p), opts);
  }
  async rmPromise(p, opts) {
    return await new Promise((resolve, reject) => {
      if (opts) {
        this.realFs.rm(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject));
      } else {
        this.realFs.rm(npath.fromPortablePath(p), this.makeCallback(resolve, reject));
      }
    });
  }
  rmSync(p, opts) {
    return this.realFs.rmSync(npath.fromPortablePath(p), opts);
  }
  async linkPromise(existingP, newP) {
    return await new Promise((resolve, reject) => {
      this.realFs.link(npath.fromPortablePath(existingP), npath.fromPortablePath(newP), this.makeCallback(resolve, reject));
    });
  }
  linkSync(existingP, newP) {
    return this.realFs.linkSync(npath.fromPortablePath(existingP), npath.fromPortablePath(newP));
  }
  async symlinkPromise(target, p, type) {
    return await new Promise((resolve, reject) => {
      this.realFs.symlink(npath.fromPortablePath(target.replace(/\/+$/, ``)), npath.fromPortablePath(p), type, this.makeCallback(resolve, reject));
    });
  }
  symlinkSync(target, p, type) {
    return this.realFs.symlinkSync(npath.fromPortablePath(target.replace(/\/+$/, ``)), npath.fromPortablePath(p), type);
  }
  async readFilePromise(p, encoding) {
    return await new Promise((resolve, reject) => {
      const fsNativePath = typeof p === `string` ? npath.fromPortablePath(p) : p;
      this.realFs.readFile(fsNativePath, encoding, this.makeCallback(resolve, reject));
    });
  }
  readFileSync(p, encoding) {
    const fsNativePath = typeof p === `string` ? npath.fromPortablePath(p) : p;
    return this.realFs.readFileSync(fsNativePath, encoding);
  }
  async readdirPromise(p, opts) {
    return await new Promise((resolve, reject) => {
      if (opts) {
        if (opts.recursive && process.platform === `win32`) {
          if (opts.withFileTypes) {
            this.realFs.readdir(npath.fromPortablePath(p), opts, this.makeCallback((results) => resolve(results.map(direntToPortable)), reject));
          } else {
            this.realFs.readdir(npath.fromPortablePath(p), opts, this.makeCallback((results) => resolve(results.map(npath.toPortablePath)), reject));
          }
        } else {
          this.realFs.readdir(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject));
        }
      } else {
        this.realFs.readdir(npath.fromPortablePath(p), this.makeCallback(resolve, reject));
      }
    });
  }
  readdirSync(p, opts) {
    if (opts) {
      if (opts.recursive && process.platform === `win32`) {
        if (opts.withFileTypes) {
          return this.realFs.readdirSync(npath.fromPortablePath(p), opts).map(direntToPortable);
        } else {
          return this.realFs.readdirSync(npath.fromPortablePath(p), opts).map(npath.toPortablePath);
        }
      } else {
        return this.realFs.readdirSync(npath.fromPortablePath(p), opts);
      }
    } else {
      return this.realFs.readdirSync(npath.fromPortablePath(p));
    }
  }
  async readlinkPromise(p) {
    return await new Promise((resolve, reject) => {
      this.realFs.readlink(npath.fromPortablePath(p), this.makeCallback(resolve, reject));
    }).then((path) => {
      return npath.toPortablePath(path);
    });
  }
  readlinkSync(p) {
    return npath.toPortablePath(this.realFs.readlinkSync(npath.fromPortablePath(p)));
  }
  async truncatePromise(p, len) {
    return await new Promise((resolve, reject) => {
      this.realFs.truncate(npath.fromPortablePath(p), len, this.makeCallback(resolve, reject));
    });
  }
  truncateSync(p, len) {
    return this.realFs.truncateSync(npath.fromPortablePath(p), len);
  }
  async ftruncatePromise(fd, len) {
    return await new Promise((resolve, reject) => {
      this.realFs.ftruncate(fd, len, this.makeCallback(resolve, reject));
    });
  }
  ftruncateSync(fd, len) {
    return this.realFs.ftruncateSync(fd, len);
  }
  watch(p, a, b) {
    return this.realFs.watch(
      npath.fromPortablePath(p),
      a,
      b
    );
  }
  watchFile(p, a, b) {
    return this.realFs.watchFile(
      npath.fromPortablePath(p),
      a,
      b
    );
  }
  unwatchFile(p, cb) {
    return this.realFs.unwatchFile(npath.fromPortablePath(p), cb);
  }
  makeCallback(resolve, reject) {
    return (err, result) => {
      if (err) {
        reject(err);
      } else {
        resolve(result);
      }
    };
  }
}

const MOUNT_MASK = 4278190080;
class MountFS extends BasePortableFakeFS {
  constructor({ baseFs = new NodeFS(), filter = null, magicByte = 42, maxOpenFiles = Infinity, useCache = true, maxAge = 5e3, typeCheck = fs.constants.S_IFREG, getMountPoint, factoryPromise, factorySync }) {
    if (Math.floor(magicByte) !== magicByte || !(magicByte > 1 && magicByte <= 127))
      throw new Error(`The magic byte must be set to a round value between 1 and 127 included`);
    super();
    this.fdMap = /* @__PURE__ */ new Map();
    this.nextFd = 3;
    this.isMount = /* @__PURE__ */ new Set();
    this.notMount = /* @__PURE__ */ new Set();
    this.realPaths = /* @__PURE__ */ new Map();
    this.limitOpenFilesTimeout = null;
    this.baseFs = baseFs;
    this.mountInstances = useCache ? /* @__PURE__ */ new Map() : null;
    this.factoryPromise = factoryPromise;
    this.factorySync = factorySync;
    this.filter = filter;
    this.getMountPoint = getMountPoint;
    this.magic = magicByte << 24;
    this.maxAge = maxAge;
    this.maxOpenFiles = maxOpenFiles;
    this.typeCheck = typeCheck;
  }
  getExtractHint(hints) {
    return this.baseFs.getExtractHint(hints);
  }
  getRealPath() {
    return this.baseFs.getRealPath();
  }
  saveAndClose() {
    unwatchAllFiles(this);
    if (this.mountInstances) {
      for (const [path, { childFs }] of this.mountInstances.entries()) {
        childFs.saveAndClose?.();
        this.mountInstances.delete(path);
      }
    }
  }
  discardAndClose() {
    unwatchAllFiles(this);
    if (this.mountInstances) {
      for (const [path, { childFs }] of this.mountInstances.entries()) {
        childFs.discardAndClose?.();
        this.mountInstances.delete(path);
      }
    }
  }
  resolve(p) {
    return this.baseFs.resolve(p);
  }
  remapFd(mountFs, fd) {
    const remappedFd = this.nextFd++ | this.magic;
    this.fdMap.set(remappedFd, [mountFs, fd]);
    return remappedFd;
  }
  async openPromise(p, flags, mode) {
    return await this.makeCallPromise(p, async () => {
      return await this.baseFs.openPromise(p, flags, mode);
    }, async (mountFs, { subPath }) => {
      return this.remapFd(mountFs, await mountFs.openPromise(subPath, flags, mode));
    });
  }
  openSync(p, flags, mode) {
    return this.makeCallSync(p, () => {
      return this.baseFs.openSync(p, flags, mode);
    }, (mountFs, { subPath }) => {
      return this.remapFd(mountFs, mountFs.openSync(subPath, flags, mode));
    });
  }
  async opendirPromise(p, opts) {
    return await this.makeCallPromise(p, async () => {
      return await this.baseFs.opendirPromise(p, opts);
    }, async (mountFs, { subPath }) => {
      return await mountFs.opendirPromise(subPath, opts);
    }, {
      requireSubpath: false
    });
  }
  opendirSync(p, opts) {
    return this.makeCallSync(p, () => {
      return this.baseFs.opendirSync(p, opts);
    }, (mountFs, { subPath }) => {
      return mountFs.opendirSync(subPath, opts);
    }, {
      requireSubpath: false
    });
  }
  async readPromise(fd, buffer, offset, length, position) {
    if ((fd & MOUNT_MASK) !== this.magic)
      return await this.baseFs.readPromise(fd, buffer, offset, length, position);
    const entry = this.fdMap.get(fd);
    if (typeof entry === `undefined`)
      throw EBADF(`read`);
    const [mountFs, realFd] = entry;
    return await mountFs.readPromise(realFd, buffer, offset, length, position);
  }
  readSync(fd, buffer, offset, length, position) {
    if ((fd & MOUNT_MASK) !== this.magic)
      return this.baseFs.readSync(fd, buffer, offset, length, position);
    const entry = this.fdMap.get(fd);
    if (typeof entry === `undefined`)
      throw EBADF(`readSync`);
    const [mountFs, realFd] = entry;
    return mountFs.readSync(realFd, buffer, offset, length, position);
  }
  async writePromise(fd, buffer, offset, length, position) {
    if ((fd & MOUNT_MASK) !== this.magic) {
      if (typeof buffer === `string`) {
        return await this.baseFs.writePromise(fd, buffer, offset);
      } else {
        return await this.baseFs.writePromise(fd, buffer, offset, length, position);
      }
    }
    const entry = this.fdMap.get(fd);
    if (typeof entry === `undefined`)
      throw EBADF(`write`);
    const [mountFs, realFd] = entry;
    if (typeof buffer === `string`) {
      return await mountFs.writePromise(realFd, buffer, offset);
    } else {
      return await mountFs.writePromise(realFd, buffer, offset, length, position);
    }
  }
  writeSync(fd, buffer, offset, length, position) {
    if ((fd & MOUNT_MASK) !== this.magic) {
      if (typeof buffer === `string`) {
        return this.baseFs.writeSync(fd, buffer, offset);
      } else {
        return this.baseFs.writeSync(fd, buffer, offset, length, position);
      }
    }
    const entry = this.fdMap.get(fd);
    if (typeof entry === `undefined`)
      throw EBADF(`writeSync`);
    const [mountFs, realFd] = entry;
    if (typeof buffer === `string`) {
      return mountFs.writeSync(realFd, buffer, offset);
    } else {
      return mountFs.writeSync(realFd, buffer, offset, length, position);
    }
  }
  async closePromise(fd) {
    if ((fd & MOUNT_MASK) !== this.magic)
      return await this.baseFs.closePromise(fd);
    const entry = this.fdMap.get(fd);
    if (typeof entry === `undefined`)
      throw EBADF(`close`);
    this.fdMap.delete(fd);
    const [mountFs, realFd] = entry;
    return await mountFs.closePromise(realFd);
  }
  closeSync(fd) {
    if ((fd & MOUNT_MASK) !== this.magic)
      return this.baseFs.closeSync(fd);
    const entry = this.fdMap.get(fd);
    if (typeof entry === `undefined`)
      throw EBADF(`closeSync`);
    this.fdMap.delete(fd);
    const [mountFs, realFd] = entry;
    return mountFs.closeSync(realFd);
  }
  createReadStream(p, opts) {
    if (p === null)
      return this.baseFs.createReadStream(p, opts);
    return this.makeCallSync(p, () => {
      return this.baseFs.createReadStream(p, opts);
    }, (mountFs, { archivePath, subPath }) => {
      const stream = mountFs.createReadStream(subPath, opts);
      stream.path = npath.fromPortablePath(this.pathUtils.join(archivePath, subPath));
      return stream;
    });
  }
  createWriteStream(p, opts) {
    if (p === null)
      return this.baseFs.createWriteStream(p, opts);
    return this.makeCallSync(p, () => {
      return this.baseFs.createWriteStream(p, opts);
    }, (mountFs, { subPath }) => {
      return mountFs.createWriteStream(subPath, opts);
    });
  }
  async realpathPromise(p) {
    return await this.makeCallPromise(p, async () => {
      return await this.baseFs.realpathPromise(p);
    }, async (mountFs, { archivePath, subPath }) => {
      let realArchivePath = this.realPaths.get(archivePath);
      if (typeof realArchivePath === `undefined`) {
        realArchivePath = await this.baseFs.realpathPromise(archivePath);
        this.realPaths.set(archivePath, realArchivePath);
      }
      return this.pathUtils.join(realArchivePath, this.pathUtils.relative(PortablePath.root, await mountFs.realpathPromise(subPath)));
    });
  }
  realpathSync(p) {
    return this.makeCallSync(p, () => {
      return this.baseFs.realpathSync(p);
    }, (mountFs, { archivePath, subPath }) => {
      let realArchivePath = this.realPaths.get(archivePath);
      if (typeof realArchivePath === `undefined`) {
        realArchivePath = this.baseFs.realpathSync(archivePath);
        this.realPaths.set(archivePath, realArchivePath);
      }
      return this.pathUtils.join(realArchivePath, this.pathUtils.relative(PortablePath.root, mountFs.realpathSync(subPath)));
    });
  }
  async existsPromise(p) {
    return await this.makeCallPromise(p, async () => {
      return await this.baseFs.existsPromise(p);
    }, async (mountFs, { subPath }) => {
      return await mountFs.existsPromise(subPath);
    });
  }
  existsSync(p) {
    return this.makeCallSync(p, () => {
      return this.baseFs.existsSync(p);
    }, (mountFs, { subPath }) => {
      return mountFs.existsSync(subPath);
    });
  }
  async accessPromise(p, mode) {
    return await this.makeCallPromise(p, async () => {
      return await this.baseFs.accessPromise(p, mode);
    }, async (mountFs, { subPath }) => {
      return await mountFs.accessPromise(subPath, mode);
    });
  }
  accessSync(p, mode) {
    return this.makeCallSync(p, () => {
      return this.baseFs.accessSync(p, mode);
    }, (mountFs, { subPath }) => {
      return mountFs.accessSync(subPath, mode);
    });
  }
  async statPromise(p, opts) {
    return await this.makeCallPromise(p, async () => {
      return await this.baseFs.statPromise(p, opts);
    }, async (mountFs, { subPath }) => {
      return await mountFs.statPromise(subPath, opts);
    });
  }
  statSync(p, opts) {
    return this.makeCallSync(p, () => {
      return this.baseFs.statSync(p, opts);
    }, (mountFs, { subPath }) => {
      return mountFs.statSync(subPath, opts);
    });
  }
  async fstatPromise(fd, opts) {
    if ((fd & MOUNT_MASK) !== this.magic)
      return this.baseFs.fstatPromise(fd, opts);
    const entry = this.fdMap.get(fd);
    if (typeof entry === `undefined`)
      throw EBADF(`fstat`);
    const [mountFs, realFd] = entry;
    return mountFs.fstatPromise(realFd, opts);
  }
  fstatSync(fd, opts) {
    if ((fd & MOUNT_MASK) !== this.magic)
      return this.baseFs.fstatSync(fd, opts);
    const entry = this.fdMap.get(fd);
    if (typeof entry === `undefined`)
      throw EBADF(`fstatSync`);
    const [mountFs, realFd] = entry;
    return mountFs.fstatSync(realFd, opts);
  }
  async lstatPromise(p, opts) {
    return await this.makeCallPromise(p, async () => {
      return await this.baseFs.lstatPromise(p, opts);
    }, async (mountFs, { subPath }) => {
      return await mountFs.lstatPromise(subPath, opts);
    });
  }
  lstatSync(p, opts) {
    return this.makeCallSync(p, () => {
      return this.baseFs.lstatSync(p, opts);
    }, (mountFs, { subPath }) => {
      return mountFs.lstatSync(subPath, opts);
    });
  }
  async fchmodPromise(fd, mask) {
    if ((fd & MOUNT_MASK) !== this.magic)
      return this.baseFs.fchmodPromise(fd, mask);
    const entry = this.fdMap.get(fd);
    if (typeof entry === `undefined`)
      throw EBADF(`fchmod`);
    const [mountFs, realFd] = entry;
    return mountFs.fchmodPromise(realFd, mask);
  }
  fchmodSync(fd, mask) {
    if ((fd & MOUNT_MASK) !== this.magic)
      return this.baseFs.fchmodSync(fd, mask);
    const entry = this.fdMap.get(fd);
    if (typeof entry === `undefined`)
      throw EBADF(`fchmodSync`);
    const [mountFs, realFd] = entry;
    return mountFs.fchmodSync(realFd, mask);
  }
  async chmodPromise(p, mask) {
    return await this.makeCallPromise(p, async () => {
      return await this.baseFs.chmodPromise(p, mask);
    }, async (mountFs, { subPath }) => {
      return await mountFs.chmodPromise(subPath, mask);
    });
  }
  chmodSync(p, mask) {
    return this.makeCallSync(p, () => {
      return this.baseFs.chmodSync(p, mask);
    }, (mountFs, { subPath }) => {
      return mountFs.chmodSync(subPath, mask);
    });
  }
  async fchownPromise(fd, uid, gid) {
    if ((fd & MOUNT_MASK) !== this.magic)
      return this.baseFs.fchownPromise(fd, uid, gid);
    const entry = this.fdMap.get(fd);
    if (typeof entry === `undefined`)
      throw EBADF(`fchown`);
    const [zipFs, realFd] = entry;
    return zipFs.fchownPromise(realFd, uid, gid);
  }
  fchownSync(fd, uid, gid) {
    if ((fd & MOUNT_MASK) !== this.magic)
      return this.baseFs.fchownSync(fd, uid, gid);
    const entry = this.fdMap.get(fd);
    if (typeof entry === `undefined`)
      throw EBADF(`fchownSync`);
    const [zipFs, realFd] = entry;
    return zipFs.fchownSync(realFd, uid, gid);
  }
  async chownPromise(p, uid, gid) {
    return await this.makeCallPromise(p, async () => {
      return await this.baseFs.chownPromise(p, uid, gid);
    }, async (mountFs, { subPath }) => {
      return await mountFs.chownPromise(subPath, uid, gid);
    });
  }
  chownSync(p, uid, gid) {
    return this.makeCallSync(p, () => {
      return this.baseFs.chownSync(p, uid, gid);
    }, (mountFs, { subPath }) => {
      return mountFs.chownSync(subPath, uid, gid);
    });
  }
  async renamePromise(oldP, newP) {
    return await this.makeCallPromise(oldP, async () => {
      return await this.makeCallPromise(newP, async () => {
        return await this.baseFs.renamePromise(oldP, newP);
      }, async () => {
        throw Object.assign(new Error(`EEXDEV: cross-device link not permitted`), { code: `EEXDEV` });
      });
    }, async (mountFsO, { subPath: subPathO }) => {
      return await this.makeCallPromise(newP, async () => {
        throw Object.assign(new Error(`EEXDEV: cross-device link not permitted`), { code: `EEXDEV` });
      }, async (mountFsN, { subPath: subPathN }) => {
        if (mountFsO !== mountFsN) {
          throw Object.assign(new Error(`EEXDEV: cross-device link not permitted`), { code: `EEXDEV` });
        } else {
          return await mountFsO.renamePromise(subPathO, subPathN);
        }
      });
    });
  }
  renameSync(oldP, newP) {
    return this.makeCallSync(oldP, () => {
      return this.makeCallSync(newP, () => {
        return this.baseFs.renameSync(oldP, newP);
      }, () => {
        throw Object.assign(new Error(`EEXDEV: cross-device link not permitted`), { code: `EEXDEV` });
      });
    }, (mountFsO, { subPath: subPathO }) => {
      return this.makeCallSync(newP, () => {
        throw Object.assign(new Error(`EEXDEV: cross-device link not permitted`), { code: `EEXDEV` });
      }, (mountFsN, { subPath: subPathN }) => {
        if (mountFsO !== mountFsN) {
          throw Object.assign(new Error(`EEXDEV: cross-device link not permitted`), { code: `EEXDEV` });
        } else {
          return mountFsO.renameSync(subPathO, subPathN);
        }
      });
    });
  }
  async copyFilePromise(sourceP, destP, flags = 0) {
    const fallback = async (sourceFs, sourceP2, destFs, destP2) => {
      if ((flags & fs.constants.COPYFILE_FICLONE_FORCE) !== 0)
        throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${sourceP2}' -> ${destP2}'`), { code: `EXDEV` });
      if (flags & fs.constants.COPYFILE_EXCL && await this.existsPromise(sourceP2))
        throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${sourceP2}' -> '${destP2}'`), { code: `EEXIST` });
      let content;
      try {
        content = await sourceFs.readFilePromise(sourceP2);
      } catch (error) {
        throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${sourceP2}' -> '${destP2}'`), { code: `EINVAL` });
      }
      await destFs.writeFilePromise(destP2, content);
    };
    return await this.makeCallPromise(sourceP, async () => {
      return await this.makeCallPromise(destP, async () => {
        return await this.baseFs.copyFilePromise(sourceP, destP, flags);
      }, async (mountFsD, { subPath: subPathD }) => {
        return await fallback(this.baseFs, sourceP, mountFsD, subPathD);
      });
    }, async (mountFsS, { subPath: subPathS }) => {
      return await this.makeCallPromise(destP, async () => {
        return await fallback(mountFsS, subPathS, this.baseFs, destP);
      }, async (mountFsD, { subPath: subPathD }) => {
        if (mountFsS !== mountFsD) {
          return await fallback(mountFsS, subPathS, mountFsD, subPathD);
        } else {
          return await mountFsS.copyFilePromise(subPathS, subPathD, flags);
        }
      });
    });
  }
  copyFileSync(sourceP, destP, flags = 0) {
    const fallback = (sourceFs, sourceP2, destFs, destP2) => {
      if ((flags & fs.constants.COPYFILE_FICLONE_FORCE) !== 0)
        throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${sourceP2}' -> ${destP2}'`), { code: `EXDEV` });
      if (flags & fs.constants.COPYFILE_EXCL && this.existsSync(sourceP2))
        throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${sourceP2}' -> '${destP2}'`), { code: `EEXIST` });
      let content;
      try {
        content = sourceFs.readFileSync(sourceP2);
      } catch (error) {
        throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${sourceP2}' -> '${destP2}'`), { code: `EINVAL` });
      }
      destFs.writeFileSync(destP2, content);
    };
    return this.makeCallSync(sourceP, () => {
      return this.makeCallSync(destP, () => {
        return this.baseFs.copyFileSync(sourceP, destP, flags);
      }, (mountFsD, { subPath: subPathD }) => {
        return fallback(this.baseFs, sourceP, mountFsD, subPathD);
      });
    }, (mountFsS, { subPath: subPathS }) => {
      return this.makeCallSync(destP, () => {
        return fallback(mountFsS, subPathS, this.baseFs, destP);
      }, (mountFsD, { subPath: subPathD }) => {
        if (mountFsS !== mountFsD) {
          return fallback(mountFsS, subPathS, mountFsD, subPathD);
        } else {
          return mountFsS.copyFileSync(subPathS, subPathD, flags);
        }
      });
    });
  }
  async appendFilePromise(p, content, opts) {
    return await this.makeCallPromise(p, async () => {
      return await this.baseFs.appendFilePromise(p, content, opts);
    }, async (mountFs, { subPath }) => {
      return await mountFs.appendFilePromise(subPath, content, opts);
    });
  }
  appendFileSync(p, content, opts) {
    return this.makeCallSync(p, () => {
      return this.baseFs.appendFileSync(p, content, opts);
    }, (mountFs, { subPath }) => {
      return mountFs.appendFileSync(subPath, content, opts);
    });
  }
  async writeFilePromise(p, content, opts) {
    return await this.makeCallPromise(p, async () => {
      return await this.baseFs.writeFilePromise(p, content, opts);
    }, async (mountFs, { subPath }) => {
      return await mountFs.writeFilePromise(subPath, content, opts);
    });
  }
  writeFileSync(p, content, opts) {
    return this.makeCallSync(p, () => {
      return this.baseFs.writeFileSync(p, content, opts);
    }, (mountFs, { subPath }) => {
      return mountFs.writeFileSync(subPath, content, opts);
    });
  }
  async unlinkPromise(p) {
    return await this.makeCallPromise(p, async () => {
      return await this.baseFs.unlinkPromise(p);
    }, async (mountFs, { subPath }) => {
      return await mountFs.unlinkPromise(subPath);
    });
  }
  unlinkSync(p) {
    return this.makeCallSync(p, () => {
      return this.baseFs.unlinkSync(p);
    }, (mountFs, { subPath }) => {
      return mountFs.unlinkSync(subPath);
    });
  }
  async utimesPromise(p, atime, mtime) {
    return await this.makeCallPromise(p, async () => {
      return await this.baseFs.utimesPromise(p, atime, mtime);
    }, async (mountFs, { subPath }) => {
      return await mountFs.utimesPromise(subPath, atime, mtime);
    });
  }
  utimesSync(p, atime, mtime) {
    return this.makeCallSync(p, () => {
      return this.baseFs.utimesSync(p, atime, mtime);
    }, (mountFs, { subPath }) => {
      return mountFs.utimesSync(subPath, atime, mtime);
    });
  }
  async lutimesPromise(p, atime, mtime) {
    return await this.makeCallPromise(p, async () => {
      return await this.baseFs.lutimesPromise(p, atime, mtime);
    }, async (mountFs, { subPath }) => {
      return await mountFs.lutimesPromise(subPath, atime, mtime);
    });
  }
  lutimesSync(p, atime, mtime) {
    return this.makeCallSync(p, () => {
      return this.baseFs.lutimesSync(p, atime, mtime);
    }, (mountFs, { subPath }) => {
      return mountFs.lutimesSync(subPath, atime, mtime);
    });
  }
  async mkdirPromise(p, opts) {
    return await this.makeCallPromise(p, async () => {
      return await this.baseFs.mkdirPromise(p, opts);
    }, async (mountFs, { subPath }) => {
      return await mountFs.mkdirPromise(subPath, opts);
    });
  }
  mkdirSync(p, opts) {
    return this.makeCallSync(p, () => {
      return this.baseFs.mkdirSync(p, opts);
    }, (mountFs, { subPath }) => {
      return mountFs.mkdirSync(subPath, opts);
    });
  }
  async rmdirPromise(p, opts) {
    return await this.makeCallPromise(p, async () => {
      return await this.baseFs.rmdirPromise(p, opts);
    }, async (mountFs, { subPath }) => {
      return await mountFs.rmdirPromise(subPath, opts);
    });
  }
  rmdirSync(p, opts) {
    return this.makeCallSync(p, () => {
      return this.baseFs.rmdirSync(p, opts);
    }, (mountFs, { subPath }) => {
      return mountFs.rmdirSync(subPath, opts);
    });
  }
  async rmPromise(p, opts) {
    return await this.makeCallPromise(p, async () => {
      return await this.baseFs.rmPromise(p, opts);
    }, async (mountFs, { subPath }) => {
      return await mountFs.rmPromise(subPath, opts);
    });
  }
  rmSync(p, opts) {
    return this.makeCallSync(p, () => {
      return this.baseFs.rmSync(p, opts);
    }, (mountFs, { subPath }) => {
      return mountFs.rmSync(subPath, opts);
    });
  }
  async linkPromise(existingP, newP) {
    return await this.makeCallPromise(newP, async () => {
      return await this.baseFs.linkPromise(existingP, newP);
    }, async (mountFs, { subPath }) => {
      return await mountFs.linkPromise(existingP, subPath);
    });
  }
  linkSync(existingP, newP) {
    return this.makeCallSync(newP, () => {
      return this.baseFs.linkSync(existingP, newP);
    }, (mountFs, { subPath }) => {
      return mountFs.linkSync(existingP, subPath);
    });
  }
  async symlinkPromise(target, p, type) {
    return await this.makeCallPromise(p, async () => {
      return await this.baseFs.symlinkPromise(target, p, type);
    }, async (mountFs, { subPath }) => {
      return await mountFs.symlinkPromise(target, subPath);
    });
  }
  symlinkSync(target, p, type) {
    return this.makeCallSync(p, () => {
      return this.baseFs.symlinkSync(target, p, type);
    }, (mountFs, { subPath }) => {
      return mountFs.symlinkSync(target, subPath);
    });
  }
  async readFilePromise(p, encoding) {
    return this.makeCallPromise(p, async () => {
      return await this.baseFs.readFilePromise(p, encoding);
    }, async (mountFs, { subPath }) => {
      return await mountFs.readFilePromise(subPath, encoding);
    });
  }
  readFileSync(p, encoding) {
    return this.makeCallSync(p, () => {
      return this.baseFs.readFileSync(p, encoding);
    }, (mountFs, { subPath }) => {
      return mountFs.readFileSync(subPath, encoding);
    });
  }
  async readdirPromise(p, opts) {
    return await this.makeCallPromise(p, async () => {
      return await this.baseFs.readdirPromise(p, opts);
    }, async (mountFs, { subPath }) => {
      return await mountFs.readdirPromise(subPath, opts);
    }, {
      requireSubpath: false
    });
  }
  readdirSync(p, opts) {
    return this.makeCallSync(p, () => {
      return this.baseFs.readdirSync(p, opts);
    }, (mountFs, { subPath }) => {
      return mountFs.readdirSync(subPath, opts);
    }, {
      requireSubpath: false
    });
  }
  async readlinkPromise(p) {
    return await this.makeCallPromise(p, async () => {
      return await this.baseFs.readlinkPromise(p);
    }, async (mountFs, { subPath }) => {
      return await mountFs.readlinkPromise(subPath);
    });
  }
  readlinkSync(p) {
    return this.makeCallSync(p, () => {
      return this.baseFs.readlinkSync(p);
    }, (mountFs, { subPath }) => {
      return mountFs.readlinkSync(subPath);
    });
  }
  async truncatePromise(p, len) {
    return await this.makeCallPromise(p, async () => {
      return await this.baseFs.truncatePromise(p, len);
    }, async (mountFs, { subPath }) => {
      return await mountFs.truncatePromise(subPath, len);
    });
  }
  truncateSync(p, len) {
    return this.makeCallSync(p, () => {
      return this.baseFs.truncateSync(p, len);
    }, (mountFs, { subPath }) => {
      return mountFs.truncateSync(subPath, len);
    });
  }
  async ftruncatePromise(fd, len) {
    if ((fd & MOUNT_MASK) !== this.magic)
      return this.baseFs.ftruncatePromise(fd, len);
    const entry = this.fdMap.get(fd);
    if (typeof entry === `undefined`)
      throw EBADF(`ftruncate`);
    const [mountFs, realFd] = entry;
    return mountFs.ftruncatePromise(realFd, len);
  }
  ftruncateSync(fd, len) {
    if ((fd & MOUNT_MASK) !== this.magic)
      return this.baseFs.ftruncateSync(fd, len);
    const entry = this.fdMap.get(fd);
    if (typeof entry === `undefined`)
      throw EBADF(`ftruncateSync`);
    const [mountFs, realFd] = entry;
    return mountFs.ftruncateSync(realFd, len);
  }
  watch(p, a, b) {
    return this.makeCallSync(p, () => {
      return this.baseFs.watch(
        p,
        a,
        b
      );
    }, (mountFs, { subPath }) => {
      return mountFs.watch(
        subPath,
        a,
        b
      );
    });
  }
  watchFile(p, a, b) {
    return this.makeCallSync(p, () => {
      return this.baseFs.watchFile(
        p,
        a,
        b
      );
    }, () => {
      return watchFile(this, p, a, b);
    });
  }
  unwatchFile(p, cb) {
    return this.makeCallSync(p, () => {
      return this.baseFs.unwatchFile(p, cb);
    }, () => {
      return unwatchFile(this, p, cb);
    });
  }
  async makeCallPromise(p, discard, accept, { requireSubpath = true } = {}) {
    if (typeof p !== `string`)
      return await discard();
    const normalizedP = this.resolve(p);
    const mountInfo = this.findMount(normalizedP);
    if (!mountInfo)
      return await discard();
    if (requireSubpath && mountInfo.subPath === `/`)
      return await discard();
    return await this.getMountPromise(mountInfo.archivePath, async (mountFs) => await accept(mountFs, mountInfo));
  }
  makeCallSync(p, discard, accept, { requireSubpath = true } = {}) {
    if (typeof p !== `string`)
      return discard();
    const normalizedP = this.resolve(p);
    const mountInfo = this.findMount(normalizedP);
    if (!mountInfo)
      return discard();
    if (requireSubpath && mountInfo.subPath === `/`)
      return discard();
    return this.getMountSync(mountInfo.archivePath, (mountFs) => accept(mountFs, mountInfo));
  }
  findMount(p) {
    if (this.filter && !this.filter.test(p))
      return null;
    let filePath = ``;
    while (true) {
      const pathPartWithArchive = p.substring(filePath.length);
      const mountPoint = this.getMountPoint(pathPartWithArchive, filePath);
      if (!mountPoint)
        return null;
      filePath = this.pathUtils.join(filePath, mountPoint);
      if (!this.isMount.has(filePath)) {
        if (this.notMount.has(filePath))
          continue;
        try {
          if (this.typeCheck !== null && (this.baseFs.lstatSync(filePath).mode & fs.constants.S_IFMT) !== this.typeCheck) {
            this.notMount.add(filePath);
            continue;
          }
        } catch {
          return null;
        }
        this.isMount.add(filePath);
      }
      return {
        archivePath: filePath,
        subPath: this.pathUtils.join(PortablePath.root, p.substring(filePath.length))
      };
    }
  }
  limitOpenFiles(max) {
    if (this.mountInstances === null)
      return;
    const now = Date.now();
    let nextExpiresAt = now + this.maxAge;
    let closeCount = max === null ? 0 : this.mountInstances.size - max;
    for (const [path, { childFs, expiresAt, refCount }] of this.mountInstances.entries()) {
      if (refCount !== 0 || childFs.hasOpenFileHandles?.()) {
        continue;
      } else if (now >= expiresAt) {
        childFs.saveAndClose?.();
        this.mountInstances.delete(path);
        closeCount -= 1;
        continue;
      } else if (max === null || closeCount <= 0) {
        nextExpiresAt = expiresAt;
        break;
      }
      childFs.saveAndClose?.();
      this.mountInstances.delete(path);
      closeCount -= 1;
    }
    if (this.limitOpenFilesTimeout === null && (max === null && this.mountInstances.size > 0 || max !== null) && isFinite(nextExpiresAt)) {
      this.limitOpenFilesTimeout = setTimeout(() => {
        this.limitOpenFilesTimeout = null;
        this.limitOpenFiles(null);
      }, nextExpiresAt - now).unref();
    }
  }
  async getMountPromise(p, accept) {
    if (this.mountInstances) {
      let cachedMountFs = this.mountInstances.get(p);
      if (!cachedMountFs) {
        const createFsInstance = await this.factoryPromise(this.baseFs, p);
        cachedMountFs = this.mountInstances.get(p);
        if (!cachedMountFs) {
          cachedMountFs = {
            childFs: createFsInstance(),
            expiresAt: 0,
            refCount: 0
          };
        }
      }
      this.mountInstances.delete(p);
      this.limitOpenFiles(this.maxOpenFiles - 1);
      this.mountInstances.set(p, cachedMountFs);
      cachedMountFs.expiresAt = Date.now() + this.maxAge;
      cachedMountFs.refCount += 1;
      try {
        return await accept(cachedMountFs.childFs);
      } finally {
        cachedMountFs.refCount -= 1;
      }
    } else {
      const mountFs = (await this.factoryPromise(this.baseFs, p))();
      try {
        return await accept(mountFs);
      } finally {
        mountFs.saveAndClose?.();
      }
    }
  }
  getMountSync(p, accept) {
    if (this.mountInstances) {
      let cachedMountFs = this.mountInstances.get(p);
      if (!cachedMountFs) {
        cachedMountFs = {
          childFs: this.factorySync(this.baseFs, p),
          expiresAt: 0,
          refCount: 0
        };
      }
      this.mountInstances.delete(p);
      this.limitOpenFiles(this.maxOpenFiles - 1);
      this.mountInstances.set(p, cachedMountFs);
      cachedMountFs.expiresAt = Date.now() + this.maxAge;
      return accept(cachedMountFs.childFs);
    } else {
      const childFs = this.factorySync(this.baseFs, p);
      try {
        return accept(childFs);
      } finally {
        childFs.saveAndClose?.();
      }
    }
  }
}

class PosixFS extends ProxiedFS {
  constructor(baseFs) {
    super(npath);
    this.baseFs = baseFs;
  }
  mapFromBase(path) {
    return npath.fromPortablePath(path);
  }
  mapToBase(path) {
    return npath.toPortablePath(path);
  }
}

const NUMBER_REGEXP = /^[0-9]+$/;
const VIRTUAL_REGEXP = /^(\/(?:[^/]+\/)*?(?:\$\$virtual|__virtual__))((?:\/((?:[^/]+-)?[a-f0-9]+)(?:\/([^/]+))?)?((?:\/.*)?))$/;
const VALID_COMPONENT = /^([^/]+-)?[a-f0-9]+$/;
class VirtualFS extends ProxiedFS {
  constructor({ baseFs = new NodeFS() } = {}) {
    super(ppath);
    this.baseFs = baseFs;
  }
  static makeVirtualPath(base, component, to) {
    if (ppath.basename(base) !== `__virtual__`)
      throw new Error(`Assertion failed: Virtual folders must be named "__virtual__"`);
    if (!ppath.basename(component).match(VALID_COMPONENT))
      throw new Error(`Assertion failed: Virtual components must be ended by an hexadecimal hash`);
    const target = ppath.relative(ppath.dirname(base), to);
    const segments = target.split(`/`);
    let depth = 0;
    while (depth < segments.length && segments[depth] === `..`)
      depth += 1;
    const finalSegments = segments.slice(depth);
    const fullVirtualPath = ppath.join(base, component, String(depth), ...finalSegments);
    return fullVirtualPath;
  }
  static resolveVirtual(p) {
    const match = p.match(VIRTUAL_REGEXP);
    if (!match || !match[3] && match[5])
      return p;
    const target = ppath.dirname(match[1]);
    if (!match[3] || !match[4])
      return target;
    const isnum = NUMBER_REGEXP.test(match[4]);
    if (!isnum)
      return p;
    const depth = Number(match[4]);
    const backstep = `../`.repeat(depth);
    const subpath = match[5] || `.`;
    return VirtualFS.resolveVirtual(ppath.join(target, backstep, subpath));
  }
  getExtractHint(hints) {
    return this.baseFs.getExtractHint(hints);
  }
  getRealPath() {
    return this.baseFs.getRealPath();
  }
  realpathSync(p) {
    const match = p.match(VIRTUAL_REGEXP);
    if (!match)
      return this.baseFs.realpathSync(p);
    if (!match[5])
      return p;
    const realpath = this.baseFs.realpathSync(this.mapToBase(p));
    return VirtualFS.makeVirtualPath(match[1], match[3], realpath);
  }
  async realpathPromise(p) {
    const match = p.match(VIRTUAL_REGEXP);
    if (!match)
      return await this.baseFs.realpathPromise(p);
    if (!match[5])
      return p;
    const realpath = await this.baseFs.realpathPromise(this.mapToBase(p));
    return VirtualFS.makeVirtualPath(match[1], match[3], realpath);
  }
  mapToBase(p) {
    if (p === ``)
      return p;
    if (this.pathUtils.isAbsolute(p))
      return VirtualFS.resolveVirtual(p);
    const resolvedRoot = VirtualFS.resolveVirtual(this.baseFs.resolve(PortablePath.dot));
    const resolvedP = VirtualFS.resolveVirtual(this.baseFs.resolve(p));
    return ppath.relative(resolvedRoot, resolvedP) || PortablePath.dot;
  }
  mapFromBase(p) {
    return p;
  }
}

const URL = Number(process.versions.node.split('.', 1)[0]) < 20 ? url.URL : globalThis.URL;

class NodePathFS extends ProxiedFS {
  constructor(baseFs) {
    super(npath);
    this.baseFs = baseFs;
  }
  mapFromBase(path) {
    return path;
  }
  mapToBase(path) {
    if (typeof path === `string`)
      return path;
    if (path instanceof URL)
      return url.fileURLToPath(path);
    if (Buffer.isBuffer(path)) {
      const str = path.toString();
      if (!isUtf8(path, str))
        throw new Error(`Non-utf8 buffers are not supported at the moment. Please upvote the following issue if you encounter this error: https://github.com/yarnpkg/berry/issues/4942`);
      return str;
    }
    throw new Error(`Unsupported path type: ${nodeUtils.inspect(path)}`);
  }
}
function isUtf8(buf, str) {
  if (typeof buffer__default.default.isUtf8 !== `undefined`)
    return buffer__default.default.isUtf8(buf);
  return Buffer.byteLength(str) === buf.byteLength;
}

var _a, _b, _c, _d;
const kBaseFs = Symbol(`kBaseFs`);
const kFd = Symbol(`kFd`);
const kClosePromise = Symbol(`kClosePromise`);
const kCloseResolve = Symbol(`kCloseResolve`);
const kCloseReject = Symbol(`kCloseReject`);
const kRefs = Symbol(`kRefs`);
const kRef = Symbol(`kRef`);
const kUnref = Symbol(`kUnref`);
class FileHandle {
  constructor(fd, baseFs) {
    this[_a] = 1;
    this[_b] = void 0;
    this[_c] = void 0;
    this[_d] = void 0;
    this[kBaseFs] = baseFs;
    this[kFd] = fd;
  }
  get fd() {
    return this[kFd];
  }
  async appendFile(data, options) {
    try {
      this[kRef](this.appendFile);
      const encoding = (typeof options === `string` ? options : options?.encoding) ?? void 0;
      return await this[kBaseFs].appendFilePromise(this.fd, data, encoding ? { encoding } : void 0);
    } finally {
      this[kUnref]();
    }
  }
  async chown(uid, gid) {
    try {
      this[kRef](this.chown);
      return await this[kBaseFs].fchownPromise(this.fd, uid, gid);
    } finally {
      this[kUnref]();
    }
  }
  async chmod(mode) {
    try {
      this[kRef](this.chmod);
      return await this[kBaseFs].fchmodPromise(this.fd, mode);
    } finally {
      this[kUnref]();
    }
  }
  createReadStream(options) {
    return this[kBaseFs].createReadStream(null, { ...options, fd: this.fd });
  }
  createWriteStream(options) {
    return this[kBaseFs].createWriteStream(null, { ...options, fd: this.fd });
  }
  datasync() {
    throw new Error(`Method not implemented.`);
  }
  sync() {
    throw new Error(`Method not implemented.`);
  }
  async read(bufferOrOptions, offset, length, position) {
    try {
      this[kRef](this.read);
      let buffer;
      if (!Buffer.isBuffer(bufferOrOptions)) {
        bufferOrOptions ??= {};
        buffer = bufferOrOptions.buffer ?? Buffer.alloc(16384);
        offset = bufferOrOptions.offset || 0;
        length = bufferOrOptions.length ?? buffer.byteLength;
        position = bufferOrOptions.position ?? null;
      } else {
        buffer = bufferOrOptions;
      }
      offset ??= 0;
      length ??= 0;
      if (length === 0) {
        return {
          bytesRead: length,
          buffer
        };
      }
      const bytesRead = await this[kBaseFs].readPromise(this.fd, buffer, offset, length, position);
      return {
        bytesRead,
        buffer
      };
    } finally {
      this[kUnref]();
    }
  }
  async readFile(options) {
    try {
      this[kRef](this.readFile);
      const encoding = (typeof options === `string` ? options : options?.encoding) ?? void 0;
      return await this[kBaseFs].readFilePromise(this.fd, encoding);
    } finally {
      this[kUnref]();
    }
  }
  readLines(options) {
    return readline.createInterface({
      input: this.createReadStream(options),
      crlfDelay: Infinity
    });
  }
  async stat(opts) {
    try {
      this[kRef](this.stat);
      return await this[kBaseFs].fstatPromise(this.fd, opts);
    } finally {
      this[kUnref]();
    }
  }
  async truncate(len) {
    try {
      this[kRef](this.truncate);
      return await this[kBaseFs].ftruncatePromise(this.fd, len);
    } finally {
      this[kUnref]();
    }
  }
  utimes(atime, mtime) {
    throw new Error(`Method not implemented.`);
  }
  async writeFile(data, options) {
    try {
      this[kRef](this.writeFile);
      const encoding = (typeof options === `string` ? options : options?.encoding) ?? void 0;
      await this[kBaseFs].writeFilePromise(this.fd, data, encoding);
    } finally {
      this[kUnref]();
    }
  }
  async write(...args) {
    try {
      this[kRef](this.write);
      if (ArrayBuffer.isView(args[0])) {
        const [buffer, offset, length, position] = args;
        const bytesWritten = await this[kBaseFs].writePromise(this.fd, buffer, offset ?? void 0, length ?? void 0, position ?? void 0);
        return { bytesWritten, buffer };
      } else {
        const [data, position, encoding] = args;
        const bytesWritten = await this[kBaseFs].writePromise(this.fd, data, position, encoding);
        return { bytesWritten, buffer: data };
      }
    } finally {
      this[kUnref]();
    }
  }
  async writev(buffers, position) {
    try {
      this[kRef](this.writev);
      let bytesWritten = 0;
      if (typeof position !== `undefined`) {
        for (const buffer of buffers) {
          const writeResult = await this.write(buffer, void 0, void 0, position);
          bytesWritten += writeResult.bytesWritten;
          position += writeResult.bytesWritten;
        }
      } else {
        for (const buffer of buffers) {
          const writeResult = await this.write(buffer);
          bytesWritten += writeResult.bytesWritten;
        }
      }
      return {
        buffers,
        bytesWritten
      };
    } finally {
      this[kUnref]();
    }
  }
  readv(buffers, position) {
    throw new Error(`Method not implemented.`);
  }
  close() {
    if (this[kFd] === -1)
      return Promise.resolve();
    if (this[kClosePromise])
      return this[kClosePromise];
    this[kRefs]--;
    if (this[kRefs] === 0) {
      const fd = this[kFd];
      this[kFd] = -1;
      this[kClosePromise] = this[kBaseFs].closePromise(fd).finally(() => {
        this[kClosePromise] = void 0;
      });
    } else {
      this[kClosePromise] = new Promise((resolve, reject) => {
        this[kCloseResolve] = resolve;
        this[kCloseReject] = reject;
      }).finally(() => {
        this[kClosePromise] = void 0;
        this[kCloseReject] = void 0;
        this[kCloseResolve] = void 0;
      });
    }
    return this[kClosePromise];
  }
  [(_a = kRefs, _b = kClosePromise, _c = kCloseResolve, _d = kCloseReject, kRef)](caller) {
    if (this[kFd] === -1) {
      const err = new Error(`file closed`);
      err.code = `EBADF`;
      err.syscall = caller.name;
      throw err;
    }
    this[kRefs]++;
  }
  [kUnref]() {
    this[kRefs]--;
    if (this[kRefs] === 0) {
      const fd = this[kFd];
      this[kFd] = -1;
      this[kBaseFs].closePromise(fd).then(this[kCloseResolve], this[kCloseReject]);
    }
  }
}

const SYNC_IMPLEMENTATIONS = /* @__PURE__ */ new Set([
  `accessSync`,
  `appendFileSync`,
  `createReadStream`,
  `createWriteStream`,
  `chmodSync`,
  `fchmodSync`,
  `chownSync`,
  `fchownSync`,
  `closeSync`,
  `copyFileSync`,
  `linkSync`,
  `lstatSync`,
  `fstatSync`,
  `lutimesSync`,
  `mkdirSync`,
  `openSync`,
  `opendirSync`,
  `readlinkSync`,
  `readFileSync`,
  `readdirSync`,
  `readlinkSync`,
  `realpathSync`,
  `renameSync`,
  `rmdirSync`,
  `rmSync`,
  `statSync`,
  `symlinkSync`,
  `truncateSync`,
  `ftruncateSync`,
  `unlinkSync`,
  `unwatchFile`,
  `utimesSync`,
  `watch`,
  `watchFile`,
  `writeFileSync`,
  `writeSync`
]);
const ASYNC_IMPLEMENTATIONS = /* @__PURE__ */ new Set([
  `accessPromise`,
  `appendFilePromise`,
  `fchmodPromise`,
  `chmodPromise`,
  `fchownPromise`,
  `chownPromise`,
  `closePromise`,
  `copyFilePromise`,
  `linkPromise`,
  `fstatPromise`,
  `lstatPromise`,
  `lutimesPromise`,
  `mkdirPromise`,
  `openPromise`,
  `opendirPromise`,
  `readdirPromise`,
  `realpathPromise`,
  `readFilePromise`,
  `readdirPromise`,
  `readlinkPromise`,
  `renamePromise`,
  `rmdirPromise`,
  `rmPromise`,
  `statPromise`,
  `symlinkPromise`,
  `truncatePromise`,
  `ftruncatePromise`,
  `unlinkPromise`,
  `utimesPromise`,
  `writeFilePromise`,
  `writeSync`
]);
function patchFs(patchedFs, fakeFs) {
  fakeFs = new NodePathFS(fakeFs);
  const setupFn = (target, name, replacement) => {
    const orig = target[name];
    target[name] = replacement;
    if (typeof orig?.[nodeUtils.promisify.custom] !== `undefined`) {
      replacement[nodeUtils.promisify.custom] = orig[nodeUtils.promisify.custom];
    }
  };
  {
    setupFn(patchedFs, `exists`, (p, ...args) => {
      const hasCallback = typeof args[args.length - 1] === `function`;
      const callback = hasCallback ? args.pop() : () => {
      };
      process.nextTick(() => {
        fakeFs.existsPromise(p).then((exists) => {
          callback(exists);
        }, () => {
          callback(false);
        });
      });
    });
    setupFn(patchedFs, `read`, (...args) => {
      let [fd, buffer, offset, length, position, callback] = args;
      if (args.length <= 3) {
        let options = {};
        if (args.length < 3) {
          callback = args[1];
        } else {
          options = args[1];
          callback = args[2];
        }
        ({
          buffer = Buffer.alloc(16384),
          offset = 0,
          length = buffer.byteLength,
          position
        } = options);
      }
      if (offset == null)
        offset = 0;
      length |= 0;
      if (length === 0) {
        process.nextTick(() => {
          callback(null, 0, buffer);
        });
        return;
      }
      if (position == null)
        position = -1;
      process.nextTick(() => {
        fakeFs.readPromise(fd, buffer, offset, length, position).then((bytesRead) => {
          callback(null, bytesRead, buffer);
        }, (error) => {
          callback(error, 0, buffer);
        });
      });
    });
    for (const fnName of ASYNC_IMPLEMENTATIONS) {
      const origName = fnName.replace(/Promise$/, ``);
      if (typeof patchedFs[origName] === `undefined`)
        continue;
      const fakeImpl = fakeFs[fnName];
      if (typeof fakeImpl === `undefined`)
        continue;
      const wrapper = (...args) => {
        const hasCallback = typeof args[args.length - 1] === `function`;
        const callback = hasCallback ? args.pop() : () => {
        };
        process.nextTick(() => {
          fakeImpl.apply(fakeFs, args).then((result) => {
            callback(null, result);
          }, (error) => {
            callback(error);
          });
        });
      };
      setupFn(patchedFs, origName, wrapper);
    }
    patchedFs.realpath.native = patchedFs.realpath;
  }
  {
    setupFn(patchedFs, `existsSync`, (p) => {
      try {
        return fakeFs.existsSync(p);
      } catch (error) {
        return false;
      }
    });
    setupFn(patchedFs, `readSync`, (...args) => {
      let [fd, buffer, offset, length, position] = args;
      if (args.length <= 3) {
        const options = args[2] || {};
        ({ offset = 0, length = buffer.byteLength, position } = options);
      }
      if (offset == null)
        offset = 0;
      length |= 0;
      if (length === 0)
        return 0;
      if (position == null)
        position = -1;
      return fakeFs.readSync(fd, buffer, offset, length, position);
    });
    for (const fnName of SYNC_IMPLEMENTATIONS) {
      const origName = fnName;
      if (typeof patchedFs[origName] === `undefined`)
        continue;
      const fakeImpl = fakeFs[fnName];
      if (typeof fakeImpl === `undefined`)
        continue;
      setupFn(patchedFs, origName, fakeImpl.bind(fakeFs));
    }
    patchedFs.realpathSync.native = patchedFs.realpathSync;
  }
  {
    const patchedFsPromises = patchedFs.promises;
    for (const fnName of ASYNC_IMPLEMENTATIONS) {
      const origName = fnName.replace(/Promise$/, ``);
      if (typeof patchedFsPromises[origName] === `undefined`)
        continue;
      const fakeImpl = fakeFs[fnName];
      if (typeof fakeImpl === `undefined`)
        continue;
      if (fnName === `open`)
        continue;
      setupFn(patchedFsPromises, origName, (pathLike, ...args) => {
        if (pathLike instanceof FileHandle) {
          return pathLike[origName].apply(pathLike, args);
        } else {
          return fakeImpl.call(fakeFs, pathLike, ...args);
        }
      });
    }
    setupFn(patchedFsPromises, `open`, async (...args) => {
      const fd = await fakeFs.openPromise(...args);
      return new FileHandle(fd, fakeFs);
    });
  }
  {
    patchedFs.read[nodeUtils.promisify.custom] = async (fd, buffer, ...args) => {
      const res = fakeFs.readPromise(fd, buffer, ...args);
      return { bytesRead: await res, buffer };
    };
    patchedFs.write[nodeUtils.promisify.custom] = async (fd, buffer, ...args) => {
      const res = fakeFs.writePromise(fd, buffer, ...args);
      return { bytesWritten: await res, buffer };
    };
  }
}

let cachedInstance;
let registeredFactory = () => {
  throw new Error(`Assertion failed: No libzip instance is available, and no factory was configured`);
};
function setFactory(factory) {
  registeredFactory = factory;
}
function getInstance() {
  if (typeof cachedInstance === `undefined`)
    cachedInstance = registeredFactory();
  return cachedInstance;
}

var libzipSync = {exports: {}};

(function (module, exports) {
var frozenFs = Object.assign({}, fs__default.default);
var createModule = function() {
  var _scriptDir = void 0;
  if (typeof __filename !== "undefined")
    _scriptDir = _scriptDir || __filename;
  return function(createModule2) {
    createModule2 = createModule2 || {};
    var Module = typeof createModule2 !== "undefined" ? createModule2 : {};
    var readyPromiseResolve, readyPromiseReject;
    Module["ready"] = new Promise(function(resolve, reject) {
      readyPromiseResolve = resolve;
      readyPromiseReject = reject;
    });
    var moduleOverrides = {};
    var key;
    for (key in Module) {
      if (Module.hasOwnProperty(key)) {
        moduleOverrides[key] = Module[key];
      }
    }
    var scriptDirectory = "";
    function locateFile(path) {
      if (Module["locateFile"]) {
        return Module["locateFile"](path, scriptDirectory);
      }
      return scriptDirectory + path;
    }
    var read_, readBinary;
    var nodeFS;
    var nodePath;
    {
      {
        scriptDirectory = __dirname + "/";
      }
      read_ = function shell_read(filename, binary) {
        var ret = tryParseAsDataURI(filename);
        if (ret) {
          return binary ? ret : ret.toString();
        }
        if (!nodeFS)
          nodeFS = frozenFs;
        if (!nodePath)
          nodePath = path__default.default;
        filename = nodePath["normalize"](filename);
        return nodeFS["readFileSync"](filename, binary ? null : "utf8");
      };
      readBinary = function readBinary2(filename) {
        var ret = read_(filename, true);
        if (!ret.buffer) {
          ret = new Uint8Array(ret);
        }
        assert(ret.buffer);
        return ret;
      };
      if (process["argv"].length > 1) {
        process["argv"][1].replace(/\\/g, "/");
      }
      process["argv"].slice(2);
      Module["inspect"] = function() {
        return "[Emscripten Module object]";
      };
    }
    Module["print"] || console.log.bind(console);
    var err = Module["printErr"] || console.warn.bind(console);
    for (key in moduleOverrides) {
      if (moduleOverrides.hasOwnProperty(key)) {
        Module[key] = moduleOverrides[key];
      }
    }
    moduleOverrides = null;
    if (Module["arguments"])
      ;
    if (Module["thisProgram"])
      ;
    if (Module["quit"])
      ;
    var wasmBinary;
    if (Module["wasmBinary"])
      wasmBinary = Module["wasmBinary"];
    Module["noExitRuntime"] || true;
    if (typeof WebAssembly !== "object") {
      abort("no native wasm support detected");
    }
    function getValue(ptr, type, noSafe) {
      type = type || "i8";
      if (type.charAt(type.length - 1) === "*")
        type = "i32";
      switch (type) {
        case "i1":
          return HEAP8[ptr >> 0];
        case "i8":
          return HEAP8[ptr >> 0];
        case "i16":
          return LE_HEAP_LOAD_I16((ptr >> 1) * 2);
        case "i32":
          return LE_HEAP_LOAD_I32((ptr >> 2) * 4);
        case "i64":
          return LE_HEAP_LOAD_I32((ptr >> 2) * 4);
        case "float":
          return LE_HEAP_LOAD_F32((ptr >> 2) * 4);
        case "double":
          return LE_HEAP_LOAD_F64((ptr >> 3) * 8);
        default:
          abort("invalid type for getValue: " + type);
      }
      return null;
    }
    var wasmMemory;
    var ABORT = false;
    function assert(condition, text) {
      if (!condition) {
        abort("Assertion failed: " + text);
      }
    }
    function getCFunc(ident) {
      var func = Module["_" + ident];
      assert(
        func,
        "Cannot call unknown function " + ident + ", make sure it is exported"
      );
      return func;
    }
    function ccall(ident, returnType, argTypes, args, opts) {
      var toC = {
        string: function(str) {
          var ret2 = 0;
          if (str !== null && str !== void 0 && str !== 0) {
            var len = (str.length << 2) + 1;
            ret2 = stackAlloc(len);
            stringToUTF8(str, ret2, len);
          }
          return ret2;
        },
        array: function(arr) {
          var ret2 = stackAlloc(arr.length);
          writeArrayToMemory(arr, ret2);
          return ret2;
        }
      };
      function convertReturnValue(ret2) {
        if (returnType === "string")
          return UTF8ToString(ret2);
        if (returnType === "boolean")
          return Boolean(ret2);
        return ret2;
      }
      var func = getCFunc(ident);
      var cArgs = [];
      var stack = 0;
      if (args) {
        for (var i = 0; i < args.length; i++) {
          var converter = toC[argTypes[i]];
          if (converter) {
            if (stack === 0)
              stack = stackSave();
            cArgs[i] = converter(args[i]);
          } else {
            cArgs[i] = args[i];
          }
        }
      }
      var ret = func.apply(null, cArgs);
      ret = convertReturnValue(ret);
      if (stack !== 0)
        stackRestore(stack);
      return ret;
    }
    function cwrap(ident, returnType, argTypes, opts) {
      argTypes = argTypes || [];
      var numericArgs = argTypes.every(function(type) {
        return type === "number";
      });
      var numericRet = returnType !== "string";
      if (numericRet && numericArgs && !opts) {
        return getCFunc(ident);
      }
      return function() {
        return ccall(ident, returnType, argTypes, arguments);
      };
    }
    var UTF8Decoder = new TextDecoder("utf8");
    function UTF8ToString(ptr, maxBytesToRead) {
      if (!ptr)
        return "";
      var maxPtr = ptr + maxBytesToRead;
      for (var end = ptr; !(end >= maxPtr) && HEAPU8[end]; )
        ++end;
      return UTF8Decoder.decode(HEAPU8.subarray(ptr, end));
    }
    function stringToUTF8Array(str, heap, outIdx, maxBytesToWrite) {
      if (!(maxBytesToWrite > 0))
        return 0;
      var startIdx = outIdx;
      var endIdx = outIdx + maxBytesToWrite - 1;
      for (var i = 0; i < str.length; ++i) {
        var u = str.charCodeAt(i);
        if (u >= 55296 && u <= 57343) {
          var u1 = str.charCodeAt(++i);
          u = 65536 + ((u & 1023) << 10) | u1 & 1023;
        }
        if (u <= 127) {
          if (outIdx >= endIdx)
            break;
          heap[outIdx++] = u;
        } else if (u <= 2047) {
          if (outIdx + 1 >= endIdx)
            break;
          heap[outIdx++] = 192 | u >> 6;
          heap[outIdx++] = 128 | u & 63;
        } else if (u <= 65535) {
          if (outIdx + 2 >= endIdx)
            break;
          heap[outIdx++] = 224 | u >> 12;
          heap[outIdx++] = 128 | u >> 6 & 63;
          heap[outIdx++] = 128 | u & 63;
        } else {
          if (outIdx + 3 >= endIdx)
            break;
          heap[outIdx++] = 240 | u >> 18;
          heap[outIdx++] = 128 | u >> 12 & 63;
          heap[outIdx++] = 128 | u >> 6 & 63;
          heap[outIdx++] = 128 | u & 63;
        }
      }
      heap[outIdx] = 0;
      return outIdx - startIdx;
    }
    function stringToUTF8(str, outPtr, maxBytesToWrite) {
      return stringToUTF8Array(str, HEAPU8, outPtr, maxBytesToWrite);
    }
    function lengthBytesUTF8(str) {
      var len = 0;
      for (var i = 0; i < str.length; ++i) {
        var u = str.charCodeAt(i);
        if (u >= 55296 && u <= 57343)
          u = 65536 + ((u & 1023) << 10) | str.charCodeAt(++i) & 1023;
        if (u <= 127)
          ++len;
        else if (u <= 2047)
          len += 2;
        else if (u <= 65535)
          len += 3;
        else
          len += 4;
      }
      return len;
    }
    function allocateUTF8(str) {
      var size = lengthBytesUTF8(str) + 1;
      var ret = _malloc(size);
      if (ret)
        stringToUTF8Array(str, HEAP8, ret, size);
      return ret;
    }
    function writeArrayToMemory(array, buffer2) {
      HEAP8.set(array, buffer2);
    }
    function alignUp(x, multiple) {
      if (x % multiple > 0) {
        x += multiple - x % multiple;
      }
      return x;
    }
    var buffer, HEAP8, HEAPU8;
    var HEAP_DATA_VIEW;
    function updateGlobalBufferAndViews(buf) {
      buffer = buf;
      Module["HEAP_DATA_VIEW"] = HEAP_DATA_VIEW = new DataView(buf);
      Module["HEAP8"] = HEAP8 = new Int8Array(buf);
      Module["HEAP16"] = new Int16Array(buf);
      Module["HEAP32"] = new Int32Array(buf);
      Module["HEAPU8"] = HEAPU8 = new Uint8Array(buf);
      Module["HEAPU16"] = new Uint16Array(buf);
      Module["HEAPU32"] = new Uint32Array(buf);
      Module["HEAPF32"] = new Float32Array(buf);
      Module["HEAPF64"] = new Float64Array(buf);
    }
    Module["INITIAL_MEMORY"] || 16777216;
    var wasmTable;
    var __ATPRERUN__ = [];
    var __ATINIT__ = [];
    var __ATPOSTRUN__ = [];
    function preRun() {
      if (Module["preRun"]) {
        if (typeof Module["preRun"] == "function")
          Module["preRun"] = [Module["preRun"]];
        while (Module["preRun"].length) {
          addOnPreRun(Module["preRun"].shift());
        }
      }
      callRuntimeCallbacks(__ATPRERUN__);
    }
    function initRuntime() {
      callRuntimeCallbacks(__ATINIT__);
    }
    function postRun() {
      if (Module["postRun"]) {
        if (typeof Module["postRun"] == "function")
          Module["postRun"] = [Module["postRun"]];
        while (Module["postRun"].length) {
          addOnPostRun(Module["postRun"].shift());
        }
      }
      callRuntimeCallbacks(__ATPOSTRUN__);
    }
    function addOnPreRun(cb) {
      __ATPRERUN__.unshift(cb);
    }
    function addOnInit(cb) {
      __ATINIT__.unshift(cb);
    }
    function addOnPostRun(cb) {
      __ATPOSTRUN__.unshift(cb);
    }
    var runDependencies = 0;
    var dependenciesFulfilled = null;
    function addRunDependency(id) {
      runDependencies++;
      if (Module["monitorRunDependencies"]) {
        Module["monitorRunDependencies"](runDependencies);
      }
    }
    function removeRunDependency(id) {
      runDependencies--;
      if (Module["monitorRunDependencies"]) {
        Module["monitorRunDependencies"](runDependencies);
      }
      if (runDependencies == 0) {
        if (dependenciesFulfilled) {
          var callback = dependenciesFulfilled;
          dependenciesFulfilled = null;
          callback();
        }
      }
    }
    Module["preloadedImages"] = {};
    Module["preloadedAudios"] = {};
    function abort(what) {
      if (Module["onAbort"]) {
        Module["onAbort"](what);
      }
      what += "";
      err(what);
      ABORT = true;
      what = "abort(" + what + "). Build with -s ASSERTIONS=1 for more info.";
      var e = new WebAssembly.RuntimeError(what);
      readyPromiseReject(e);
      throw e;
    }
    var dataURIPrefix = "data:application/octet-stream;base64,";
    function isDataURI(filename) {
      return filename.startsWith(dataURIPrefix);
    }
    var wasmBinaryFile = "data:application/octet-stream;base64, ";
    if (!isDataURI(wasmBinaryFile)) {
      wasmBinaryFile = locateFile(wasmBinaryFile);
    }
    function getBinary(file) {
      try {
        if (file == wasmBinaryFile && wasmBinary) {
          return new Uint8Array(wasmBinary);
        }
        var binary = tryParseAsDataURI(file);
        if (binary) {
          return binary;
        }
        if (readBinary) {
          return readBinary(file);
        } else {
          throw "sync fetching of the wasm failed: you can preload it to Module['wasmBinary'] manually, or emcc.py will do that for you when generating HTML (but not JS)";
        }
      } catch (err2) {
        abort(err2);
      }
    }
    function instantiateSync(file, info) {
      var instance;
      var module2;
      var binary;
      try {
        binary = getBinary(file);
        module2 = new WebAssembly.Module(binary);
        instance = new WebAssembly.Instance(module2, info);
      } catch (e) {
        var str = e.toString();
        err("failed to compile wasm module: " + str);
        if (str.includes("imported Memory") || str.includes("memory import")) {
          err(
            "Memory size incompatibility issues may be due to changing INITIAL_MEMORY at runtime to something too large. Use ALLOW_MEMORY_GROWTH to allow any size memory (and also make sure not to set INITIAL_MEMORY at runtime to something smaller than it was at compile time)."
          );
        }
        throw e;
      }
      return [instance, module2];
    }
    function createWasm() {
      var info = { a: asmLibraryArg };
      function receiveInstance(instance, module2) {
        var exports3 = instance.exports;
        Module["asm"] = exports3;
        wasmMemory = Module["asm"]["g"];
        updateGlobalBufferAndViews(wasmMemory.buffer);
        wasmTable = Module["asm"]["W"];
        addOnInit(Module["asm"]["h"]);
        removeRunDependency();
      }
      addRunDependency();
      if (Module["instantiateWasm"]) {
        try {
          var exports2 = Module["instantiateWasm"](info, receiveInstance);
          return exports2;
        } catch (e) {
          err("Module.instantiateWasm callback failed with error: " + e);
          return false;
        }
      }
      var result = instantiateSync(wasmBinaryFile, info);
      receiveInstance(result[0]);
      return Module["asm"];
    }
    function LE_HEAP_LOAD_F32(byteOffset) {
      return HEAP_DATA_VIEW.getFloat32(byteOffset, true);
    }
    function LE_HEAP_LOAD_F64(byteOffset) {
      return HEAP_DATA_VIEW.getFloat64(byteOffset, true);
    }
    function LE_HEAP_LOAD_I16(byteOffset) {
      return HEAP_DATA_VIEW.getInt16(byteOffset, true);
    }
    function LE_HEAP_LOAD_I32(byteOffset) {
      return HEAP_DATA_VIEW.getInt32(byteOffset, true);
    }
    function LE_HEAP_STORE_I32(byteOffset, value) {
      HEAP_DATA_VIEW.setInt32(byteOffset, value, true);
    }
    function callRuntimeCallbacks(callbacks) {
      while (callbacks.length > 0) {
        var callback = callbacks.shift();
        if (typeof callback == "function") {
          callback(Module);
          continue;
        }
        var func = callback.func;
        if (typeof func === "number") {
          if (callback.arg === void 0) {
            wasmTable.get(func)();
          } else {
            wasmTable.get(func)(callback.arg);
          }
        } else {
          func(callback.arg === void 0 ? null : callback.arg);
        }
      }
    }
    function _gmtime_r(time, tmPtr) {
      var date = new Date(LE_HEAP_LOAD_I32((time >> 2) * 4) * 1e3);
      LE_HEAP_STORE_I32((tmPtr >> 2) * 4, date.getUTCSeconds());
      LE_HEAP_STORE_I32((tmPtr + 4 >> 2) * 4, date.getUTCMinutes());
      LE_HEAP_STORE_I32((tmPtr + 8 >> 2) * 4, date.getUTCHours());
      LE_HEAP_STORE_I32((tmPtr + 12 >> 2) * 4, date.getUTCDate());
      LE_HEAP_STORE_I32((tmPtr + 16 >> 2) * 4, date.getUTCMonth());
      LE_HEAP_STORE_I32((tmPtr + 20 >> 2) * 4, date.getUTCFullYear() - 1900);
      LE_HEAP_STORE_I32((tmPtr + 24 >> 2) * 4, date.getUTCDay());
      LE_HEAP_STORE_I32((tmPtr + 36 >> 2) * 4, 0);
      LE_HEAP_STORE_I32((tmPtr + 32 >> 2) * 4, 0);
      var start = Date.UTC(date.getUTCFullYear(), 0, 1, 0, 0, 0, 0);
      var yday = (date.getTime() - start) / (1e3 * 60 * 60 * 24) | 0;
      LE_HEAP_STORE_I32((tmPtr + 28 >> 2) * 4, yday);
      if (!_gmtime_r.GMTString)
        _gmtime_r.GMTString = allocateUTF8("GMT");
      LE_HEAP_STORE_I32((tmPtr + 40 >> 2) * 4, _gmtime_r.GMTString);
      return tmPtr;
    }
    function ___gmtime_r(a0, a1) {
      return _gmtime_r(a0, a1);
    }
    function _emscripten_memcpy_big(dest, src, num) {
      HEAPU8.copyWithin(dest, src, src + num);
    }
    function emscripten_realloc_buffer(size) {
      try {
        wasmMemory.grow(size - buffer.byteLength + 65535 >>> 16);
        updateGlobalBufferAndViews(wasmMemory.buffer);
        return 1;
      } catch (e) {
      }
    }
    function _emscripten_resize_heap(requestedSize) {
      var oldSize = HEAPU8.length;
      requestedSize = requestedSize >>> 0;
      var maxHeapSize = 2147483648;
      if (requestedSize > maxHeapSize) {
        return false;
      }
      for (var cutDown = 1; cutDown <= 4; cutDown *= 2) {
        var overGrownHeapSize = oldSize * (1 + 0.2 / cutDown);
        overGrownHeapSize = Math.min(
          overGrownHeapSize,
          requestedSize + 100663296
        );
        var newSize = Math.min(
          maxHeapSize,
          alignUp(Math.max(requestedSize, overGrownHeapSize), 65536)
        );
        var replacement = emscripten_realloc_buffer(newSize);
        if (replacement) {
          return true;
        }
      }
      return false;
    }
    function _setTempRet0(val) {
    }
    function _time(ptr) {
      var ret = Date.now() / 1e3 | 0;
      if (ptr) {
        LE_HEAP_STORE_I32((ptr >> 2) * 4, ret);
      }
      return ret;
    }
    function _tzset() {
      if (_tzset.called)
        return;
      _tzset.called = true;
      var currentYear = new Date().getFullYear();
      var winter = new Date(currentYear, 0, 1);
      var summer = new Date(currentYear, 6, 1);
      var winterOffset = winter.getTimezoneOffset();
      var summerOffset = summer.getTimezoneOffset();
      var stdTimezoneOffset = Math.max(winterOffset, summerOffset);
      LE_HEAP_STORE_I32((__get_timezone() >> 2) * 4, stdTimezoneOffset * 60);
      LE_HEAP_STORE_I32(
        (__get_daylight() >> 2) * 4,
        Number(winterOffset != summerOffset)
      );
      function extractZone(date) {
        var match = date.toTimeString().match(/\(([A-Za-z ]+)\)$/);
        return match ? match[1] : "GMT";
      }
      var winterName = extractZone(winter);
      var summerName = extractZone(summer);
      var winterNamePtr = allocateUTF8(winterName);
      var summerNamePtr = allocateUTF8(summerName);
      if (summerOffset < winterOffset) {
        LE_HEAP_STORE_I32((__get_tzname() >> 2) * 4, winterNamePtr);
        LE_HEAP_STORE_I32((__get_tzname() + 4 >> 2) * 4, summerNamePtr);
      } else {
        LE_HEAP_STORE_I32((__get_tzname() >> 2) * 4, summerNamePtr);
        LE_HEAP_STORE_I32((__get_tzname() + 4 >> 2) * 4, winterNamePtr);
      }
    }
    function _timegm(tmPtr) {
      _tzset();
      var time = Date.UTC(
        LE_HEAP_LOAD_I32((tmPtr + 20 >> 2) * 4) + 1900,
        LE_HEAP_LOAD_I32((tmPtr + 16 >> 2) * 4),
        LE_HEAP_LOAD_I32((tmPtr + 12 >> 2) * 4),
        LE_HEAP_LOAD_I32((tmPtr + 8 >> 2) * 4),
        LE_HEAP_LOAD_I32((tmPtr + 4 >> 2) * 4),
        LE_HEAP_LOAD_I32((tmPtr >> 2) * 4),
        0
      );
      var date = new Date(time);
      LE_HEAP_STORE_I32((tmPtr + 24 >> 2) * 4, date.getUTCDay());
      var start = Date.UTC(date.getUTCFullYear(), 0, 1, 0, 0, 0, 0);
      var yday = (date.getTime() - start) / (1e3 * 60 * 60 * 24) | 0;
      LE_HEAP_STORE_I32((tmPtr + 28 >> 2) * 4, yday);
      return date.getTime() / 1e3 | 0;
    }
    function intArrayFromBase64(s) {
      {
        var buf;
        try {
          buf = Buffer.from(s, "base64");
        } catch (_) {
          buf = new Buffer(s, "base64");
        }
        return new Uint8Array(
          buf["buffer"],
          buf["byteOffset"],
          buf["byteLength"]
        );
      }
    }
    function tryParseAsDataURI(filename) {
      if (!isDataURI(filename)) {
        return;
      }
      return intArrayFromBase64(filename.slice(dataURIPrefix.length));
    }
    var asmLibraryArg = {
      e: ___gmtime_r,
      c: _emscripten_memcpy_big,
      d: _emscripten_resize_heap,
      a: _setTempRet0,
      b: _time,
      f: _timegm
    };
    var asm = createWasm();
    Module["___wasm_call_ctors"] = asm["h"];
    Module["_zip_ext_count_symlinks"] = asm["i"];
    Module["_zip_file_get_external_attributes"] = asm["j"];
    Module["_zipstruct_statS"] = asm["k"];
    Module["_zipstruct_stat_size"] = asm["l"];
    Module["_zipstruct_stat_mtime"] = asm["m"];
    Module["_zipstruct_stat_crc"] = asm["n"];
    Module["_zipstruct_errorS"] = asm["o"];
    Module["_zipstruct_error_code_zip"] = asm["p"];
    Module["_zipstruct_stat_comp_size"] = asm["q"];
    Module["_zipstruct_stat_comp_method"] = asm["r"];
    Module["_zip_close"] = asm["s"];
    Module["_zip_delete"] = asm["t"];
    Module["_zip_dir_add"] = asm["u"];
    Module["_zip_discard"] = asm["v"];
    Module["_zip_error_init_with_code"] = asm["w"];
    Module["_zip_get_error"] = asm["x"];
    Module["_zip_file_get_error"] = asm["y"];
    Module["_zip_error_strerror"] = asm["z"];
    Module["_zip_fclose"] = asm["A"];
    Module["_zip_file_add"] = asm["B"];
    Module["_free"] = asm["C"];
    var _malloc = Module["_malloc"] = asm["D"];
    Module["_zip_source_error"] = asm["E"];
    Module["_zip_source_seek"] = asm["F"];
    Module["_zip_file_set_external_attributes"] = asm["G"];
    Module["_zip_file_set_mtime"] = asm["H"];
    Module["_zip_fopen_index"] = asm["I"];
    Module["_zip_fread"] = asm["J"];
    Module["_zip_get_name"] = asm["K"];
    Module["_zip_get_num_entries"] = asm["L"];
    Module["_zip_source_read"] = asm["M"];
    Module["_zip_name_locate"] = asm["N"];
    Module["_zip_open_from_source"] = asm["O"];
    Module["_zip_set_file_compression"] = asm["P"];
    Module["_zip_source_buffer"] = asm["Q"];
    Module["_zip_source_buffer_create"] = asm["R"];
    Module["_zip_source_close"] = asm["S"];
    Module["_zip_source_free"] = asm["T"];
    Module["_zip_source_keep"] = asm["U"];
    Module["_zip_source_open"] = asm["V"];
    Module["_zip_source_tell"] = asm["X"];
    Module["_zip_stat_index"] = asm["Y"];
    var __get_tzname = Module["__get_tzname"] = asm["Z"];
    var __get_daylight = Module["__get_daylight"] = asm["_"];
    var __get_timezone = Module["__get_timezone"] = asm["$"];
    var stackSave = Module["stackSave"] = asm["aa"];
    var stackRestore = Module["stackRestore"] = asm["ba"];
    var stackAlloc = Module["stackAlloc"] = asm["ca"];
    Module["cwrap"] = cwrap;
    Module["getValue"] = getValue;
    var calledRun;
    dependenciesFulfilled = function runCaller() {
      if (!calledRun)
        run();
      if (!calledRun)
        dependenciesFulfilled = runCaller;
    };
    function run(args) {
      if (runDependencies > 0) {
        return;
      }
      preRun();
      if (runDependencies > 0) {
        return;
      }
      function doRun() {
        if (calledRun)
          return;
        calledRun = true;
        Module["calledRun"] = true;
        if (ABORT)
          return;
        initRuntime();
        readyPromiseResolve(Module);
        if (Module["onRuntimeInitialized"])
          Module["onRuntimeInitialized"]();
        postRun();
      }
      if (Module["setStatus"]) {
        Module["setStatus"]("Running...");
        setTimeout(function() {
          setTimeout(function() {
            Module["setStatus"]("");
          }, 1);
          doRun();
        }, 1);
      } else {
        doRun();
      }
    }
    Module["run"] = run;
    if (Module["preInit"]) {
      if (typeof Module["preInit"] == "function")
        Module["preInit"] = [Module["preInit"]];
      while (Module["preInit"].length > 0) {
        Module["preInit"].pop()();
      }
    }
    run();
    return createModule2;
  };
}();
module.exports = createModule;
}(libzipSync));

const createModule = libzipSync.exports;

const number64 = [
  `number`,
  `number`
];
var Errors = /* @__PURE__ */ ((Errors2) => {
  Errors2[Errors2["ZIP_ER_OK"] = 0] = "ZIP_ER_OK";
  Errors2[Errors2["ZIP_ER_MULTIDISK"] = 1] = "ZIP_ER_MULTIDISK";
  Errors2[Errors2["ZIP_ER_RENAME"] = 2] = "ZIP_ER_RENAME";
  Errors2[Errors2["ZIP_ER_CLOSE"] = 3] = "ZIP_ER_CLOSE";
  Errors2[Errors2["ZIP_ER_SEEK"] = 4] = "ZIP_ER_SEEK";
  Errors2[Errors2["ZIP_ER_READ"] = 5] = "ZIP_ER_READ";
  Errors2[Errors2["ZIP_ER_WRITE"] = 6] = "ZIP_ER_WRITE";
  Errors2[Errors2["ZIP_ER_CRC"] = 7] = "ZIP_ER_CRC";
  Errors2[Errors2["ZIP_ER_ZIPCLOSED"] = 8] = "ZIP_ER_ZIPCLOSED";
  Errors2[Errors2["ZIP_ER_NOENT"] = 9] = "ZIP_ER_NOENT";
  Errors2[Errors2["ZIP_ER_EXISTS"] = 10] = "ZIP_ER_EXISTS";
  Errors2[Errors2["ZIP_ER_OPEN"] = 11] = "ZIP_ER_OPEN";
  Errors2[Errors2["ZIP_ER_TMPOPEN"] = 12] = "ZIP_ER_TMPOPEN";
  Errors2[Errors2["ZIP_ER_ZLIB"] = 13] = "ZIP_ER_ZLIB";
  Errors2[Errors2["ZIP_ER_MEMORY"] = 14] = "ZIP_ER_MEMORY";
  Errors2[Errors2["ZIP_ER_CHANGED"] = 15] = "ZIP_ER_CHANGED";
  Errors2[Errors2["ZIP_ER_COMPNOTSUPP"] = 16] = "ZIP_ER_COMPNOTSUPP";
  Errors2[Errors2["ZIP_ER_EOF"] = 17] = "ZIP_ER_EOF";
  Errors2[Errors2["ZIP_ER_INVAL"] = 18] = "ZIP_ER_INVAL";
  Errors2[Errors2["ZIP_ER_NOZIP"] = 19] = "ZIP_ER_NOZIP";
  Errors2[Errors2["ZIP_ER_INTERNAL"] = 20] = "ZIP_ER_INTERNAL";
  Errors2[Errors2["ZIP_ER_INCONS"] = 21] = "ZIP_ER_INCONS";
  Errors2[Errors2["ZIP_ER_REMOVE"] = 22] = "ZIP_ER_REMOVE";
  Errors2[Errors2["ZIP_ER_DELETED"] = 23] = "ZIP_ER_DELETED";
  Errors2[Errors2["ZIP_ER_ENCRNOTSUPP"] = 24] = "ZIP_ER_ENCRNOTSUPP";
  Errors2[Errors2["ZIP_ER_RDONLY"] = 25] = "ZIP_ER_RDONLY";
  Errors2[Errors2["ZIP_ER_NOPASSWD"] = 26] = "ZIP_ER_NOPASSWD";
  Errors2[Errors2["ZIP_ER_WRONGPASSWD"] = 27] = "ZIP_ER_WRONGPASSWD";
  Errors2[Errors2["ZIP_ER_OPNOTSUPP"] = 28] = "ZIP_ER_OPNOTSUPP";
  Errors2[Errors2["ZIP_ER_INUSE"] = 29] = "ZIP_ER_INUSE";
  Errors2[Errors2["ZIP_ER_TELL"] = 30] = "ZIP_ER_TELL";
  Errors2[Errors2["ZIP_ER_COMPRESSED_DATA"] = 31] = "ZIP_ER_COMPRESSED_DATA";
  return Errors2;
})(Errors || {});
const makeInterface = (emZip) => ({
  get HEAPU8() {
    return emZip.HEAPU8;
  },
  errors: Errors,
  SEEK_SET: 0,
  SEEK_CUR: 1,
  SEEK_END: 2,
  ZIP_CHECKCONS: 4,
  ZIP_EXCL: 2,
  ZIP_RDONLY: 16,
  ZIP_FL_OVERWRITE: 8192,
  ZIP_FL_COMPRESSED: 4,
  ZIP_OPSYS_DOS: 0,
  ZIP_OPSYS_AMIGA: 1,
  ZIP_OPSYS_OPENVMS: 2,
  ZIP_OPSYS_UNIX: 3,
  ZIP_OPSYS_VM_CMS: 4,
  ZIP_OPSYS_ATARI_ST: 5,
  ZIP_OPSYS_OS_2: 6,
  ZIP_OPSYS_MACINTOSH: 7,
  ZIP_OPSYS_Z_SYSTEM: 8,
  ZIP_OPSYS_CPM: 9,
  ZIP_OPSYS_WINDOWS_NTFS: 10,
  ZIP_OPSYS_MVS: 11,
  ZIP_OPSYS_VSE: 12,
  ZIP_OPSYS_ACORN_RISC: 13,
  ZIP_OPSYS_VFAT: 14,
  ZIP_OPSYS_ALTERNATE_MVS: 15,
  ZIP_OPSYS_BEOS: 16,
  ZIP_OPSYS_TANDEM: 17,
  ZIP_OPSYS_OS_400: 18,
  ZIP_OPSYS_OS_X: 19,
  ZIP_CM_DEFAULT: -1,
  ZIP_CM_STORE: 0,
  ZIP_CM_DEFLATE: 8,
  uint08S: emZip._malloc(1),
  uint32S: emZip._malloc(4),
  malloc: emZip._malloc,
  free: emZip._free,
  getValue: emZip.getValue,
  openFromSource: emZip.cwrap(`zip_open_from_source`, `number`, [`number`, `number`, `number`]),
  close: emZip.cwrap(`zip_close`, `number`, [`number`]),
  discard: emZip.cwrap(`zip_discard`, null, [`number`]),
  getError: emZip.cwrap(`zip_get_error`, `number`, [`number`]),
  getName: emZip.cwrap(`zip_get_name`, `string`, [`number`, `number`, `number`]),
  getNumEntries: emZip.cwrap(`zip_get_num_entries`, `number`, [`number`, `number`]),
  delete: emZip.cwrap(`zip_delete`, `number`, [`number`, `number`]),
  statIndex: emZip.cwrap(`zip_stat_index`, `number`, [`number`, ...number64, `number`, `number`]),
  fopenIndex: emZip.cwrap(`zip_fopen_index`, `number`, [`number`, ...number64, `number`]),
  fread: emZip.cwrap(`zip_fread`, `number`, [`number`, `number`, `number`, `number`]),
  fclose: emZip.cwrap(`zip_fclose`, `number`, [`number`]),
  dir: {
    add: emZip.cwrap(`zip_dir_add`, `number`, [`number`, `string`])
  },
  file: {
    add: emZip.cwrap(`zip_file_add`, `number`, [`number`, `string`, `number`, `number`]),
    getError: emZip.cwrap(`zip_file_get_error`, `number`, [`number`]),
    getExternalAttributes: emZip.cwrap(`zip_file_get_external_attributes`, `number`, [`number`, ...number64, `number`, `number`, `number`]),
    setExternalAttributes: emZip.cwrap(`zip_file_set_external_attributes`, `number`, [`number`, ...number64, `number`, `number`, `number`]),
    setMtime: emZip.cwrap(`zip_file_set_mtime`, `number`, [`number`, ...number64, `number`, `number`]),
    setCompression: emZip.cwrap(`zip_set_file_compression`, `number`, [`number`, ...number64, `number`, `number`])
  },
  ext: {
    countSymlinks: emZip.cwrap(`zip_ext_count_symlinks`, `number`, [`number`])
  },
  error: {
    initWithCode: emZip.cwrap(`zip_error_init_with_code`, null, [`number`, `number`]),
    strerror: emZip.cwrap(`zip_error_strerror`, `string`, [`number`])
  },
  name: {
    locate: emZip.cwrap(`zip_name_locate`, `number`, [`number`, `string`, `number`])
  },
  source: {
    fromUnattachedBuffer: emZip.cwrap(`zip_source_buffer_create`, `number`, [`number`, ...number64, `number`, `number`]),
    fromBuffer: emZip.cwrap(`zip_source_buffer`, `number`, [`number`, `number`, ...number64, `number`]),
    free: emZip.cwrap(`zip_source_free`, null, [`number`]),
    keep: emZip.cwrap(`zip_source_keep`, null, [`number`]),
    open: emZip.cwrap(`zip_source_open`, `number`, [`number`]),
    close: emZip.cwrap(`zip_source_close`, `number`, [`number`]),
    seek: emZip.cwrap(`zip_source_seek`, `number`, [`number`, ...number64, `number`]),
    tell: emZip.cwrap(`zip_source_tell`, `number`, [`number`]),
    read: emZip.cwrap(`zip_source_read`, `number`, [`number`, `number`, `number`]),
    error: emZip.cwrap(`zip_source_error`, `number`, [`number`])
  },
  struct: {
    statS: emZip.cwrap(`zipstruct_statS`, `number`, []),
    statSize: emZip.cwrap(`zipstruct_stat_size`, `number`, [`number`]),
    statCompSize: emZip.cwrap(`zipstruct_stat_comp_size`, `number`, [`number`]),
    statCompMethod: emZip.cwrap(`zipstruct_stat_comp_method`, `number`, [`number`]),
    statMtime: emZip.cwrap(`zipstruct_stat_mtime`, `number`, [`number`]),
    statCrc: emZip.cwrap(`zipstruct_stat_crc`, `number`, [`number`]),
    errorS: emZip.cwrap(`zipstruct_errorS`, `number`, []),
    errorCodeZip: emZip.cwrap(`zipstruct_error_code_zip`, `number`, [`number`])
  }
});

function getArchivePart(path, extension) {
  let idx = path.indexOf(extension);
  if (idx <= 0)
    return null;
  let nextCharIdx = idx;
  while (idx >= 0) {
    nextCharIdx = idx + extension.length;
    if (path[nextCharIdx] === ppath.sep)
      break;
    if (path[idx - 1] === ppath.sep)
      return null;
    idx = path.indexOf(extension, nextCharIdx);
  }
  if (path.length > nextCharIdx && path[nextCharIdx] !== ppath.sep)
    return null;
  return path.slice(0, nextCharIdx);
}
class ZipOpenFS extends MountFS {
  static async openPromise(fn, opts) {
    const zipOpenFs = new ZipOpenFS(opts);
    try {
      return await fn(zipOpenFs);
    } finally {
      zipOpenFs.saveAndClose();
    }
  }
  constructor(opts = {}) {
    const fileExtensions = opts.fileExtensions;
    const readOnlyArchives = opts.readOnlyArchives;
    const getMountPoint = typeof fileExtensions === `undefined` ? (path) => getArchivePart(path, `.zip`) : (path) => {
      for (const extension of fileExtensions) {
        const result = getArchivePart(path, extension);
        if (result) {
          return result;
        }
      }
      return null;
    };
    const factorySync = (baseFs, p) => {
      return new ZipFS(p, {
        baseFs,
        readOnly: readOnlyArchives,
        stats: baseFs.statSync(p)
      });
    };
    const factoryPromise = async (baseFs, p) => {
      const zipOptions = {
        baseFs,
        readOnly: readOnlyArchives,
        stats: await baseFs.statPromise(p)
      };
      return () => {
        return new ZipFS(p, zipOptions);
      };
    };
    super({
      ...opts,
      factorySync,
      factoryPromise,
      getMountPoint
    });
  }
}

const DEFAULT_COMPRESSION_LEVEL = `mixed`;
function toUnixTimestamp(time) {
  if (typeof time === `string` && String(+time) === time)
    return +time;
  if (typeof time === `number` && Number.isFinite(time)) {
    if (time < 0) {
      return Date.now() / 1e3;
    } else {
      return time;
    }
  }
  if (nodeUtils.types.isDate(time))
    return time.getTime() / 1e3;
  throw new Error(`Invalid time`);
}
function makeEmptyArchive() {
  return Buffer.from([
    80,
    75,
    5,
    6,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0
  ]);
}
class LibzipError extends Error {
  constructor(message, code) {
    super(message);
    this.name = `Libzip Error`;
    this.code = code;
  }
}
class ZipFS extends BasePortableFakeFS {
  constructor(source, opts = {}) {
    super();
    this.listings = /* @__PURE__ */ new Map();
    this.entries = /* @__PURE__ */ new Map();
    this.fileSources = /* @__PURE__ */ new Map();
    this.fds = /* @__PURE__ */ new Map();
    this.nextFd = 0;
    this.ready = false;
    this.readOnly = false;
    const pathOptions = opts;
    this.level = typeof pathOptions.level !== `undefined` ? pathOptions.level : DEFAULT_COMPRESSION_LEVEL;
    source ??= makeEmptyArchive();
    if (typeof source === `string`) {
      const { baseFs = new NodeFS() } = pathOptions;
      this.baseFs = baseFs;
      this.path = source;
    } else {
      this.path = null;
      this.baseFs = null;
    }
    if (opts.stats) {
      this.stats = opts.stats;
    } else {
      if (typeof source === `string`) {
        try {
          this.stats = this.baseFs.statSync(source);
        } catch (error) {
          if (error.code === `ENOENT` && pathOptions.create) {
            this.stats = makeDefaultStats();
          } else {
            throw error;
          }
        }
      } else {
        this.stats = makeDefaultStats();
      }
    }
    this.libzip = getInstance();
    const errPtr = this.libzip.malloc(4);
    try {
      let flags = 0;
      if (opts.readOnly) {
        flags |= this.libzip.ZIP_RDONLY;
        this.readOnly = true;
      }
      if (typeof source === `string`)
        source = pathOptions.create ? makeEmptyArchive() : this.baseFs.readFileSync(source);
      const lzSource = this.allocateUnattachedSource(source);
      try {
        this.zip = this.libzip.openFromSource(lzSource, flags, errPtr);
        this.lzSource = lzSource;
      } catch (error) {
        this.libzip.source.free(lzSource);
        throw error;
      }
      if (this.zip === 0) {
        const error = this.libzip.struct.errorS();
        this.libzip.error.initWithCode(error, this.libzip.getValue(errPtr, `i32`));
        throw this.makeLibzipError(error);
      }
    } finally {
      this.libzip.free(errPtr);
    }
    this.listings.set(PortablePath.root, /* @__PURE__ */ new Set());
    const entryCount = this.libzip.getNumEntries(this.zip, 0);
    for (let t = 0; t < entryCount; ++t) {
      const raw = this.libzip.getName(this.zip, t, 0);
      if (ppath.isAbsolute(raw))
        continue;
      const p = ppath.resolve(PortablePath.root, raw);
      this.registerEntry(p, t);
      if (raw.endsWith(`/`)) {
        this.registerListing(p);
      }
    }
    this.symlinkCount = this.libzip.ext.countSymlinks(this.zip);
    if (this.symlinkCount === -1)
      throw this.makeLibzipError(this.libzip.getError(this.zip));
    this.ready = true;
  }
  makeLibzipError(error) {
    const errorCode = this.libzip.struct.errorCodeZip(error);
    const strerror = this.libzip.error.strerror(error);
    const libzipError = new LibzipError(strerror, this.libzip.errors[errorCode]);
    if (errorCode === this.libzip.errors.ZIP_ER_CHANGED)
      throw new Error(`Assertion failed: Unexpected libzip error: ${libzipError.message}`);
    return libzipError;
  }
  getExtractHint(hints) {
    for (const fileName of this.entries.keys()) {
      const ext = this.pathUtils.extname(fileName);
      if (hints.relevantExtensions.has(ext)) {
        return true;
      }
    }
    return false;
  }
  getAllFiles() {
    return Array.from(this.entries.keys());
  }
  getRealPath() {
    if (!this.path)
      throw new Error(`ZipFS don't have real paths when loaded from a buffer`);
    return this.path;
  }
  prepareClose() {
    if (!this.ready)
      throw EBUSY(`archive closed, close`);
    unwatchAllFiles(this);
  }
  getBufferAndClose() {
    this.prepareClose();
    if (this.entries.size === 0) {
      this.discardAndClose();
      return makeEmptyArchive();
    }
    try {
      this.libzip.source.keep(this.lzSource);
      if (this.libzip.close(this.zip) === -1)
        throw this.makeLibzipError(this.libzip.getError(this.zip));
      if (this.libzip.source.open(this.lzSource) === -1)
        throw this.makeLibzipError(this.libzip.source.error(this.lzSource));
      if (this.libzip.source.seek(this.lzSource, 0, 0, this.libzip.SEEK_END) === -1)
        throw this.makeLibzipError(this.libzip.source.error(this.lzSource));
      const size = this.libzip.source.tell(this.lzSource);
      if (size === -1)
        throw this.makeLibzipError(this.libzip.source.error(this.lzSource));
      if (this.libzip.source.seek(this.lzSource, 0, 0, this.libzip.SEEK_SET) === -1)
        throw this.makeLibzipError(this.libzip.source.error(this.lzSource));
      const buffer = this.libzip.malloc(size);
      if (!buffer)
        throw new Error(`Couldn't allocate enough memory`);
      try {
        const rc = this.libzip.source.read(this.lzSource, buffer, size);
        if (rc === -1)
          throw this.makeLibzipError(this.libzip.source.error(this.lzSource));
        else if (rc < size)
          throw new Error(`Incomplete read`);
        else if (rc > size)
          throw new Error(`Overread`);
        let result = Buffer.from(this.libzip.HEAPU8.subarray(buffer, buffer + size));
        if (process.env.YARN_IS_TEST_ENV && process.env.YARN_ZIP_DATA_EPILOGUE)
          result = Buffer.concat([result, Buffer.from(process.env.YARN_ZIP_DATA_EPILOGUE)]);
        return result;
      } finally {
        this.libzip.free(buffer);
      }
    } finally {
      this.libzip.source.close(this.lzSource);
      this.libzip.source.free(this.lzSource);
      this.ready = false;
    }
  }
  discardAndClose() {
    this.prepareClose();
    this.libzip.discard(this.zip);
    this.ready = false;
  }
  saveAndClose() {
    if (!this.path || !this.baseFs)
      throw new Error(`ZipFS cannot be saved and must be discarded when loaded from a buffer`);
    if (this.readOnly) {
      this.discardAndClose();
      return;
    }
    const newMode = this.baseFs.existsSync(this.path) || this.stats.mode === DEFAULT_MODE ? void 0 : this.stats.mode;
    this.baseFs.writeFileSync(this.path, this.getBufferAndClose(), { mode: newMode });
    this.ready = false;
  }
  resolve(p) {
    return ppath.resolve(PortablePath.root, p);
  }
  async openPromise(p, flags, mode) {
    return this.openSync(p, flags, mode);
  }
  openSync(p, flags, mode) {
    const fd = this.nextFd++;
    this.fds.set(fd, { cursor: 0, p });
    return fd;
  }
  hasOpenFileHandles() {
    return !!this.fds.size;
  }
  async opendirPromise(p, opts) {
    return this.opendirSync(p, opts);
  }
  opendirSync(p, opts = {}) {
    const resolvedP = this.resolveFilename(`opendir '${p}'`, p);
    if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP))
      throw ENOENT(`opendir '${p}'`);
    const directoryListing = this.listings.get(resolvedP);
    if (!directoryListing)
      throw ENOTDIR(`opendir '${p}'`);
    const entries = [...directoryListing];
    const fd = this.openSync(resolvedP, `r`);
    const onClose = () => {
      this.closeSync(fd);
    };
    return opendir(this, resolvedP, entries, { onClose });
  }
  async readPromise(fd, buffer, offset, length, position) {
    return this.readSync(fd, buffer, offset, length, position);
  }
  readSync(fd, buffer, offset = 0, length = buffer.byteLength, position = -1) {
    const entry = this.fds.get(fd);
    if (typeof entry === `undefined`)
      throw EBADF(`read`);
    const realPosition = position === -1 || position === null ? entry.cursor : position;
    const source = this.readFileSync(entry.p);
    source.copy(buffer, offset, realPosition, realPosition + length);
    const bytesRead = Math.max(0, Math.min(source.length - realPosition, length));
    if (position === -1 || position === null)
      entry.cursor += bytesRead;
    return bytesRead;
  }
  async writePromise(fd, buffer, offset, length, position) {
    if (typeof buffer === `string`) {
      return this.writeSync(fd, buffer, position);
    } else {
      return this.writeSync(fd, buffer, offset, length, position);
    }
  }
  writeSync(fd, buffer, offset, length, position) {
    const entry = this.fds.get(fd);
    if (typeof entry === `undefined`)
      throw EBADF(`read`);
    throw new Error(`Unimplemented`);
  }
  async closePromise(fd) {
    return this.closeSync(fd);
  }
  closeSync(fd) {
    const entry = this.fds.get(fd);
    if (typeof entry === `undefined`)
      throw EBADF(`read`);
    this.fds.delete(fd);
  }
  createReadStream(p, { encoding } = {}) {
    if (p === null)
      throw new Error(`Unimplemented`);
    const fd = this.openSync(p, `r`);
    const stream$1 = Object.assign(
      new stream.PassThrough({
        emitClose: true,
        autoDestroy: true,
        destroy: (error, callback) => {
          clearImmediate(immediate);
          this.closeSync(fd);
          callback(error);
        }
      }),
      {
        close() {
          stream$1.destroy();
        },
        bytesRead: 0,
        path: p,
        pending: false
      }
    );
    const immediate = setImmediate(async () => {
      try {
        const data = await this.readFilePromise(p, encoding);
        stream$1.bytesRead = data.length;
        stream$1.end(data);
      } catch (error) {
        stream$1.destroy(error);
      }
    });
    return stream$1;
  }
  createWriteStream(p, { encoding } = {}) {
    if (this.readOnly)
      throw EROFS(`open '${p}'`);
    if (p === null)
      throw new Error(`Unimplemented`);
    const chunks = [];
    const fd = this.openSync(p, `w`);
    const stream$1 = Object.assign(
      new stream.PassThrough({
        autoDestroy: true,
        emitClose: true,
        destroy: (error, callback) => {
          try {
            if (error) {
              callback(error);
            } else {
              this.writeFileSync(p, Buffer.concat(chunks), encoding);
              callback(null);
            }
          } catch (err) {
            callback(err);
          } finally {
            this.closeSync(fd);
          }
        }
      }),
      {
        close() {
          stream$1.destroy();
        },
        bytesWritten: 0,
        path: p,
        pending: false
      }
    );
    stream$1.on(`data`, (chunk) => {
      const chunkBuffer = Buffer.from(chunk);
      stream$1.bytesWritten += chunkBuffer.length;
      chunks.push(chunkBuffer);
    });
    return stream$1;
  }
  async realpathPromise(p) {
    return this.realpathSync(p);
  }
  realpathSync(p) {
    const resolvedP = this.resolveFilename(`lstat '${p}'`, p);
    if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP))
      throw ENOENT(`lstat '${p}'`);
    return resolvedP;
  }
  async existsPromise(p) {
    return this.existsSync(p);
  }
  existsSync(p) {
    if (!this.ready)
      throw EBUSY(`archive closed, existsSync '${p}'`);
    if (this.symlinkCount === 0) {
      const resolvedP2 = ppath.resolve(PortablePath.root, p);
      return this.entries.has(resolvedP2) || this.listings.has(resolvedP2);
    }
    let resolvedP;
    try {
      resolvedP = this.resolveFilename(`stat '${p}'`, p, void 0, false);
    } catch (error) {
      return false;
    }
    if (resolvedP === void 0)
      return false;
    return this.entries.has(resolvedP) || this.listings.has(resolvedP);
  }
  async accessPromise(p, mode) {
    return this.accessSync(p, mode);
  }
  accessSync(p, mode = fs.constants.F_OK) {
    const resolvedP = this.resolveFilename(`access '${p}'`, p);
    if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP))
      throw ENOENT(`access '${p}'`);
    if (this.readOnly && mode & fs.constants.W_OK) {
      throw EROFS(`access '${p}'`);
    }
  }
  async statPromise(p, opts = { bigint: false }) {
    if (opts.bigint)
      return this.statSync(p, { bigint: true });
    return this.statSync(p);
  }
  statSync(p, opts = { bigint: false, throwIfNoEntry: true }) {
    const resolvedP = this.resolveFilename(`stat '${p}'`, p, void 0, opts.throwIfNoEntry);
    if (resolvedP === void 0)
      return void 0;
    if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP)) {
      if (opts.throwIfNoEntry === false)
        return void 0;
      throw ENOENT(`stat '${p}'`);
    }
    if (p[p.length - 1] === `/` && !this.listings.has(resolvedP))
      throw ENOTDIR(`stat '${p}'`);
    return this.statImpl(`stat '${p}'`, resolvedP, opts);
  }
  async fstatPromise(fd, opts) {
    return this.fstatSync(fd, opts);
  }
  fstatSync(fd, opts) {
    const entry = this.fds.get(fd);
    if (typeof entry === `undefined`)
      throw EBADF(`fstatSync`);
    const { p } = entry;
    const resolvedP = this.resolveFilename(`stat '${p}'`, p);
    if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP))
      throw ENOENT(`stat '${p}'`);
    if (p[p.length - 1] === `/` && !this.listings.has(resolvedP))
      throw ENOTDIR(`stat '${p}'`);
    return this.statImpl(`fstat '${p}'`, resolvedP, opts);
  }
  async lstatPromise(p, opts = { bigint: false }) {
    if (opts.bigint)
      return this.lstatSync(p, { bigint: true });
    return this.lstatSync(p);
  }
  lstatSync(p, opts = { bigint: false, throwIfNoEntry: true }) {
    const resolvedP = this.resolveFilename(`lstat '${p}'`, p, false, opts.throwIfNoEntry);
    if (resolvedP === void 0)
      return void 0;
    if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP)) {
      if (opts.throwIfNoEntry === false)
        return void 0;
      throw ENOENT(`lstat '${p}'`);
    }
    if (p[p.length - 1] === `/` && !this.listings.has(resolvedP))
      throw ENOTDIR(`lstat '${p}'`);
    return this.statImpl(`lstat '${p}'`, resolvedP, opts);
  }
  statImpl(reason, p, opts = {}) {
    const entry = this.entries.get(p);
    if (typeof entry !== `undefined`) {
      const stat = this.libzip.struct.statS();
      const rc = this.libzip.statIndex(this.zip, entry, 0, 0, stat);
      if (rc === -1)
        throw this.makeLibzipError(this.libzip.getError(this.zip));
      const uid = this.stats.uid;
      const gid = this.stats.gid;
      const size = this.libzip.struct.statSize(stat) >>> 0;
      const blksize = 512;
      const blocks = Math.ceil(size / blksize);
      const mtimeMs = (this.libzip.struct.statMtime(stat) >>> 0) * 1e3;
      const atimeMs = mtimeMs;
      const birthtimeMs = mtimeMs;
      const ctimeMs = mtimeMs;
      const atime = new Date(atimeMs);
      const birthtime = new Date(birthtimeMs);
      const ctime = new Date(ctimeMs);
      const mtime = new Date(mtimeMs);
      const type = this.listings.has(p) ? fs.constants.S_IFDIR : this.isSymbolicLink(entry) ? fs.constants.S_IFLNK : fs.constants.S_IFREG;
      const defaultMode = type === fs.constants.S_IFDIR ? 493 : 420;
      const mode = type | this.getUnixMode(entry, defaultMode) & 511;
      const crc = this.libzip.struct.statCrc(stat);
      const statInstance = Object.assign(new StatEntry(), { uid, gid, size, blksize, blocks, atime, birthtime, ctime, mtime, atimeMs, birthtimeMs, ctimeMs, mtimeMs, mode, crc });
      return opts.bigint === true ? convertToBigIntStats(statInstance) : statInstance;
    }
    if (this.listings.has(p)) {
      const uid = this.stats.uid;
      const gid = this.stats.gid;
      const size = 0;
      const blksize = 512;
      const blocks = 0;
      const atimeMs = this.stats.mtimeMs;
      const birthtimeMs = this.stats.mtimeMs;
      const ctimeMs = this.stats.mtimeMs;
      const mtimeMs = this.stats.mtimeMs;
      const atime = new Date(atimeMs);
      const birthtime = new Date(birthtimeMs);
      const ctime = new Date(ctimeMs);
      const mtime = new Date(mtimeMs);
      const mode = fs.constants.S_IFDIR | 493;
      const crc = 0;
      const statInstance = Object.assign(new StatEntry(), { uid, gid, size, blksize, blocks, atime, birthtime, ctime, mtime, atimeMs, birthtimeMs, ctimeMs, mtimeMs, mode, crc });
      return opts.bigint === true ? convertToBigIntStats(statInstance) : statInstance;
    }
    throw new Error(`Unreachable`);
  }
  getUnixMode(index, defaultMode) {
    const rc = this.libzip.file.getExternalAttributes(this.zip, index, 0, 0, this.libzip.uint08S, this.libzip.uint32S);
    if (rc === -1)
      throw this.makeLibzipError(this.libzip.getError(this.zip));
    const opsys = this.libzip.getValue(this.libzip.uint08S, `i8`) >>> 0;
    if (opsys !== this.libzip.ZIP_OPSYS_UNIX)
      return defaultMode;
    return this.libzip.getValue(this.libzip.uint32S, `i32`) >>> 16;
  }
  registerListing(p) {
    const existingListing = this.listings.get(p);
    if (existingListing)
      return existingListing;
    const parentListing = this.registerListing(ppath.dirname(p));
    parentListing.add(ppath.basename(p));
    const newListing = /* @__PURE__ */ new Set();
    this.listings.set(p, newListing);
    return newListing;
  }
  registerEntry(p, index) {
    const parentListing = this.registerListing(ppath.dirname(p));
    parentListing.add(ppath.basename(p));
    this.entries.set(p, index);
  }
  unregisterListing(p) {
    this.listings.delete(p);
    const parentListing = this.listings.get(ppath.dirname(p));
    parentListing?.delete(ppath.basename(p));
  }
  unregisterEntry(p) {
    this.unregisterListing(p);
    const entry = this.entries.get(p);
    this.entries.delete(p);
    if (typeof entry === `undefined`)
      return;
    this.fileSources.delete(entry);
    if (this.isSymbolicLink(entry)) {
      this.symlinkCount--;
    }
  }
  deleteEntry(p, index) {
    this.unregisterEntry(p);
    const rc = this.libzip.delete(this.zip, index);
    if (rc === -1) {
      throw this.makeLibzipError(this.libzip.getError(this.zip));
    }
  }
  resolveFilename(reason, p, resolveLastComponent = true, throwIfNoEntry = true) {
    if (!this.ready)
      throw EBUSY(`archive closed, ${reason}`);
    let resolvedP = ppath.resolve(PortablePath.root, p);
    if (resolvedP === `/`)
      return PortablePath.root;
    const fileIndex = this.entries.get(resolvedP);
    if (resolveLastComponent && fileIndex !== void 0) {
      if (this.symlinkCount !== 0 && this.isSymbolicLink(fileIndex)) {
        const target = this.getFileSource(fileIndex).toString();
        return this.resolveFilename(reason, ppath.resolve(ppath.dirname(resolvedP), target), true, throwIfNoEntry);
      } else {
        return resolvedP;
      }
    }
    while (true) {
      const parentP = this.resolveFilename(reason, ppath.dirname(resolvedP), true, throwIfNoEntry);
      if (parentP === void 0)
        return parentP;
      const isDir = this.listings.has(parentP);
      const doesExist = this.entries.has(parentP);
      if (!isDir && !doesExist) {
        if (throwIfNoEntry === false)
          return void 0;
        throw ENOENT(reason);
      }
      if (!isDir)
        throw ENOTDIR(reason);
      resolvedP = ppath.resolve(parentP, ppath.basename(resolvedP));
      if (!resolveLastComponent || this.symlinkCount === 0)
        break;
      const index = this.libzip.name.locate(this.zip, resolvedP.slice(1), 0);
      if (index === -1)
        break;
      if (this.isSymbolicLink(index)) {
        const target = this.getFileSource(index).toString();
        resolvedP = ppath.resolve(ppath.dirname(resolvedP), target);
      } else {
        break;
      }
    }
    return resolvedP;
  }
  allocateBuffer(content) {
    if (!Buffer.isBuffer(content))
      content = Buffer.from(content);
    const buffer = this.libzip.malloc(content.byteLength);
    if (!buffer)
      throw new Error(`Couldn't allocate enough memory`);
    const heap = new Uint8Array(this.libzip.HEAPU8.buffer, buffer, content.byteLength);
    heap.set(content);
    return { buffer, byteLength: content.byteLength };
  }
  allocateUnattachedSource(content) {
    const error = this.libzip.struct.errorS();
    const { buffer, byteLength } = this.allocateBuffer(content);
    const source = this.libzip.source.fromUnattachedBuffer(buffer, byteLength, 0, 1, error);
    if (source === 0) {
      this.libzip.free(error);
      throw this.makeLibzipError(error);
    }
    return source;
  }
  allocateSource(content) {
    const { buffer, byteLength } = this.allocateBuffer(content);
    const source = this.libzip.source.fromBuffer(this.zip, buffer, byteLength, 0, 1);
    if (source === 0) {
      this.libzip.free(buffer);
      throw this.makeLibzipError(this.libzip.getError(this.zip));
    }
    return source;
  }
  setFileSource(p, content) {
    const buffer = Buffer.isBuffer(content) ? content : Buffer.from(content);
    const target = ppath.relative(PortablePath.root, p);
    const lzSource = this.allocateSource(content);
    try {
      const newIndex = this.libzip.file.add(this.zip, target, lzSource, this.libzip.ZIP_FL_OVERWRITE);
      if (newIndex === -1)
        throw this.makeLibzipError(this.libzip.getError(this.zip));
      if (this.level !== `mixed`) {
        const method = this.level === 0 ? this.libzip.ZIP_CM_STORE : this.libzip.ZIP_CM_DEFLATE;
        const rc = this.libzip.file.setCompression(this.zip, newIndex, 0, method, this.level);
        if (rc === -1) {
          throw this.makeLibzipError(this.libzip.getError(this.zip));
        }
      }
      this.fileSources.set(newIndex, buffer);
      return newIndex;
    } catch (error) {
      this.libzip.source.free(lzSource);
      throw error;
    }
  }
  isSymbolicLink(index) {
    if (this.symlinkCount === 0)
      return false;
    const attrs = this.libzip.file.getExternalAttributes(this.zip, index, 0, 0, this.libzip.uint08S, this.libzip.uint32S);
    if (attrs === -1)
      throw this.makeLibzipError(this.libzip.getError(this.zip));
    const opsys = this.libzip.getValue(this.libzip.uint08S, `i8`) >>> 0;
    if (opsys !== this.libzip.ZIP_OPSYS_UNIX)
      return false;
    const attributes = this.libzip.getValue(this.libzip.uint32S, `i32`) >>> 16;
    return (attributes & fs.constants.S_IFMT) === fs.constants.S_IFLNK;
  }
  getFileSource(index, opts = { asyncDecompress: false }) {
    const cachedFileSource = this.fileSources.get(index);
    if (typeof cachedFileSource !== `undefined`)
      return cachedFileSource;
    const stat = this.libzip.struct.statS();
    const rc = this.libzip.statIndex(this.zip, index, 0, 0, stat);
    if (rc === -1)
      throw this.makeLibzipError(this.libzip.getError(this.zip));
    const size = this.libzip.struct.statCompSize(stat);
    const compressionMethod = this.libzip.struct.statCompMethod(stat);
    const buffer = this.libzip.malloc(size);
    try {
      const file = this.libzip.fopenIndex(this.zip, index, 0, this.libzip.ZIP_FL_COMPRESSED);
      if (file === 0)
        throw this.makeLibzipError(this.libzip.getError(this.zip));
      try {
        const rc2 = this.libzip.fread(file, buffer, size, 0);
        if (rc2 === -1)
          throw this.makeLibzipError(this.libzip.file.getError(file));
        else if (rc2 < size)
          throw new Error(`Incomplete read`);
        else if (rc2 > size)
          throw new Error(`Overread`);
        const memory = this.libzip.HEAPU8.subarray(buffer, buffer + size);
        const data = Buffer.from(memory);
        if (compressionMethod === 0) {
          this.fileSources.set(index, data);
          return data;
        } else if (opts.asyncDecompress) {
          return new Promise((resolve, reject) => {
            zlib__default.default.inflateRaw(data, (error, result) => {
              if (error) {
                reject(error);
              } else {
                this.fileSources.set(index, result);
                resolve(result);
              }
            });
          });
        } else {
          const decompressedData = zlib__default.default.inflateRawSync(data);
          this.fileSources.set(index, decompressedData);
          return decompressedData;
        }
      } finally {
        this.libzip.fclose(file);
      }
    } finally {
      this.libzip.free(buffer);
    }
  }
  async fchmodPromise(fd, mask) {
    return this.chmodPromise(this.fdToPath(fd, `fchmod`), mask);
  }
  fchmodSync(fd, mask) {
    return this.chmodSync(this.fdToPath(fd, `fchmodSync`), mask);
  }
  async chmodPromise(p, mask) {
    return this.chmodSync(p, mask);
  }
  chmodSync(p, mask) {
    if (this.readOnly)
      throw EROFS(`chmod '${p}'`);
    mask &= 493;
    const resolvedP = this.resolveFilename(`chmod '${p}'`, p, false);
    const entry = this.entries.get(resolvedP);
    if (typeof entry === `undefined`)
      throw new Error(`Assertion failed: The entry should have been registered (${resolvedP})`);
    const oldMod = this.getUnixMode(entry, fs.constants.S_IFREG | 0);
    const newMod = oldMod & ~511 | mask;
    const rc = this.libzip.file.setExternalAttributes(this.zip, entry, 0, 0, this.libzip.ZIP_OPSYS_UNIX, newMod << 16);
    if (rc === -1) {
      throw this.makeLibzipError(this.libzip.getError(this.zip));
    }
  }
  async fchownPromise(fd, uid, gid) {
    return this.chownPromise(this.fdToPath(fd, `fchown`), uid, gid);
  }
  fchownSync(fd, uid, gid) {
    return this.chownSync(this.fdToPath(fd, `fchownSync`), uid, gid);
  }
  async chownPromise(p, uid, gid) {
    return this.chownSync(p, uid, gid);
  }
  chownSync(p, uid, gid) {
    throw new Error(`Unimplemented`);
  }
  async renamePromise(oldP, newP) {
    return this.renameSync(oldP, newP);
  }
  renameSync(oldP, newP) {
    throw new Error(`Unimplemented`);
  }
  async copyFilePromise(sourceP, destP, flags) {
    const { indexSource, indexDest, resolvedDestP } = this.prepareCopyFile(sourceP, destP, flags);
    const source = await this.getFileSource(indexSource, { asyncDecompress: true });
    const newIndex = this.setFileSource(resolvedDestP, source);
    if (newIndex !== indexDest) {
      this.registerEntry(resolvedDestP, newIndex);
    }
  }
  copyFileSync(sourceP, destP, flags = 0) {
    const { indexSource, indexDest, resolvedDestP } = this.prepareCopyFile(sourceP, destP, flags);
    const source = this.getFileSource(indexSource);
    const newIndex = this.setFileSource(resolvedDestP, source);
    if (newIndex !== indexDest) {
      this.registerEntry(resolvedDestP, newIndex);
    }
  }
  prepareCopyFile(sourceP, destP, flags = 0) {
    if (this.readOnly)
      throw EROFS(`copyfile '${sourceP} -> '${destP}'`);
    if ((flags & fs.constants.COPYFILE_FICLONE_FORCE) !== 0)
      throw ENOSYS(`unsupported clone operation`, `copyfile '${sourceP}' -> ${destP}'`);
    const resolvedSourceP = this.resolveFilename(`copyfile '${sourceP} -> ${destP}'`, sourceP);
    const indexSource = this.entries.get(resolvedSourceP);
    if (typeof indexSource === `undefined`)
      throw EINVAL(`copyfile '${sourceP}' -> '${destP}'`);
    const resolvedDestP = this.resolveFilename(`copyfile '${sourceP}' -> ${destP}'`, destP);
    const indexDest = this.entries.get(resolvedDestP);
    if ((flags & (fs.constants.COPYFILE_EXCL | fs.constants.COPYFILE_FICLONE_FORCE)) !== 0 && typeof indexDest !== `undefined`)
      throw EEXIST(`copyfile '${sourceP}' -> '${destP}'`);
    return {
      indexSource,
      resolvedDestP,
      indexDest
    };
  }
  async appendFilePromise(p, content, opts) {
    if (this.readOnly)
      throw EROFS(`open '${p}'`);
    if (typeof opts === `undefined`)
      opts = { flag: `a` };
    else if (typeof opts === `string`)
      opts = { flag: `a`, encoding: opts };
    else if (typeof opts.flag === `undefined`)
      opts = { flag: `a`, ...opts };
    return this.writeFilePromise(p, content, opts);
  }
  appendFileSync(p, content, opts = {}) {
    if (this.readOnly)
      throw EROFS(`open '${p}'`);
    if (typeof opts === `undefined`)
      opts = { flag: `a` };
    else if (typeof opts === `string`)
      opts = { flag: `a`, encoding: opts };
    else if (typeof opts.flag === `undefined`)
      opts = { flag: `a`, ...opts };
    return this.writeFileSync(p, content, opts);
  }
  fdToPath(fd, reason) {
    const path = this.fds.get(fd)?.p;
    if (typeof path === `undefined`)
      throw EBADF(reason);
    return path;
  }
  async writeFilePromise(p, content, opts) {
    const { encoding, mode, index, resolvedP } = this.prepareWriteFile(p, opts);
    if (index !== void 0 && typeof opts === `object` && opts.flag && opts.flag.includes(`a`))
      content = Buffer.concat([await this.getFileSource(index, { asyncDecompress: true }), Buffer.from(content)]);
    if (encoding !== null)
      content = content.toString(encoding);
    const newIndex = this.setFileSource(resolvedP, content);
    if (newIndex !== index)
      this.registerEntry(resolvedP, newIndex);
    if (mode !== null) {
      await this.chmodPromise(resolvedP, mode);
    }
  }
  writeFileSync(p, content, opts) {
    const { encoding, mode, index, resolvedP } = this.prepareWriteFile(p, opts);
    if (index !== void 0 && typeof opts === `object` && opts.flag && opts.flag.includes(`a`))
      content = Buffer.concat([this.getFileSource(index), Buffer.from(content)]);
    if (encoding !== null)
      content = content.toString(encoding);
    const newIndex = this.setFileSource(resolvedP, content);
    if (newIndex !== index)
      this.registerEntry(resolvedP, newIndex);
    if (mode !== null) {
      this.chmodSync(resolvedP, mode);
    }
  }
  prepareWriteFile(p, opts) {
    if (typeof p === `number`)
      p = this.fdToPath(p, `read`);
    if (this.readOnly)
      throw EROFS(`open '${p}'`);
    const resolvedP = this.resolveFilename(`open '${p}'`, p);
    if (this.listings.has(resolvedP))
      throw EISDIR(`open '${p}'`);
    let encoding = null, mode = null;
    if (typeof opts === `string`) {
      encoding = opts;
    } else if (typeof opts === `object`) {
      ({
        encoding = null,
        mode = null
      } = opts);
    }
    const index = this.entries.get(resolvedP);
    return {
      encoding,
      mode,
      resolvedP,
      index
    };
  }
  async unlinkPromise(p) {
    return this.unlinkSync(p);
  }
  unlinkSync(p) {
    if (this.readOnly)
      throw EROFS(`unlink '${p}'`);
    const resolvedP = this.resolveFilename(`unlink '${p}'`, p);
    if (this.listings.has(resolvedP))
      throw EISDIR(`unlink '${p}'`);
    const index = this.entries.get(resolvedP);
    if (typeof index === `undefined`)
      throw EINVAL(`unlink '${p}'`);
    this.deleteEntry(resolvedP, index);
  }
  async utimesPromise(p, atime, mtime) {
    return this.utimesSync(p, atime, mtime);
  }
  utimesSync(p, atime, mtime) {
    if (this.readOnly)
      throw EROFS(`utimes '${p}'`);
    const resolvedP = this.resolveFilename(`utimes '${p}'`, p);
    this.utimesImpl(resolvedP, mtime);
  }
  async lutimesPromise(p, atime, mtime) {
    return this.lutimesSync(p, atime, mtime);
  }
  lutimesSync(p, atime, mtime) {
    if (this.readOnly)
      throw EROFS(`lutimes '${p}'`);
    const resolvedP = this.resolveFilename(`utimes '${p}'`, p, false);
    this.utimesImpl(resolvedP, mtime);
  }
  utimesImpl(resolvedP, mtime) {
    if (this.listings.has(resolvedP)) {
      if (!this.entries.has(resolvedP))
        this.hydrateDirectory(resolvedP);
    }
    const entry = this.entries.get(resolvedP);
    if (entry === void 0)
      throw new Error(`Unreachable`);
    const rc = this.libzip.file.setMtime(this.zip, entry, 0, toUnixTimestamp(mtime), 0);
    if (rc === -1) {
      throw this.makeLibzipError(this.libzip.getError(this.zip));
    }
  }
  async mkdirPromise(p, opts) {
    return this.mkdirSync(p, opts);
  }
  mkdirSync(p, { mode = 493, recursive = false } = {}) {
    if (recursive)
      return this.mkdirpSync(p, { chmod: mode });
    if (this.readOnly)
      throw EROFS(`mkdir '${p}'`);
    const resolvedP = this.resolveFilename(`mkdir '${p}'`, p);
    if (this.entries.has(resolvedP) || this.listings.has(resolvedP))
      throw EEXIST(`mkdir '${p}'`);
    this.hydrateDirectory(resolvedP);
    this.chmodSync(resolvedP, mode);
    return void 0;
  }
  async rmdirPromise(p, opts) {
    return this.rmdirSync(p, opts);
  }
  rmdirSync(p, { recursive = false } = {}) {
    if (this.readOnly)
      throw EROFS(`rmdir '${p}'`);
    if (recursive) {
      this.removeSync(p);
      return;
    }
    const resolvedP = this.resolveFilename(`rmdir '${p}'`, p);
    const directoryListing = this.listings.get(resolvedP);
    if (!directoryListing)
      throw ENOTDIR(`rmdir '${p}'`);
    if (directoryListing.size > 0)
      throw ENOTEMPTY(`rmdir '${p}'`);
    const index = this.entries.get(resolvedP);
    if (typeof index === `undefined`)
      throw EINVAL(`rmdir '${p}'`);
    this.deleteEntry(p, index);
  }
  async rmPromise(p, opts) {
    return this.rmSync(p, opts);
  }
  rmSync(p, { recursive = false } = {}) {
    if (this.readOnly)
      throw EROFS(`rm '${p}'`);
    if (recursive) {
      this.removeSync(p);
      return;
    }
    const resolvedP = this.resolveFilename(`rm '${p}'`, p);
    const directoryListing = this.listings.get(resolvedP);
    if (!directoryListing)
      throw ENOTDIR(`rm '${p}'`);
    if (directoryListing.size > 0)
      throw ENOTEMPTY(`rm '${p}'`);
    const index = this.entries.get(resolvedP);
    if (typeof index === `undefined`)
      throw EINVAL(`rm '${p}'`);
    this.deleteEntry(p, index);
  }
  hydrateDirectory(resolvedP) {
    const index = this.libzip.dir.add(this.zip, ppath.relative(PortablePath.root, resolvedP));
    if (index === -1)
      throw this.makeLibzipError(this.libzip.getError(this.zip));
    this.registerListing(resolvedP);
    this.registerEntry(resolvedP, index);
    return index;
  }
  async linkPromise(existingP, newP) {
    return this.linkSync(existingP, newP);
  }
  linkSync(existingP, newP) {
    throw EOPNOTSUPP(`link '${existingP}' -> '${newP}'`);
  }
  async symlinkPromise(target, p) {
    return this.symlinkSync(target, p);
  }
  symlinkSync(target, p) {
    if (this.readOnly)
      throw EROFS(`symlink '${target}' -> '${p}'`);
    const resolvedP = this.resolveFilename(`symlink '${target}' -> '${p}'`, p);
    if (this.listings.has(resolvedP))
      throw EISDIR(`symlink '${target}' -> '${p}'`);
    if (this.entries.has(resolvedP))
      throw EEXIST(`symlink '${target}' -> '${p}'`);
    const index = this.setFileSource(resolvedP, target);
    this.registerEntry(resolvedP, index);
    const rc = this.libzip.file.setExternalAttributes(this.zip, index, 0, 0, this.libzip.ZIP_OPSYS_UNIX, (fs.constants.S_IFLNK | 511) << 16);
    if (rc === -1)
      throw this.makeLibzipError(this.libzip.getError(this.zip));
    this.symlinkCount += 1;
  }
  async readFilePromise(p, encoding) {
    if (typeof encoding === `object`)
      encoding = encoding ? encoding.encoding : void 0;
    const data = await this.readFileBuffer(p, { asyncDecompress: true });
    return encoding ? data.toString(encoding) : data;
  }
  readFileSync(p, encoding) {
    if (typeof encoding === `object`)
      encoding = encoding ? encoding.encoding : void 0;
    const data = this.readFileBuffer(p);
    return encoding ? data.toString(encoding) : data;
  }
  readFileBuffer(p, opts = { asyncDecompress: false }) {
    if (typeof p === `number`)
      p = this.fdToPath(p, `read`);
    const resolvedP = this.resolveFilename(`open '${p}'`, p);
    if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP))
      throw ENOENT(`open '${p}'`);
    if (p[p.length - 1] === `/` && !this.listings.has(resolvedP))
      throw ENOTDIR(`open '${p}'`);
    if (this.listings.has(resolvedP))
      throw EISDIR(`read`);
    const entry = this.entries.get(resolvedP);
    if (entry === void 0)
      throw new Error(`Unreachable`);
    return this.getFileSource(entry, opts);
  }
  async readdirPromise(p, opts) {
    return this.readdirSync(p, opts);
  }
  readdirSync(p, opts) {
    const resolvedP = this.resolveFilename(`scandir '${p}'`, p);
    if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP))
      throw ENOENT(`scandir '${p}'`);
    const directoryListing = this.listings.get(resolvedP);
    if (!directoryListing)
      throw ENOTDIR(`scandir '${p}'`);
    if (opts?.recursive) {
      if (opts?.withFileTypes) {
        const entries = Array.from(directoryListing, (name) => {
          return Object.assign(this.statImpl(`lstat`, ppath.join(p, name)), {
            name,
            path: PortablePath.dot
          });
        });
        for (const entry of entries) {
          if (!entry.isDirectory())
            continue;
          const subPath = ppath.join(entry.path, entry.name);
          const subListing = this.listings.get(ppath.join(resolvedP, subPath));
          for (const child of subListing) {
            entries.push(Object.assign(this.statImpl(`lstat`, ppath.join(p, subPath, child)), {
              name: child,
              path: subPath
            }));
          }
        }
        return entries;
      } else {
        const entries = [...directoryListing];
        for (const subPath of entries) {
          const subListing = this.listings.get(ppath.join(resolvedP, subPath));
          if (typeof subListing === `undefined`)
            continue;
          for (const child of subListing) {
            entries.push(ppath.join(subPath, child));
          }
        }
        return entries;
      }
    } else if (opts?.withFileTypes) {
      return Array.from(directoryListing, (name) => {
        return Object.assign(this.statImpl(`lstat`, ppath.join(p, name)), {
          name,
          path: void 0
        });
      });
    } else {
      return [...directoryListing];
    }
  }
  async readlinkPromise(p) {
    const entry = this.prepareReadlink(p);
    return (await this.getFileSource(entry, { asyncDecompress: true })).toString();
  }
  readlinkSync(p) {
    const entry = this.prepareReadlink(p);
    return this.getFileSource(entry).toString();
  }
  prepareReadlink(p) {
    const resolvedP = this.resolveFilename(`readlink '${p}'`, p, false);
    if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP))
      throw ENOENT(`readlink '${p}'`);
    if (p[p.length - 1] === `/` && !this.listings.has(resolvedP))
      throw ENOTDIR(`open '${p}'`);
    if (this.listings.has(resolvedP))
      throw EINVAL(`readlink '${p}'`);
    const entry = this.entries.get(resolvedP);
    if (entry === void 0)
      throw new Error(`Unreachable`);
    if (!this.isSymbolicLink(entry))
      throw EINVAL(`readlink '${p}'`);
    return entry;
  }
  async truncatePromise(p, len = 0) {
    const resolvedP = this.resolveFilename(`open '${p}'`, p);
    const index = this.entries.get(resolvedP);
    if (typeof index === `undefined`)
      throw EINVAL(`open '${p}'`);
    const source = await this.getFileSource(index, { asyncDecompress: true });
    const truncated = Buffer.alloc(len, 0);
    source.copy(truncated);
    return await this.writeFilePromise(p, truncated);
  }
  truncateSync(p, len = 0) {
    const resolvedP = this.resolveFilename(`open '${p}'`, p);
    const index = this.entries.get(resolvedP);
    if (typeof index === `undefined`)
      throw EINVAL(`open '${p}'`);
    const source = this.getFileSource(index);
    const truncated = Buffer.alloc(len, 0);
    source.copy(truncated);
    return this.writeFileSync(p, truncated);
  }
  async ftruncatePromise(fd, len) {
    return this.truncatePromise(this.fdToPath(fd, `ftruncate`), len);
  }
  ftruncateSync(fd, len) {
    return this.truncateSync(this.fdToPath(fd, `ftruncateSync`), len);
  }
  watch(p, a, b) {
    let persistent;
    switch (typeof a) {
      case `function`:
      case `string`:
      case `undefined`:
        {
          persistent = true;
        }
        break;
      default:
        {
          ({ persistent = true } = a);
        }
        break;
    }
    if (!persistent)
      return { on: () => {
      }, close: () => {
      } };
    const interval = setInterval(() => {
    }, 24 * 60 * 60 * 1e3);
    return { on: () => {
    }, close: () => {
      clearInterval(interval);
    } };
  }
  watchFile(p, a, b) {
    const resolvedP = ppath.resolve(PortablePath.root, p);
    return watchFile(this, resolvedP, a, b);
  }
  unwatchFile(p, cb) {
    const resolvedP = ppath.resolve(PortablePath.root, p);
    return unwatchFile(this, resolvedP, cb);
  }
}

setFactory(() => {
  const emZip = createModule();
  return makeInterface(emZip);
});

var ErrorCode = /* @__PURE__ */ ((ErrorCode2) => {
  ErrorCode2["API_ERROR"] = `API_ERROR`;
  ErrorCode2["BUILTIN_NODE_RESOLUTION_FAILED"] = `BUILTIN_NODE_RESOLUTION_FAILED`;
  ErrorCode2["EXPORTS_RESOLUTION_FAILED"] = `EXPORTS_RESOLUTION_FAILED`;
  ErrorCode2["MISSING_DEPENDENCY"] = `MISSING_DEPENDENCY`;
  ErrorCode2["MISSING_PEER_DEPENDENCY"] = `MISSING_PEER_DEPENDENCY`;
  ErrorCode2["QUALIFIED_PATH_RESOLUTION_FAILED"] = `QUALIFIED_PATH_RESOLUTION_FAILED`;
  ErrorCode2["INTERNAL"] = `INTERNAL`;
  ErrorCode2["UNDECLARED_DEPENDENCY"] = `UNDECLARED_DEPENDENCY`;
  ErrorCode2["UNSUPPORTED"] = `UNSUPPORTED`;
  return ErrorCode2;
})(ErrorCode || {});
const MODULE_NOT_FOUND_ERRORS = /* @__PURE__ */ new Set([
  "BUILTIN_NODE_RESOLUTION_FAILED" /* BUILTIN_NODE_RESOLUTION_FAILED */,
  "MISSING_DEPENDENCY" /* MISSING_DEPENDENCY */,
  "MISSING_PEER_DEPENDENCY" /* MISSING_PEER_DEPENDENCY */,
  "QUALIFIED_PATH_RESOLUTION_FAILED" /* QUALIFIED_PATH_RESOLUTION_FAILED */,
  "UNDECLARED_DEPENDENCY" /* UNDECLARED_DEPENDENCY */
]);
function makeError(pnpCode, message, data = {}, code) {
  code ??= MODULE_NOT_FOUND_ERRORS.has(pnpCode) ? `MODULE_NOT_FOUND` : pnpCode;
  const propertySpec = {
    configurable: true,
    writable: true,
    enumerable: false
  };
  return Object.defineProperties(new Error(message), {
    code: {
      ...propertySpec,
      value: code
    },
    pnpCode: {
      ...propertySpec,
      value: pnpCode
    },
    data: {
      ...propertySpec,
      value: data
    }
  });
}
function getIssuerModule(parent) {
  let issuer = parent;
  while (issuer && (issuer.id === `[eval]` || issuer.id === `<repl>` || !issuer.filename))
    issuer = issuer.parent;
  return issuer || null;
}
function getPathForDisplay(p) {
  return npath.normalize(npath.fromPortablePath(p));
}

const [major, minor] = process.versions.node.split(`.`).map((value) => parseInt(value, 10));
const WATCH_MODE_MESSAGE_USES_ARRAYS = major > 19 || major === 19 && minor >= 2 || major === 18 && minor >= 13;

function readPackageScope(checkPath) {
  const rootSeparatorIndex = checkPath.indexOf(npath.sep);
  let separatorIndex;
  do {
    separatorIndex = checkPath.lastIndexOf(npath.sep);
    checkPath = checkPath.slice(0, separatorIndex);
    if (checkPath.endsWith(`${npath.sep}node_modules`))
      return false;
    const pjson = readPackage(checkPath + npath.sep);
    if (pjson) {
      return {
        data: pjson,
        path: checkPath
      };
    }
  } while (separatorIndex > rootSeparatorIndex);
  return false;
}
function readPackage(requestPath) {
  const jsonPath = npath.resolve(requestPath, `package.json`);
  if (!fs__default.default.existsSync(jsonPath))
    return null;
  return JSON.parse(fs__default.default.readFileSync(jsonPath, `utf8`));
}
function ERR_REQUIRE_ESM(filename, parentPath = null) {
  const basename = parentPath && path__default.default.basename(filename) === path__default.default.basename(parentPath) ? filename : path__default.default.basename(filename);
  const msg = `require() of ES Module ${filename}${parentPath ? ` from ${parentPath}` : ``} not supported.
Instead change the require of ${basename} in ${parentPath} to a dynamic import() which is available in all CommonJS modules.`;
  const err = new Error(msg);
  err.code = `ERR_REQUIRE_ESM`;
  return err;
}
function reportRequiredFilesToWatchMode(files) {
  if (process.env.WATCH_REPORT_DEPENDENCIES && process.send) {
    files = files.map((filename) => npath.fromPortablePath(VirtualFS.resolveVirtual(npath.toPortablePath(filename))));
    if (WATCH_MODE_MESSAGE_USES_ARRAYS) {
      process.send({ "watch:require": files });
    } else {
      for (const filename of files) {
        process.send({ "watch:require": filename });
      }
    }
  }
}

function applyPatch(pnpapi, opts) {
  let enableNativeHooks = true;
  process.versions.pnp = String(pnpapi.VERSIONS.std);
  const moduleExports = require$$0__default.default;
  moduleExports.findPnpApi = (lookupSource) => {
    const lookupPath = lookupSource instanceof URL ? url.fileURLToPath(lookupSource) : lookupSource;
    const apiPath = opts.manager.findApiPathFor(lookupPath);
    if (apiPath === null)
      return null;
    const apiEntry = opts.manager.getApiEntry(apiPath, true);
    return apiEntry.instance.findPackageLocator(lookupPath) ? apiEntry.instance : null;
  };
  function getRequireStack(parent) {
    const requireStack = [];
    for (let cursor = parent; cursor; cursor = cursor.parent)
      requireStack.push(cursor.filename || cursor.id);
    return requireStack;
  }
  const originalModuleLoad = require$$0.Module._load;
  require$$0.Module._load = function(request, parent, isMain) {
    if (request === `pnpapi`) {
      const parentApiPath = opts.manager.getApiPathFromParent(parent);
      if (parentApiPath) {
        return opts.manager.getApiEntry(parentApiPath, true).instance;
      }
    }
    return originalModuleLoad.call(require$$0.Module, request, parent, isMain);
  };
  function getIssuerSpecsFromPaths(paths) {
    return paths.map((path) => ({
      apiPath: opts.manager.findApiPathFor(path),
      path,
      module: null
    }));
  }
  function getIssuerSpecsFromModule(module) {
    if (module && module.id !== `<repl>` && module.id !== `internal/preload` && !module.parent && !module.filename && module.paths.length > 0) {
      return [{
        apiPath: opts.manager.findApiPathFor(module.paths[0]),
        path: module.paths[0],
        module
      }];
    }
    const issuer = getIssuerModule(module);
    if (issuer !== null) {
      const path = npath.dirname(issuer.filename);
      const apiPath = opts.manager.getApiPathFromParent(issuer);
      return [{ apiPath, path, module }];
    } else {
      const path = process.cwd();
      const apiPath = opts.manager.findApiPathFor(npath.join(path, `[file]`)) ?? opts.manager.getApiPathFromParent(null);
      return [{ apiPath, path, module }];
    }
  }
  function makeFakeParent(path) {
    const fakeParent = new require$$0.Module(``);
    const fakeFilePath = npath.join(path, `[file]`);
    fakeParent.paths = require$$0.Module._nodeModulePaths(fakeFilePath);
    return fakeParent;
  }
  const pathRegExp = /^(?![a-zA-Z]:[\\/]|\\\\|\.{0,2}(?:\/|$))((?:@[^/]+\/)?[^/]+)\/*(.*|)$/;
  const originalModuleResolveFilename = require$$0.Module._resolveFilename;
  require$$0.Module._resolveFilename = function(request, parent, isMain, options) {
    if (require$$0.isBuiltin(request))
      return request;
    if (!enableNativeHooks)
      return originalModuleResolveFilename.call(require$$0.Module, request, parent, isMain, options);
    if (options && options.plugnplay === false) {
      const { plugnplay, ...forwardedOptions } = options;
      try {
        enableNativeHooks = false;
        return originalModuleResolveFilename.call(require$$0.Module, request, parent, isMain, forwardedOptions);
      } finally {
        enableNativeHooks = true;
      }
    }
    if (options) {
      const optionNames = new Set(Object.keys(options));
      optionNames.delete(`paths`);
      optionNames.delete(`plugnplay`);
      if (optionNames.size > 0) {
        throw makeError(
          ErrorCode.UNSUPPORTED,
          `Some options passed to require() aren't supported by PnP yet (${Array.from(optionNames).join(`, `)})`
        );
      }
    }
    const issuerSpecs = options && options.paths ? getIssuerSpecsFromPaths(options.paths) : getIssuerSpecsFromModule(parent);
    if (request.match(pathRegExp) === null) {
      const parentDirectory = parent?.filename != null ? npath.dirname(parent.filename) : null;
      const absoluteRequest = npath.isAbsolute(request) ? request : parentDirectory !== null ? npath.resolve(parentDirectory, request) : null;
      if (absoluteRequest !== null) {
        const apiPath = parent && parentDirectory === npath.dirname(absoluteRequest) ? opts.manager.getApiPathFromParent(parent) : opts.manager.findApiPathFor(absoluteRequest);
        if (apiPath !== null) {
          issuerSpecs.unshift({
            apiPath,
            path: parentDirectory,
            module: null
          });
        }
      }
    }
    let firstError;
    for (const { apiPath, path, module } of issuerSpecs) {
      let resolution;
      const issuerApi = apiPath !== null ? opts.manager.getApiEntry(apiPath, true).instance : null;
      try {
        if (issuerApi !== null) {
          resolution = issuerApi.resolveRequest(request, path !== null ? `${path}/` : null);
        } else {
          if (path === null)
            throw new Error(`Assertion failed: Expected the path to be set`);
          resolution = originalModuleResolveFilename.call(require$$0.Module, request, module || makeFakeParent(path), isMain);
        }
      } catch (error) {
        firstError = firstError || error;
        continue;
      }
      if (resolution !== null) {
        return resolution;
      }
    }
    const requireStack = getRequireStack(parent);
    Object.defineProperty(firstError, `requireStack`, {
      configurable: true,
      writable: true,
      enumerable: false,
      value: requireStack
    });
    if (requireStack.length > 0)
      firstError.message += `
Require stack:
- ${requireStack.join(`
- `)}`;
    if (typeof firstError.pnpCode === `string`)
      Error.captureStackTrace(firstError);
    throw firstError;
  };
  const originalFindPath = require$$0.Module._findPath;
  require$$0.Module._findPath = function(request, paths, isMain) {
    if (request === `pnpapi`)
      return false;
    if (!enableNativeHooks)
      return originalFindPath.call(require$$0.Module, request, paths, isMain);
    const isAbsolute = npath.isAbsolute(request);
    if (isAbsolute)
      paths = [``];
    else if (!paths || paths.length === 0)
      return false;
    for (const path of paths) {
      let resolution;
      try {
        const pnpApiPath = opts.manager.findApiPathFor(isAbsolute ? request : path);
        if (pnpApiPath !== null) {
          const api = opts.manager.getApiEntry(pnpApiPath, true).instance;
          resolution = api.resolveRequest(request, path) || false;
        } else {
          resolution = originalFindPath.call(require$$0.Module, request, [path], isMain);
        }
      } catch (error) {
        continue;
      }
      if (resolution) {
        return resolution;
      }
    }
    return false;
  };
  const originalExtensionJSFunction = require$$0.Module._extensions[`.js`];
  require$$0.Module._extensions[`.js`] = function(module, filename) {
    if (filename.endsWith(`.js`)) {
      const pkg = readPackageScope(filename);
      if (pkg && pkg.data?.type === `module`) {
        const err = ERR_REQUIRE_ESM(filename, module.parent?.filename);
        Error.captureStackTrace(err);
        throw err;
      }
    }
    originalExtensionJSFunction.call(this, module, filename);
  };
  const originalDlopen = process.dlopen;
  process.dlopen = function(...args) {
    const [module, filename, ...rest] = args;
    return originalDlopen.call(
      this,
      module,
      npath.fromPortablePath(VirtualFS.resolveVirtual(npath.toPortablePath(filename))),
      ...rest
    );
  };
  const originalEmit = process.emit;
  process.emit = function(name, data, ...args) {
    if (name === `warning` && typeof data === `object` && data.name === `ExperimentalWarning` && (data.message.includes(`--experimental-loader`) || data.message.includes(`Custom ESM Loaders is an experimental feature`)))
      return false;
    return originalEmit.apply(process, arguments);
  };
  patchFs(fs__default.default, new PosixFS(opts.fakeFs));
}

function hydrateRuntimeState(data, { basePath }) {
  const portablePath = npath.toPortablePath(basePath);
  const absolutePortablePath = ppath.resolve(portablePath);
  const ignorePattern = data.ignorePatternData !== null ? new RegExp(data.ignorePatternData) : null;
  const packageLocatorsByLocations = /* @__PURE__ */ new Map();
  const packageRegistry = new Map(data.packageRegistryData.map(([packageName, packageStoreData]) => {
    return [packageName, new Map(packageStoreData.map(([packageReference, packageInformationData]) => {
      if (packageName === null !== (packageReference === null))
        throw new Error(`Assertion failed: The name and reference should be null, or neither should`);
      const discardFromLookup = packageInformationData.discardFromLookup ?? false;
      const packageLocator = { name: packageName, reference: packageReference };
      const entry = packageLocatorsByLocations.get(packageInformationData.packageLocation);
      if (!entry) {
        packageLocatorsByLocations.set(packageInformationData.packageLocation, { locator: packageLocator, discardFromLookup });
      } else {
        entry.discardFromLookup = entry.discardFromLookup && discardFromLookup;
        if (!discardFromLookup) {
          entry.locator = packageLocator;
        }
      }
      let resolvedPackageLocation = null;
      return [packageReference, {
        packageDependencies: new Map(packageInformationData.packageDependencies),
        packagePeers: new Set(packageInformationData.packagePeers),
        linkType: packageInformationData.linkType,
        discardFromLookup,
        get packageLocation() {
          return resolvedPackageLocation || (resolvedPackageLocation = ppath.join(absolutePortablePath, packageInformationData.packageLocation));
        }
      }];
    }))];
  }));
  const fallbackExclusionList = new Map(data.fallbackExclusionList.map(([packageName, packageReferences]) => {
    return [packageName, new Set(packageReferences)];
  }));
  const fallbackPool = new Map(data.fallbackPool);
  const dependencyTreeRoots = data.dependencyTreeRoots;
  const enableTopLevelFallback = data.enableTopLevelFallback;
  return {
    basePath: portablePath,
    dependencyTreeRoots,
    enableTopLevelFallback,
    fallbackExclusionList,
    fallbackPool,
    ignorePattern,
    packageLocatorsByLocations,
    packageRegistry
  };
}

const ArrayIsArray = Array.isArray;
const JSONStringify = JSON.stringify;
const ObjectGetOwnPropertyNames = Object.getOwnPropertyNames;
const ObjectPrototypeHasOwnProperty = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop);
const RegExpPrototypeExec = (obj, string) => RegExp.prototype.exec.call(obj, string);
const RegExpPrototypeSymbolReplace = (obj, ...rest) => RegExp.prototype[Symbol.replace].apply(obj, rest);
const StringPrototypeEndsWith = (str, ...rest) => String.prototype.endsWith.apply(str, rest);
const StringPrototypeIncludes = (str, ...rest) => String.prototype.includes.apply(str, rest);
const StringPrototypeLastIndexOf = (str, ...rest) => String.prototype.lastIndexOf.apply(str, rest);
const StringPrototypeIndexOf = (str, ...rest) => String.prototype.indexOf.apply(str, rest);
const StringPrototypeReplace = (str, ...rest) => String.prototype.replace.apply(str, rest);
const StringPrototypeSlice = (str, ...rest) => String.prototype.slice.apply(str, rest);
const StringPrototypeStartsWith = (str, ...rest) => String.prototype.startsWith.apply(str, rest);
const SafeMap = Map;
const JSONParse = JSON.parse;

function createErrorType(code, messageCreator, errorType) {
  return class extends errorType {
    constructor(...args) {
      super(messageCreator(...args));
      this.code = code;
      this.name = `${errorType.name} [${code}]`;
    }
  };
}
const ERR_PACKAGE_IMPORT_NOT_DEFINED = createErrorType(
  `ERR_PACKAGE_IMPORT_NOT_DEFINED`,
  (specifier, packagePath, base) => {
    return `Package import specifier "${specifier}" is not defined${packagePath ? ` in package ${packagePath}package.json` : ``} imported from ${base}`;
  },
  TypeError
);
const ERR_INVALID_MODULE_SPECIFIER = createErrorType(
  `ERR_INVALID_MODULE_SPECIFIER`,
  (request, reason, base = void 0) => {
    return `Invalid module "${request}" ${reason}${base ? ` imported from ${base}` : ``}`;
  },
  TypeError
);
const ERR_INVALID_PACKAGE_TARGET = createErrorType(
  `ERR_INVALID_PACKAGE_TARGET`,
  (pkgPath, key, target, isImport = false, base = void 0) => {
    const relError = typeof target === `string` && !isImport && target.length && !StringPrototypeStartsWith(target, `./`);
    if (key === `.`) {
      assert__default.default(isImport === false);
      return `Invalid "exports" main target ${JSONStringify(target)} defined in the package config ${pkgPath}package.json${base ? ` imported from ${base}` : ``}${relError ? `; targets must start with "./"` : ``}`;
    }
    return `Invalid "${isImport ? `imports` : `exports`}" target ${JSONStringify(
      target
    )} defined for '${key}' in the package config ${pkgPath}package.json${base ? ` imported from ${base}` : ``}${relError ? `; targets must start with "./"` : ``}`;
  },
  Error
);
const ERR_INVALID_PACKAGE_CONFIG = createErrorType(
  `ERR_INVALID_PACKAGE_CONFIG`,
  (path, base, message) => {
    return `Invalid package config ${path}${base ? ` while importing ${base}` : ``}${message ? `. ${message}` : ``}`;
  },
  Error
);
const ERR_PACKAGE_PATH_NOT_EXPORTED = createErrorType(
  "ERR_PACKAGE_PATH_NOT_EXPORTED",
  (pkgPath, subpath, base = void 0) => {
    if (subpath === ".")
      return `No "exports" main defined in ${pkgPath}package.json${base ? ` imported from ${base}` : ""}`;
    return `Package subpath '${subpath}' is not defined by "exports" in ${pkgPath}package.json${base ? ` imported from ${base}` : ""}`;
  },
  Error
);

function filterOwnProperties(source, keys) {
  const filtered = /* @__PURE__ */ Object.create(null);
  for (let i = 0; i < keys.length; i++) {
    const key = keys[i];
    if (ObjectPrototypeHasOwnProperty(source, key)) {
      filtered[key] = source[key];
    }
  }
  return filtered;
}

const packageJSONCache = new SafeMap();
function getPackageConfig(path, specifier, base, readFileSyncFn) {
  const existing = packageJSONCache.get(path);
  if (existing !== void 0) {
    return existing;
  }
  const source = readFileSyncFn(path);
  if (source === void 0) {
    const packageConfig2 = {
      pjsonPath: path,
      exists: false,
      main: void 0,
      name: void 0,
      type: "none",
      exports: void 0,
      imports: void 0
    };
    packageJSONCache.set(path, packageConfig2);
    return packageConfig2;
  }
  let packageJSON;
  try {
    packageJSON = JSONParse(source);
  } catch (error) {
    throw new ERR_INVALID_PACKAGE_CONFIG(
      path,
      (base ? `"${specifier}" from ` : "") + url.fileURLToPath(base || specifier),
      error.message
    );
  }
  let { imports, main, name, type } = filterOwnProperties(packageJSON, [
    "imports",
    "main",
    "name",
    "type"
  ]);
  const exports = ObjectPrototypeHasOwnProperty(packageJSON, "exports") ? packageJSON.exports : void 0;
  if (typeof imports !== "object" || imports === null) {
    imports = void 0;
  }
  if (typeof main !== "string") {
    main = void 0;
  }
  if (typeof name !== "string") {
    name = void 0;
  }
  if (type !== "module" && type !== "commonjs") {
    type = "none";
  }
  const packageConfig = {
    pjsonPath: path,
    exists: true,
    main,
    name,
    type,
    exports,
    imports
  };
  packageJSONCache.set(path, packageConfig);
  return packageConfig;
}
function getPackageScopeConfig(resolved, readFileSyncFn) {
  let packageJSONUrl = new URL("./package.json", resolved);
  while (true) {
    const packageJSONPath2 = packageJSONUrl.pathname;
    if (StringPrototypeEndsWith(packageJSONPath2, "node_modules/package.json")) {
      break;
    }
    const packageConfig2 = getPackageConfig(
      url.fileURLToPath(packageJSONUrl),
      resolved,
      void 0,
      readFileSyncFn
    );
    if (packageConfig2.exists) {
      return packageConfig2;
    }
    const lastPackageJSONUrl = packageJSONUrl;
    packageJSONUrl = new URL("../package.json", packageJSONUrl);
    if (packageJSONUrl.pathname === lastPackageJSONUrl.pathname) {
      break;
    }
  }
  const packageJSONPath = url.fileURLToPath(packageJSONUrl);
  const packageConfig = {
    pjsonPath: packageJSONPath,
    exists: false,
    main: void 0,
    name: void 0,
    type: "none",
    exports: void 0,
    imports: void 0
  };
  packageJSONCache.set(packageJSONPath, packageConfig);
  return packageConfig;
}

function throwImportNotDefined(specifier, packageJSONUrl, base) {
  throw new ERR_PACKAGE_IMPORT_NOT_DEFINED(
    specifier,
    packageJSONUrl && url.fileURLToPath(new URL(".", packageJSONUrl)),
    url.fileURLToPath(base)
  );
}
function throwInvalidSubpath(subpath, packageJSONUrl, internal, base) {
  const reason = `request is not a valid subpath for the "${internal ? "imports" : "exports"}" resolution of ${url.fileURLToPath(packageJSONUrl)}`;
  throw new ERR_INVALID_MODULE_SPECIFIER(
    subpath,
    reason,
    base && url.fileURLToPath(base)
  );
}
function throwInvalidPackageTarget(subpath, target, packageJSONUrl, internal, base) {
  if (typeof target === "object" && target !== null) {
    target = JSONStringify(target, null, "");
  } else {
    target = `${target}`;
  }
  throw new ERR_INVALID_PACKAGE_TARGET(
    url.fileURLToPath(new URL(".", packageJSONUrl)),
    subpath,
    target,
    internal,
    base && url.fileURLToPath(base)
  );
}
const invalidSegmentRegEx = /(^|\\|\/)((\.|%2e)(\.|%2e)?|(n|%6e|%4e)(o|%6f|%4f)(d|%64|%44)(e|%65|%45)(_|%5f)(m|%6d|%4d)(o|%6f|%4f)(d|%64|%44)(u|%75|%55)(l|%6c|%4c)(e|%65|%45)(s|%73|%53))(\\|\/|$)/i;
const patternRegEx = /\*/g;
function resolvePackageTargetString(target, subpath, match, packageJSONUrl, base, pattern, internal, conditions) {
  if (subpath !== "" && !pattern && target[target.length - 1] !== "/")
    throwInvalidPackageTarget(match, target, packageJSONUrl, internal, base);
  if (!StringPrototypeStartsWith(target, "./")) {
    if (internal && !StringPrototypeStartsWith(target, "../") && !StringPrototypeStartsWith(target, "/")) {
      let isURL = false;
      try {
        new URL(target);
        isURL = true;
      } catch {
      }
      if (!isURL) {
        const exportTarget = pattern ? RegExpPrototypeSymbolReplace(patternRegEx, target, () => subpath) : target + subpath;
        return exportTarget;
      }
    }
    throwInvalidPackageTarget(match, target, packageJSONUrl, internal, base);
  }
  if (RegExpPrototypeExec(
    invalidSegmentRegEx,
    StringPrototypeSlice(target, 2)
  ) !== null)
    throwInvalidPackageTarget(match, target, packageJSONUrl, internal, base);
  const resolved = new URL(target, packageJSONUrl);
  const resolvedPath = resolved.pathname;
  const packagePath = new URL(".", packageJSONUrl).pathname;
  if (!StringPrototypeStartsWith(resolvedPath, packagePath))
    throwInvalidPackageTarget(match, target, packageJSONUrl, internal, base);
  if (subpath === "")
    return resolved;
  if (RegExpPrototypeExec(invalidSegmentRegEx, subpath) !== null) {
    const request = pattern ? StringPrototypeReplace(match, "*", () => subpath) : match + subpath;
    throwInvalidSubpath(request, packageJSONUrl, internal, base);
  }
  if (pattern) {
    return new URL(
      RegExpPrototypeSymbolReplace(patternRegEx, resolved.href, () => subpath)
    );
  }
  return new URL(subpath, resolved);
}
function isArrayIndex(key) {
  const keyNum = +key;
  if (`${keyNum}` !== key)
    return false;
  return keyNum >= 0 && keyNum < 4294967295;
}
function resolvePackageTarget(packageJSONUrl, target, subpath, packageSubpath, base, pattern, internal, conditions) {
  if (typeof target === "string") {
    return resolvePackageTargetString(
      target,
      subpath,
      packageSubpath,
      packageJSONUrl,
      base,
      pattern,
      internal);
  } else if (ArrayIsArray(target)) {
    if (target.length === 0) {
      return null;
    }
    let lastException;
    for (let i = 0; i < target.length; i++) {
      const targetItem = target[i];
      let resolveResult;
      try {
        resolveResult = resolvePackageTarget(
          packageJSONUrl,
          targetItem,
          subpath,
          packageSubpath,
          base,
          pattern,
          internal,
          conditions
        );
      } catch (e) {
        lastException = e;
        if (e.code === "ERR_INVALID_PACKAGE_TARGET") {
          continue;
        }
        throw e;
      }
      if (resolveResult === void 0) {
        continue;
      }
      if (resolveResult === null) {
        lastException = null;
        continue;
      }
      return resolveResult;
    }
    if (lastException === void 0 || lastException === null)
      return lastException;
    throw lastException;
  } else if (typeof target === "object" && target !== null) {
    const keys = ObjectGetOwnPropertyNames(target);
    for (let i = 0; i < keys.length; i++) {
      const key = keys[i];
      if (isArrayIndex(key)) {
        throw new ERR_INVALID_PACKAGE_CONFIG(
          url.fileURLToPath(packageJSONUrl),
          base,
          '"exports" cannot contain numeric property keys.'
        );
      }
    }
    for (let i = 0; i < keys.length; i++) {
      const key = keys[i];
      if (key === "default" || conditions.has(key)) {
        const conditionalTarget = target[key];
        const resolveResult = resolvePackageTarget(
          packageJSONUrl,
          conditionalTarget,
          subpath,
          packageSubpath,
          base,
          pattern,
          internal,
          conditions
        );
        if (resolveResult === void 0)
          continue;
        return resolveResult;
      }
    }
    return void 0;
  } else if (target === null) {
    return null;
  }
  throwInvalidPackageTarget(
    packageSubpath,
    target,
    packageJSONUrl,
    internal,
    base
  );
}
function patternKeyCompare(a, b) {
  const aPatternIndex = StringPrototypeIndexOf(a, "*");
  const bPatternIndex = StringPrototypeIndexOf(b, "*");
  const baseLenA = aPatternIndex === -1 ? a.length : aPatternIndex + 1;
  const baseLenB = bPatternIndex === -1 ? b.length : bPatternIndex + 1;
  if (baseLenA > baseLenB)
    return -1;
  if (baseLenB > baseLenA)
    return 1;
  if (aPatternIndex === -1)
    return 1;
  if (bPatternIndex === -1)
    return -1;
  if (a.length > b.length)
    return -1;
  if (b.length > a.length)
    return 1;
  return 0;
}
function isConditionalExportsMainSugar(exports, packageJSONUrl, base) {
  if (typeof exports === "string" || ArrayIsArray(exports))
    return true;
  if (typeof exports !== "object" || exports === null)
    return false;
  const keys = ObjectGetOwnPropertyNames(exports);
  let isConditionalSugar = false;
  let i = 0;
  for (let j = 0; j < keys.length; j++) {
    const key = keys[j];
    const curIsConditionalSugar = key === "" || key[0] !== ".";
    if (i++ === 0) {
      isConditionalSugar = curIsConditionalSugar;
    } else if (isConditionalSugar !== curIsConditionalSugar) {
      throw new ERR_INVALID_PACKAGE_CONFIG(
        url.fileURLToPath(packageJSONUrl),
        base,
        `"exports" cannot contain some keys starting with '.' and some not. The exports object must either be an object of package subpath keys or an object of main entry condition name keys only.`
      );
    }
  }
  return isConditionalSugar;
}
function throwExportsNotFound(subpath, packageJSONUrl, base) {
  throw new ERR_PACKAGE_PATH_NOT_EXPORTED(
    url.fileURLToPath(new URL(".", packageJSONUrl)),
    subpath,
    base && url.fileURLToPath(base)
  );
}
const emittedPackageWarnings = /* @__PURE__ */ new Set();
function emitTrailingSlashPatternDeprecation(match, pjsonUrl, base) {
  const pjsonPath = url.fileURLToPath(pjsonUrl);
  if (emittedPackageWarnings.has(pjsonPath + "|" + match))
    return;
  emittedPackageWarnings.add(pjsonPath + "|" + match);
  process.emitWarning(
    `Use of deprecated trailing slash pattern mapping "${match}" in the "exports" field module resolution of the package at ${pjsonPath}${base ? ` imported from ${url.fileURLToPath(base)}` : ""}. Mapping specifiers ending in "/" is no longer supported.`,
    "DeprecationWarning",
    "DEP0155"
  );
}
function packageExportsResolve({
  packageJSONUrl,
  packageSubpath,
  exports,
  base,
  conditions
}) {
  if (isConditionalExportsMainSugar(exports, packageJSONUrl, base))
    exports = { ".": exports };
  if (ObjectPrototypeHasOwnProperty(exports, packageSubpath) && !StringPrototypeIncludes(packageSubpath, "*") && !StringPrototypeEndsWith(packageSubpath, "/")) {
    const target = exports[packageSubpath];
    const resolveResult = resolvePackageTarget(
      packageJSONUrl,
      target,
      "",
      packageSubpath,
      base,
      false,
      false,
      conditions
    );
    if (resolveResult == null) {
      throwExportsNotFound(packageSubpath, packageJSONUrl, base);
    }
    return resolveResult;
  }
  let bestMatch = "";
  let bestMatchSubpath;
  const keys = ObjectGetOwnPropertyNames(exports);
  for (let i = 0; i < keys.length; i++) {
    const key = keys[i];
    const patternIndex = StringPrototypeIndexOf(key, "*");
    if (patternIndex !== -1 && StringPrototypeStartsWith(
      packageSubpath,
      StringPrototypeSlice(key, 0, patternIndex)
    )) {
      if (StringPrototypeEndsWith(packageSubpath, "/"))
        emitTrailingSlashPatternDeprecation(
          packageSubpath,
          packageJSONUrl,
          base
        );
      const patternTrailer = StringPrototypeSlice(key, patternIndex + 1);
      if (packageSubpath.length >= key.length && StringPrototypeEndsWith(packageSubpath, patternTrailer) && patternKeyCompare(bestMatch, key) === 1 && StringPrototypeLastIndexOf(key, "*") === patternIndex) {
        bestMatch = key;
        bestMatchSubpath = StringPrototypeSlice(
          packageSubpath,
          patternIndex,
          packageSubpath.length - patternTrailer.length
        );
      }
    }
  }
  if (bestMatch) {
    const target = exports[bestMatch];
    const resolveResult = resolvePackageTarget(
      packageJSONUrl,
      target,
      bestMatchSubpath,
      bestMatch,
      base,
      true,
      false,
      conditions
    );
    if (resolveResult == null) {
      throwExportsNotFound(packageSubpath, packageJSONUrl, base);
    }
    return resolveResult;
  }
  throwExportsNotFound(packageSubpath, packageJSONUrl, base);
}
function packageImportsResolve({ name, base, conditions, readFileSyncFn }) {
  if (name === "#" || StringPrototypeStartsWith(name, "#/") || StringPrototypeEndsWith(name, "/")) {
    const reason = "is not a valid internal imports specifier name";
    throw new ERR_INVALID_MODULE_SPECIFIER(name, reason, url.fileURLToPath(base));
  }
  let packageJSONUrl;
  const packageConfig = getPackageScopeConfig(base, readFileSyncFn);
  if (packageConfig.exists) {
    packageJSONUrl = url.pathToFileURL(packageConfig.pjsonPath);
    const imports = packageConfig.imports;
    if (imports) {
      if (ObjectPrototypeHasOwnProperty(imports, name) && !StringPrototypeIncludes(name, "*")) {
        const resolveResult = resolvePackageTarget(
          packageJSONUrl,
          imports[name],
          "",
          name,
          base,
          false,
          true,
          conditions
        );
        if (resolveResult != null) {
          return resolveResult;
        }
      } else {
        let bestMatch = "";
        let bestMatchSubpath;
        const keys = ObjectGetOwnPropertyNames(imports);
        for (let i = 0; i < keys.length; i++) {
          const key = keys[i];
          const patternIndex = StringPrototypeIndexOf(key, "*");
          if (patternIndex !== -1 && StringPrototypeStartsWith(
            name,
            StringPrototypeSlice(key, 0, patternIndex)
          )) {
            const patternTrailer = StringPrototypeSlice(key, patternIndex + 1);
            if (name.length >= key.length && StringPrototypeEndsWith(name, patternTrailer) && patternKeyCompare(bestMatch, key) === 1 && StringPrototypeLastIndexOf(key, "*") === patternIndex) {
              bestMatch = key;
              bestMatchSubpath = StringPrototypeSlice(
                name,
                patternIndex,
                name.length - patternTrailer.length
              );
            }
          }
        }
        if (bestMatch) {
          const target = imports[bestMatch];
          const resolveResult = resolvePackageTarget(
            packageJSONUrl,
            target,
            bestMatchSubpath,
            bestMatch,
            base,
            true,
            true,
            conditions
          );
          if (resolveResult != null) {
            return resolveResult;
          }
        }
      }
    }
  }
  throwImportNotDefined(name, packageJSONUrl, base);
}

const flagSymbol = Symbol('arg flag');

class ArgError extends Error {
	constructor(msg, code) {
		super(msg);
		this.name = 'ArgError';
		this.code = code;

		Object.setPrototypeOf(this, ArgError.prototype);
	}
}

function arg(
	opts,
	{
		argv = process.argv.slice(2),
		permissive = false,
		stopAtPositional = false
	} = {}
) {
	if (!opts) {
		throw new ArgError(
			'argument specification object is required',
			'ARG_CONFIG_NO_SPEC'
		);
	}

	const result = { _: [] };

	const aliases = {};
	const handlers = {};

	for (const key of Object.keys(opts)) {
		if (!key) {
			throw new ArgError(
				'argument key cannot be an empty string',
				'ARG_CONFIG_EMPTY_KEY'
			);
		}

		if (key[0] !== '-') {
			throw new ArgError(
				`argument key must start with '-' but found: '${key}'`,
				'ARG_CONFIG_NONOPT_KEY'
			);
		}

		if (key.length === 1) {
			throw new ArgError(
				`argument key must have a name; singular '-' keys are not allowed: ${key}`,
				'ARG_CONFIG_NONAME_KEY'
			);
		}

		if (typeof opts[key] === 'string') {
			aliases[key] = opts[key];
			continue;
		}

		let type = opts[key];
		let isFlag = false;

		if (
			Array.isArray(type) &&
			type.length === 1 &&
			typeof type[0] === 'function'
		) {
			const [fn] = type;
			type = (value, name, prev = []) => {
				prev.push(fn(value, name, prev[prev.length - 1]));
				return prev;
			};
			isFlag = fn === Boolean || fn[flagSymbol] === true;
		} else if (typeof type === 'function') {
			isFlag = type === Boolean || type[flagSymbol] === true;
		} else {
			throw new ArgError(
				`type missing or not a function or valid array type: ${key}`,
				'ARG_CONFIG_VAD_TYPE'
			);
		}

		if (key[1] !== '-' && key.length > 2) {
			throw new ArgError(
				`short argument keys (with a single hyphen) must have only one character: ${key}`,
				'ARG_CONFIG_SHORTOPT_TOOLONG'
			);
		}

		handlers[key] = [type, isFlag];
	}

	for (let i = 0, len = argv.length; i < len; i++) {
		const wholeArg = argv[i];

		if (stopAtPositional && result._.length > 0) {
			result._ = result._.concat(argv.slice(i));
			break;
		}

		if (wholeArg === '--') {
			result._ = result._.concat(argv.slice(i + 1));
			break;
		}

		if (wholeArg.length > 1 && wholeArg[0] === '-') {
			/* eslint-disable operator-linebreak */
			const separatedArguments =
				wholeArg[1] === '-' || wholeArg.length === 2
					? [wholeArg]
					: wholeArg
							.slice(1)
							.split('')
							.map((a) => `-${a}`);
			/* eslint-enable operator-linebreak */

			for (let j = 0; j < separatedArguments.length; j++) {
				const arg = separatedArguments[j];
				const [originalArgName, argStr] =
					arg[1] === '-' ? arg.split(/=(.*)/, 2) : [arg, undefined];

				let argName = originalArgName;
				while (argName in aliases) {
					argName = aliases[argName];
				}

				if (!(argName in handlers)) {
					if (permissive) {
						result._.push(arg);
						continue;
					} else {
						throw new ArgError(
							`unknown or unexpected option: ${originalArgName}`,
							'ARG_UNKNOWN_OPTION'
						);
					}
				}

				const [type, isFlag] = handlers[argName];

				if (!isFlag && j + 1 < separatedArguments.length) {
					throw new ArgError(
						`option requires argument (but was followed by another short argument): ${originalArgName}`,
						'ARG_MISSING_REQUIRED_SHORTARG'
					);
				}

				if (isFlag) {
					result[argName] = type(true, argName, result[argName]);
				} else if (argStr === undefined) {
					if (
						argv.length < i + 2 ||
						(argv[i + 1].length > 1 &&
							argv[i + 1][0] === '-' &&
							!(
								argv[i + 1].match(/^-?\d*(\.(?=\d))?\d*$/) &&
								(type === Number ||
									// eslint-disable-next-line no-undef
									(typeof BigInt !== 'undefined' && type === BigInt))
							))
					) {
						const extended =
							originalArgName === argName ? '' : ` (alias for ${argName})`;
						throw new ArgError(
							`option requires argument: ${originalArgName}${extended}`,
							'ARG_MISSING_REQUIRED_LONGARG'
						);
					}

					result[argName] = type(argv[i + 1], argName, result[argName]);
					++i;
				} else {
					result[argName] = type(argStr, argName, result[argName]);
				}
			}
		} else {
			result._.push(wholeArg);
		}
	}

	return result;
}

arg.flag = (fn) => {
	fn[flagSymbol] = true;
	return fn;
};

// Utility types
arg.COUNT = arg.flag((v, name, existingCount) => (existingCount || 0) + 1);

// Expose error class
arg.ArgError = ArgError;

var arg_1 = arg;

/**
  @license
  The MIT License (MIT)

  Copyright (c) 2014 Blake Embrey (hello@blakeembrey.com)

  Permission is hereby granted, free of charge, to any person obtaining a copy
  of this software and associated documentation files (the "Software"), to deal
  in the Software without restriction, including without limitation the rights
  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  copies of the Software, and to permit persons to whom the Software is
  furnished to do so, subject to the following conditions:

  The above copyright notice and this permission notice shall be included in
  all copies or substantial portions of the Software.

  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  THE SOFTWARE.
*/
function getOptionValue(opt) {
  parseOptions();
  return options[opt];
}
let options;
function parseOptions() {
  if (!options) {
    options = {
      "--conditions": [],
      ...parseArgv(getNodeOptionsEnvArgv()),
      ...parseArgv(process.execArgv)
    };
  }
}
function parseArgv(argv) {
  return arg_1(
    {
      "--conditions": [String],
      "-C": "--conditions"
    },
    {
      argv,
      permissive: true
    }
  );
}
function getNodeOptionsEnvArgv() {
  const errors = [];
  const envArgv = ParseNodeOptionsEnvVar(process.env.NODE_OPTIONS || "", errors);
  if (errors.length !== 0) ;
  return envArgv;
}
function ParseNodeOptionsEnvVar(node_options, errors) {
  const env_argv = [];
  let is_in_string = false;
  let will_start_new_arg = true;
  for (let index = 0; index < node_options.length; ++index) {
    let c = node_options[index];
    if (c === "\\" && is_in_string) {
      if (index + 1 === node_options.length) {
        errors.push("invalid value for NODE_OPTIONS (invalid escape)\n");
        return env_argv;
      } else {
        c = node_options[++index];
      }
    } else if (c === " " && !is_in_string) {
      will_start_new_arg = true;
      continue;
    } else if (c === '"') {
      is_in_string = !is_in_string;
      continue;
    }
    if (will_start_new_arg) {
      env_argv.push(c);
      will_start_new_arg = false;
    } else {
      env_argv[env_argv.length - 1] += c;
    }
  }
  if (is_in_string) {
    errors.push("invalid value for NODE_OPTIONS (unterminated string)\n");
  }
  return env_argv;
}

function makeApi(runtimeState, opts) {
  const alwaysWarnOnFallback = Number(process.env.PNP_ALWAYS_WARN_ON_FALLBACK) > 0;
  const debugLevel = Number(process.env.PNP_DEBUG_LEVEL);
  const pathRegExp = /^(?![a-zA-Z]:[\\/]|\\\\|\.{0,2}(?:\/|$))((?:node:)?(?:@[^/]+\/)?[^/]+)\/*(.*|)$/;
  const isStrictRegExp = /^(\/|\.{1,2}(\/|$))/;
  const isDirRegExp = /\/$/;
  const isRelativeRegexp = /^\.{0,2}\//;
  const topLevelLocator = { name: null, reference: null };
  const fallbackLocators = [];
  const emittedWarnings = /* @__PURE__ */ new Set();
  if (runtimeState.enableTopLevelFallback === true)
    fallbackLocators.push(topLevelLocator);
  if (opts.compatibilityMode !== false) {
    for (const name of [`react-scripts`, `gatsby`]) {
      const packageStore = runtimeState.packageRegistry.get(name);
      if (packageStore) {
        for (const reference of packageStore.keys()) {
          if (reference === null) {
            throw new Error(`Assertion failed: This reference shouldn't be null`);
          } else {
            fallbackLocators.push({ name, reference });
          }
        }
      }
    }
  }
  const {
    ignorePattern,
    packageRegistry,
    packageLocatorsByLocations
  } = runtimeState;
  function makeLogEntry(name, args) {
    return {
      fn: name,
      args,
      error: null,
      result: null
    };
  }
  function trace(entry) {
    const colors = process.stderr?.hasColors?.() ?? process.stdout.isTTY;
    const c = (n, str) => `\x1B[${n}m${str}\x1B[0m`;
    const error = entry.error;
    if (error)
      console.error(c(`31;1`, `\u2716 ${entry.error?.message.replace(/\n.*/s, ``)}`));
    else
      console.error(c(`33;1`, `\u203C Resolution`));
    if (entry.args.length > 0)
      console.error();
    for (const arg of entry.args)
      console.error(`  ${c(`37;1`, `In \u2190`)} ${nodeUtils.inspect(arg, { colors, compact: true })}`);
    if (entry.result) {
      console.error();
      console.error(`  ${c(`37;1`, `Out \u2192`)} ${nodeUtils.inspect(entry.result, { colors, compact: true })}`);
    }
    const stack = new Error().stack.match(/(?<=^ +)at.*/gm)?.slice(2) ?? [];
    if (stack.length > 0) {
      console.error();
      for (const line of stack) {
        console.error(`  ${c(`38;5;244`, line)}`);
      }
    }
    console.error();
  }
  function maybeLog(name, fn) {
    if (opts.allowDebug === false)
      return fn;
    if (Number.isFinite(debugLevel)) {
      if (debugLevel >= 2) {
        return (...args) => {
          const logEntry = makeLogEntry(name, args);
          try {
            return logEntry.result = fn(...args);
          } catch (error) {
            throw logEntry.error = error;
          } finally {
            trace(logEntry);
          }
        };
      } else if (debugLevel >= 1) {
        return (...args) => {
          try {
            return fn(...args);
          } catch (error) {
            const logEntry = makeLogEntry(name, args);
            logEntry.error = error;
            trace(logEntry);
            throw error;
          }
        };
      }
    }
    return fn;
  }
  function getPackageInformationSafe(packageLocator) {
    const packageInformation = getPackageInformation(packageLocator);
    if (!packageInformation) {
      throw makeError(
        ErrorCode.INTERNAL,
        `Couldn't find a matching entry in the dependency tree for the specified parent (this is probably an internal error)`
      );
    }
    return packageInformation;
  }
  function isDependencyTreeRoot(packageLocator) {
    if (packageLocator.name === null)
      return true;
    for (const dependencyTreeRoot of runtimeState.dependencyTreeRoots)
      if (dependencyTreeRoot.name === packageLocator.name && dependencyTreeRoot.reference === packageLocator.reference)
        return true;
    return false;
  }
  const defaultExportsConditions = /* @__PURE__ */ new Set([
    `node`,
    `require`,
    ...getOptionValue(`--conditions`)
  ]);
  function applyNodeExportsResolution(unqualifiedPath, conditions = defaultExportsConditions, issuer) {
    const locator = findPackageLocator(ppath.join(unqualifiedPath, `internal.js`), {
      resolveIgnored: true,
      includeDiscardFromLookup: true
    });
    if (locator === null) {
      throw makeError(
        ErrorCode.INTERNAL,
        `The locator that owns the "${unqualifiedPath}" path can't be found inside the dependency tree (this is probably an internal error)`
      );
    }
    const { packageLocation } = getPackageInformationSafe(locator);
    const manifestPath = ppath.join(packageLocation, Filename.manifest);
    if (!opts.fakeFs.existsSync(manifestPath))
      return null;
    const pkgJson = JSON.parse(opts.fakeFs.readFileSync(manifestPath, `utf8`));
    if (pkgJson.exports == null)
      return null;
    let subpath = ppath.contains(packageLocation, unqualifiedPath);
    if (subpath === null) {
      throw makeError(
        ErrorCode.INTERNAL,
        `unqualifiedPath doesn't contain the packageLocation (this is probably an internal error)`
      );
    }
    if (subpath !== `.` && !isRelativeRegexp.test(subpath))
      subpath = `./${subpath}`;
    try {
      const resolvedExport = packageExportsResolve({
        packageJSONUrl: url.pathToFileURL(npath.fromPortablePath(manifestPath)),
        packageSubpath: subpath,
        exports: pkgJson.exports,
        base: issuer ? url.pathToFileURL(npath.fromPortablePath(issuer)) : null,
        conditions
      });
      return npath.toPortablePath(url.fileURLToPath(resolvedExport));
    } catch (error) {
      throw makeError(
        ErrorCode.EXPORTS_RESOLUTION_FAILED,
        error.message,
        { unqualifiedPath: getPathForDisplay(unqualifiedPath), locator, pkgJson, subpath: getPathForDisplay(subpath), conditions },
        error.code
      );
    }
  }
  function applyNodeExtensionResolution(unqualifiedPath, candidates, { extensions }) {
    let stat;
    try {
      candidates.push(unqualifiedPath);
      stat = opts.fakeFs.statSync(unqualifiedPath);
    } catch (error) {
    }
    if (stat && !stat.isDirectory())
      return opts.fakeFs.realpathSync(unqualifiedPath);
    if (stat && stat.isDirectory()) {
      let pkgJson;
      try {
        pkgJson = JSON.parse(opts.fakeFs.readFileSync(ppath.join(unqualifiedPath, Filename.manifest), `utf8`));
      } catch (error) {
      }
      let nextUnqualifiedPath;
      if (pkgJson && pkgJson.main)
        nextUnqualifiedPath = ppath.resolve(unqualifiedPath, pkgJson.main);
      if (nextUnqualifiedPath && nextUnqualifiedPath !== unqualifiedPath) {
        const resolution = applyNodeExtensionResolution(nextUnqualifiedPath, candidates, { extensions });
        if (resolution !== null) {
          return resolution;
        }
      }
    }
    for (let i = 0, length = extensions.length; i < length; i++) {
      const candidateFile = `${unqualifiedPath}${extensions[i]}`;
      candidates.push(candidateFile);
      if (opts.fakeFs.existsSync(candidateFile)) {
        return candidateFile;
      }
    }
    if (stat && stat.isDirectory()) {
      for (let i = 0, length = extensions.length; i < length; i++) {
        const candidateFile = ppath.format({ dir: unqualifiedPath, name: `index`, ext: extensions[i] });
        candidates.push(candidateFile);
        if (opts.fakeFs.existsSync(candidateFile)) {
          return candidateFile;
        }
      }
    }
    return null;
  }
  function makeFakeModule(path) {
    const fakeModule = new require$$0.Module(path, null);
    fakeModule.filename = path;
    fakeModule.paths = require$$0.Module._nodeModulePaths(path);
    return fakeModule;
  }
  function callNativeResolution(request, issuer) {
    if (issuer.endsWith(`/`))
      issuer = ppath.join(issuer, `internal.js`);
    return require$$0.Module._resolveFilename(npath.fromPortablePath(request), makeFakeModule(npath.fromPortablePath(issuer)), false, { plugnplay: false });
  }
  function isPathIgnored(path) {
    if (ignorePattern === null)
      return false;
    const subPath = ppath.contains(runtimeState.basePath, path);
    if (subPath === null)
      return false;
    if (ignorePattern.test(subPath.replace(/\/$/, ``))) {
      return true;
    } else {
      return false;
    }
  }
  const VERSIONS = { std: 3, resolveVirtual: 1, getAllLocators: 1 };
  const topLevel = topLevelLocator;
  function getPackageInformation({ name, reference }) {
    const packageInformationStore = packageRegistry.get(name);
    if (!packageInformationStore)
      return null;
    const packageInformation = packageInformationStore.get(reference);
    if (!packageInformation)
      return null;
    return packageInformation;
  }
  function findPackageDependents({ name, reference }) {
    const dependents = [];
    for (const [dependentName, packageInformationStore] of packageRegistry) {
      if (dependentName === null)
        continue;
      for (const [dependentReference, packageInformation] of packageInformationStore) {
        if (dependentReference === null)
          continue;
        const dependencyReference = packageInformation.packageDependencies.get(name);
        if (dependencyReference !== reference)
          continue;
        if (dependentName === name && dependentReference === reference)
          continue;
        dependents.push({
          name: dependentName,
          reference: dependentReference
        });
      }
    }
    return dependents;
  }
  function findBrokenPeerDependencies(dependency, initialPackage) {
    const brokenPackages = /* @__PURE__ */ new Map();
    const alreadyVisited = /* @__PURE__ */ new Set();
    const traversal = (currentPackage) => {
      const identifier = JSON.stringify(currentPackage.name);
      if (alreadyVisited.has(identifier))
        return;
      alreadyVisited.add(identifier);
      const dependents = findPackageDependents(currentPackage);
      for (const dependent of dependents) {
        const dependentInformation = getPackageInformationSafe(dependent);
        if (dependentInformation.packagePeers.has(dependency)) {
          traversal(dependent);
        } else {
          let brokenSet = brokenPackages.get(dependent.name);
          if (typeof brokenSet === `undefined`)
            brokenPackages.set(dependent.name, brokenSet = /* @__PURE__ */ new Set());
          brokenSet.add(dependent.reference);
        }
      }
    };
    traversal(initialPackage);
    const brokenList = [];
    for (const name of [...brokenPackages.keys()].sort())
      for (const reference of [...brokenPackages.get(name)].sort())
        brokenList.push({ name, reference });
    return brokenList;
  }
  function findPackageLocator(location, { resolveIgnored = false, includeDiscardFromLookup = false } = {}) {
    if (isPathIgnored(location) && !resolveIgnored)
      return null;
    let relativeLocation = ppath.relative(runtimeState.basePath, location);
    if (!relativeLocation.match(isStrictRegExp))
      relativeLocation = `./${relativeLocation}`;
    if (!relativeLocation.endsWith(`/`))
      relativeLocation = `${relativeLocation}/`;
    do {
      const entry = packageLocatorsByLocations.get(relativeLocation);
      if (typeof entry === `undefined` || entry.discardFromLookup && !includeDiscardFromLookup) {
        relativeLocation = relativeLocation.substring(0, relativeLocation.lastIndexOf(`/`, relativeLocation.length - 2) + 1);
        continue;
      }
      return entry.locator;
    } while (relativeLocation !== ``);
    return null;
  }
  function tryReadFile(filePath) {
    try {
      return opts.fakeFs.readFileSync(npath.toPortablePath(filePath), `utf8`);
    } catch (err) {
      if (err.code === `ENOENT`)
        return void 0;
      throw err;
    }
  }
  function resolveToUnqualified(request, issuer, { considerBuiltins = true } = {}) {
    if (request.startsWith(`#`))
      throw new Error(`resolveToUnqualified can not handle private import mappings`);
    if (request === `pnpapi`)
      return npath.toPortablePath(opts.pnpapiResolution);
    if (considerBuiltins && require$$0.isBuiltin(request))
      return null;
    const requestForDisplay = getPathForDisplay(request);
    const issuerForDisplay = issuer && getPathForDisplay(issuer);
    if (issuer && isPathIgnored(issuer)) {
      if (!ppath.isAbsolute(request) || findPackageLocator(request) === null) {
        const result = callNativeResolution(request, issuer);
        if (result === false) {
          throw makeError(
            ErrorCode.BUILTIN_NODE_RESOLUTION_FAILED,
            `The builtin node resolution algorithm was unable to resolve the requested module (it didn't go through the pnp resolver because the issuer was explicitely ignored by the regexp)

Require request: "${requestForDisplay}"
Required by: ${issuerForDisplay}
`,
            { request: requestForDisplay, issuer: issuerForDisplay }
          );
        }
        return npath.toPortablePath(result);
      }
    }
    let unqualifiedPath;
    const dependencyNameMatch = request.match(pathRegExp);
    if (!dependencyNameMatch) {
      if (ppath.isAbsolute(request)) {
        unqualifiedPath = ppath.normalize(request);
      } else {
        if (!issuer) {
          throw makeError(
            ErrorCode.API_ERROR,
            `The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute`,
            { request: requestForDisplay, issuer: issuerForDisplay }
          );
        }
        const absoluteIssuer = ppath.resolve(issuer);
        if (issuer.match(isDirRegExp)) {
          unqualifiedPath = ppath.normalize(ppath.join(absoluteIssuer, request));
        } else {
          unqualifiedPath = ppath.normalize(ppath.join(ppath.dirname(absoluteIssuer), request));
        }
      }
    } else {
      if (!issuer) {
        throw makeError(
          ErrorCode.API_ERROR,
          `The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute`,
          { request: requestForDisplay, issuer: issuerForDisplay }
        );
      }
      const [, dependencyName, subPath] = dependencyNameMatch;
      const issuerLocator = findPackageLocator(issuer);
      if (!issuerLocator) {
        const result = callNativeResolution(request, issuer);
        if (result === false) {
          throw makeError(
            ErrorCode.BUILTIN_NODE_RESOLUTION_FAILED,
            `The builtin node resolution algorithm was unable to resolve the requested module (it didn't go through the pnp resolver because the issuer doesn't seem to be part of the Yarn-managed dependency tree).

Require path: "${requestForDisplay}"
Required by: ${issuerForDisplay}
`,
            { request: requestForDisplay, issuer: issuerForDisplay }
          );
        }
        return npath.toPortablePath(result);
      }
      const issuerInformation = getPackageInformationSafe(issuerLocator);
      let dependencyReference = issuerInformation.packageDependencies.get(dependencyName);
      let fallbackReference = null;
      if (dependencyReference == null) {
        if (issuerLocator.name !== null) {
          const exclusionEntry = runtimeState.fallbackExclusionList.get(issuerLocator.name);
          const canUseFallbacks = !exclusionEntry || !exclusionEntry.has(issuerLocator.reference);
          if (canUseFallbacks) {
            for (let t = 0, T = fallbackLocators.length; t < T; ++t) {
              const fallbackInformation = getPackageInformationSafe(fallbackLocators[t]);
              const reference = fallbackInformation.packageDependencies.get(dependencyName);
              if (reference == null)
                continue;
              if (alwaysWarnOnFallback)
                fallbackReference = reference;
              else
                dependencyReference = reference;
              break;
            }
            if (runtimeState.enableTopLevelFallback) {
              if (dependencyReference == null && fallbackReference === null) {
                const reference = runtimeState.fallbackPool.get(dependencyName);
                if (reference != null) {
                  fallbackReference = reference;
                }
              }
            }
          }
        }
      }
      let error = null;
      if (dependencyReference === null) {
        if (isDependencyTreeRoot(issuerLocator)) {
          error = makeError(
            ErrorCode.MISSING_PEER_DEPENDENCY,
            `Your application tried to access ${dependencyName} (a peer dependency); this isn't allowed as there is no ancestor to satisfy the requirement. Use a devDependency if needed.

Required package: ${dependencyName}${dependencyName !== requestForDisplay ? ` (via "${requestForDisplay}")` : ``}
Required by: ${issuerForDisplay}
`,
            { request: requestForDisplay, issuer: issuerForDisplay, dependencyName }
          );
        } else {
          const brokenAncestors = findBrokenPeerDependencies(dependencyName, issuerLocator);
          if (brokenAncestors.every((ancestor) => isDependencyTreeRoot(ancestor))) {
            error = makeError(
              ErrorCode.MISSING_PEER_DEPENDENCY,
              `${issuerLocator.name} tried to access ${dependencyName} (a peer dependency) but it isn't provided by your application; this makes the require call ambiguous and unsound.

Required package: ${dependencyName}${dependencyName !== requestForDisplay ? ` (via "${requestForDisplay}")` : ``}
Required by: ${issuerLocator.name}@${issuerLocator.reference} (via ${issuerForDisplay})
${brokenAncestors.map((ancestorLocator) => `Ancestor breaking the chain: ${ancestorLocator.name}@${ancestorLocator.reference}
`).join(``)}
`,
              { request: requestForDisplay, issuer: issuerForDisplay, issuerLocator: Object.assign({}, issuerLocator), dependencyName, brokenAncestors }
            );
          } else {
            error = makeError(
              ErrorCode.MISSING_PEER_DEPENDENCY,
              `${issuerLocator.name} tried to access ${dependencyName} (a peer dependency) but it isn't provided by its ancestors; this makes the require call ambiguous and unsound.

Required package: ${dependencyName}${dependencyName !== requestForDisplay ? ` (via "${requestForDisplay}")` : ``}
Required by: ${issuerLocator.name}@${issuerLocator.reference} (via ${issuerForDisplay})

${brokenAncestors.map((ancestorLocator) => `Ancestor breaking the chain: ${ancestorLocator.name}@${ancestorLocator.reference}
`).join(``)}
`,
              { request: requestForDisplay, issuer: issuerForDisplay, issuerLocator: Object.assign({}, issuerLocator), dependencyName, brokenAncestors }
            );
          }
        }
      } else if (dependencyReference === void 0) {
        if (!considerBuiltins && require$$0.isBuiltin(request)) {
          if (isDependencyTreeRoot(issuerLocator)) {
            error = makeError(
              ErrorCode.UNDECLARED_DEPENDENCY,
              `Your application tried to access ${dependencyName}. While this module is usually interpreted as a Node builtin, your resolver is running inside a non-Node resolution context where such builtins are ignored. Since ${dependencyName} isn't otherwise declared in your dependencies, this makes the require call ambiguous and unsound.

Required package: ${dependencyName}${dependencyName !== requestForDisplay ? ` (via "${requestForDisplay}")` : ``}
Required by: ${issuerForDisplay}
`,
              { request: requestForDisplay, issuer: issuerForDisplay, dependencyName }
            );
          } else {
            error = makeError(
              ErrorCode.UNDECLARED_DEPENDENCY,
              `${issuerLocator.name} tried to access ${dependencyName}. While this module is usually interpreted as a Node builtin, your resolver is running inside a non-Node resolution context where such builtins are ignored. Since ${dependencyName} isn't otherwise declared in ${issuerLocator.name}'s dependencies, this makes the require call ambiguous and unsound.

Required package: ${dependencyName}${dependencyName !== requestForDisplay ? ` (via "${requestForDisplay}")` : ``}
Required by: ${issuerForDisplay}
`,
              { request: requestForDisplay, issuer: issuerForDisplay, issuerLocator: Object.assign({}, issuerLocator), dependencyName }
            );
          }
        } else {
          if (isDependencyTreeRoot(issuerLocator)) {
            error = makeError(
              ErrorCode.UNDECLARED_DEPENDENCY,
              `Your application tried to access ${dependencyName}, but it isn't declared in your dependencies; this makes the require call ambiguous and unsound.

Required package: ${dependencyName}${dependencyName !== requestForDisplay ? ` (via "${requestForDisplay}")` : ``}
Required by: ${issuerForDisplay}
`,
              { request: requestForDisplay, issuer: issuerForDisplay, dependencyName }
            );
          } else {
            error = makeError(
              ErrorCode.UNDECLARED_DEPENDENCY,
              `${issuerLocator.name} tried to access ${dependencyName}, but it isn't declared in its dependencies; this makes the require call ambiguous and unsound.

Required package: ${dependencyName}${dependencyName !== requestForDisplay ? ` (via "${requestForDisplay}")` : ``}
Required by: ${issuerLocator.name}@${issuerLocator.reference} (via ${issuerForDisplay})
`,
              { request: requestForDisplay, issuer: issuerForDisplay, issuerLocator: Object.assign({}, issuerLocator), dependencyName }
            );
          }
        }
      }
      if (dependencyReference == null) {
        if (fallbackReference === null || error === null)
          throw error || new Error(`Assertion failed: Expected an error to have been set`);
        dependencyReference = fallbackReference;
        const message = error.message.replace(/\n.*/g, ``);
        error.message = message;
        if (!emittedWarnings.has(message) && debugLevel !== 0) {
          emittedWarnings.add(message);
          process.emitWarning(error);
        }
      }
      const dependencyLocator = Array.isArray(dependencyReference) ? { name: dependencyReference[0], reference: dependencyReference[1] } : { name: dependencyName, reference: dependencyReference };
      const dependencyInformation = getPackageInformationSafe(dependencyLocator);
      if (!dependencyInformation.packageLocation) {
        throw makeError(
          ErrorCode.MISSING_DEPENDENCY,
          `A dependency seems valid but didn't get installed for some reason. This might be caused by a partial install, such as dev vs prod.

Required package: ${dependencyLocator.name}@${dependencyLocator.reference}${dependencyLocator.name !== requestForDisplay ? ` (via "${requestForDisplay}")` : ``}
Required by: ${issuerLocator.name}@${issuerLocator.reference} (via ${issuerForDisplay})
`,
          { request: requestForDisplay, issuer: issuerForDisplay, dependencyLocator: Object.assign({}, dependencyLocator) }
        );
      }
      const dependencyLocation = dependencyInformation.packageLocation;
      if (subPath) {
        unqualifiedPath = ppath.join(dependencyLocation, subPath);
      } else {
        unqualifiedPath = dependencyLocation;
      }
    }
    return ppath.normalize(unqualifiedPath);
  }
  function resolveUnqualifiedExport(request, unqualifiedPath, conditions = defaultExportsConditions, issuer) {
    if (isStrictRegExp.test(request))
      return unqualifiedPath;
    const unqualifiedExportPath = applyNodeExportsResolution(unqualifiedPath, conditions, issuer);
    if (unqualifiedExportPath) {
      return ppath.normalize(unqualifiedExportPath);
    } else {
      return unqualifiedPath;
    }
  }
  function resolveUnqualified(unqualifiedPath, { extensions = Object.keys(require$$0.Module._extensions) } = {}) {
    const candidates = [];
    const qualifiedPath = applyNodeExtensionResolution(unqualifiedPath, candidates, { extensions });
    if (qualifiedPath) {
      return ppath.normalize(qualifiedPath);
    } else {
      reportRequiredFilesToWatchMode(candidates.map((candidate) => npath.fromPortablePath(candidate)));
      const unqualifiedPathForDisplay = getPathForDisplay(unqualifiedPath);
      const containingPackage = findPackageLocator(unqualifiedPath);
      if (containingPackage) {
        const { packageLocation } = getPackageInformationSafe(containingPackage);
        let exists = true;
        try {
          opts.fakeFs.accessSync(packageLocation);
        } catch (err) {
          if (err?.code === `ENOENT`) {
            exists = false;
          } else {
            const readableError = (err?.message ?? err ?? `empty exception thrown`).replace(/^[A-Z]/, ($0) => $0.toLowerCase());
            throw makeError(ErrorCode.QUALIFIED_PATH_RESOLUTION_FAILED, `Required package exists but could not be accessed (${readableError}).

Missing package: ${containingPackage.name}@${containingPackage.reference}
Expected package location: ${getPathForDisplay(packageLocation)}
`, { unqualifiedPath: unqualifiedPathForDisplay, extensions });
          }
        }
        if (!exists) {
          const errorMessage = packageLocation.includes(`/unplugged/`) ? `Required unplugged package missing from disk. This may happen when switching branches without running installs (unplugged packages must be fully materialized on disk to work).` : `Required package missing from disk. If you keep your packages inside your repository then restarting the Node process may be enough. Otherwise, try to run an install first.`;
          throw makeError(
            ErrorCode.QUALIFIED_PATH_RESOLUTION_FAILED,
            `${errorMessage}

Missing package: ${containingPackage.name}@${containingPackage.reference}
Expected package location: ${getPathForDisplay(packageLocation)}
`,
            { unqualifiedPath: unqualifiedPathForDisplay, extensions }
          );
        }
      }
      throw makeError(
        ErrorCode.QUALIFIED_PATH_RESOLUTION_FAILED,
        `Qualified path resolution failed: we looked for the following paths, but none could be accessed.

Source path: ${unqualifiedPathForDisplay}
${candidates.map((candidate) => `Not found: ${getPathForDisplay(candidate)}
`).join(``)}`,
        { unqualifiedPath: unqualifiedPathForDisplay, extensions }
      );
    }
  }
  function resolvePrivateRequest(request, issuer, opts2) {
    if (!issuer)
      throw new Error(`Assertion failed: An issuer is required to resolve private import mappings`);
    const resolved = packageImportsResolve({
      name: request,
      base: url.pathToFileURL(npath.fromPortablePath(issuer)),
      conditions: opts2.conditions ?? defaultExportsConditions,
      readFileSyncFn: tryReadFile
    });
    if (resolved instanceof URL) {
      return resolveUnqualified(npath.toPortablePath(url.fileURLToPath(resolved)), { extensions: opts2.extensions });
    } else {
      if (resolved.startsWith(`#`))
        throw new Error(`Mapping from one private import to another isn't allowed`);
      return resolveRequest(resolved, issuer, opts2);
    }
  }
  function resolveRequest(request, issuer, opts2 = {}) {
    try {
      if (request.startsWith(`#`))
        return resolvePrivateRequest(request, issuer, opts2);
      const { considerBuiltins, extensions, conditions } = opts2;
      const unqualifiedPath = resolveToUnqualified(request, issuer, { considerBuiltins });
      if (request === `pnpapi`)
        return unqualifiedPath;
      if (unqualifiedPath === null)
        return null;
      const isIssuerIgnored = () => issuer !== null ? isPathIgnored(issuer) : false;
      const remappedPath = (!considerBuiltins || !require$$0.isBuiltin(request)) && !isIssuerIgnored() ? resolveUnqualifiedExport(request, unqualifiedPath, conditions, issuer) : unqualifiedPath;
      return resolveUnqualified(remappedPath, { extensions });
    } catch (error) {
      if (Object.hasOwn(error, `pnpCode`))
        Object.assign(error.data, { request: getPathForDisplay(request), issuer: issuer && getPathForDisplay(issuer) });
      throw error;
    }
  }
  function resolveVirtual(request) {
    const normalized = ppath.normalize(request);
    const resolved = VirtualFS.resolveVirtual(normalized);
    return resolved !== normalized ? resolved : null;
  }
  return {
    VERSIONS,
    topLevel,
    getLocator: (name, referencish) => {
      if (Array.isArray(referencish)) {
        return { name: referencish[0], reference: referencish[1] };
      } else {
        return { name, reference: referencish };
      }
    },
    getDependencyTreeRoots: () => {
      return [...runtimeState.dependencyTreeRoots];
    },
    getAllLocators() {
      const locators = [];
      for (const [name, entry] of packageRegistry)
        for (const reference of entry.keys())
          if (name !== null && reference !== null)
            locators.push({ name, reference });
      return locators;
    },
    getPackageInformation: (locator) => {
      const info = getPackageInformation(locator);
      if (info === null)
        return null;
      const packageLocation = npath.fromPortablePath(info.packageLocation);
      const nativeInfo = { ...info, packageLocation };
      return nativeInfo;
    },
    findPackageLocator: (path) => {
      return findPackageLocator(npath.toPortablePath(path));
    },
    resolveToUnqualified: maybeLog(`resolveToUnqualified`, (request, issuer, opts2) => {
      const portableIssuer = issuer !== null ? npath.toPortablePath(issuer) : null;
      const resolution = resolveToUnqualified(npath.toPortablePath(request), portableIssuer, opts2);
      if (resolution === null)
        return null;
      return npath.fromPortablePath(resolution);
    }),
    resolveUnqualified: maybeLog(`resolveUnqualified`, (unqualifiedPath, opts2) => {
      return npath.fromPortablePath(resolveUnqualified(npath.toPortablePath(unqualifiedPath), opts2));
    }),
    resolveRequest: maybeLog(`resolveRequest`, (request, issuer, opts2) => {
      const portableIssuer = issuer !== null ? npath.toPortablePath(issuer) : null;
      const resolution = resolveRequest(npath.toPortablePath(request), portableIssuer, opts2);
      if (resolution === null)
        return null;
      return npath.fromPortablePath(resolution);
    }),
    resolveVirtual: maybeLog(`resolveVirtual`, (path) => {
      const result = resolveVirtual(npath.toPortablePath(path));
      if (result !== null) {
        return npath.fromPortablePath(result);
      } else {
        return null;
      }
    })
  };
}

function makeManager(pnpapi, opts) {
  const initialApiPath = npath.toPortablePath(pnpapi.resolveToUnqualified(`pnpapi`, null));
  const initialApiStats = opts.fakeFs.statSync(npath.toPortablePath(initialApiPath));
  const apiMetadata = /* @__PURE__ */ new Map([
    [initialApiPath, {
      instance: pnpapi,
      stats: initialApiStats,
      lastRefreshCheck: Date.now()
    }]
  ]);
  function loadApiInstance(pnpApiPath) {
    const nativePath = npath.fromPortablePath(pnpApiPath);
    const module = new require$$0.Module(nativePath, null);
    module.load(nativePath);
    return module.exports;
  }
  function refreshApiEntry(pnpApiPath, apiEntry) {
    const timeNow = Date.now();
    if (timeNow - apiEntry.lastRefreshCheck < 500)
      return;
    apiEntry.lastRefreshCheck = timeNow;
    const stats = opts.fakeFs.statSync(pnpApiPath);
    if (stats.mtime > apiEntry.stats.mtime) {
      process.emitWarning(`[Warning] The runtime detected new information in a PnP file; reloading the API instance (${npath.fromPortablePath(pnpApiPath)})`);
      apiEntry.stats = stats;
      apiEntry.instance = loadApiInstance(pnpApiPath);
    }
  }
  function getApiEntry(pnpApiPath, refresh = false) {
    let apiEntry = apiMetadata.get(pnpApiPath);
    if (typeof apiEntry !== `undefined`) {
      if (refresh) {
        refreshApiEntry(pnpApiPath, apiEntry);
      }
    } else {
      apiMetadata.set(pnpApiPath, apiEntry = {
        instance: loadApiInstance(pnpApiPath),
        stats: opts.fakeFs.statSync(pnpApiPath),
        lastRefreshCheck: Date.now()
      });
    }
    return apiEntry;
  }
  const findApiPathCache = /* @__PURE__ */ new Map();
  function addToCacheAndReturn(start, end, target) {
    if (target !== null) {
      target = VirtualFS.resolveVirtual(target);
      target = opts.fakeFs.realpathSync(target);
    }
    let curr;
    let next = start;
    do {
      curr = next;
      findApiPathCache.set(curr, target);
      next = ppath.dirname(curr);
    } while (curr !== end);
    return target;
  }
  function findApiPathFor(modulePath) {
    let bestCandidate = null;
    for (const [apiPath, apiEntry] of apiMetadata) {
      const locator = apiEntry.instance.findPackageLocator(modulePath);
      if (!locator)
        continue;
      if (apiMetadata.size === 1)
        return apiPath;
      const packageInformation = apiEntry.instance.getPackageInformation(locator);
      if (!packageInformation)
        throw new Error(`Assertion failed: Couldn't get package information for '${modulePath}'`);
      if (!bestCandidate)
        bestCandidate = { packageLocation: packageInformation.packageLocation, apiPaths: [] };
      if (packageInformation.packageLocation === bestCandidate.packageLocation) {
        bestCandidate.apiPaths.push(apiPath);
      } else if (packageInformation.packageLocation.length > bestCandidate.packageLocation.length) {
        bestCandidate = { packageLocation: packageInformation.packageLocation, apiPaths: [apiPath] };
      }
    }
    if (bestCandidate) {
      if (bestCandidate.apiPaths.length === 1)
        return bestCandidate.apiPaths[0];
      const controlSegment = bestCandidate.apiPaths.map((apiPath) => `  ${npath.fromPortablePath(apiPath)}`).join(`
`);
      throw new Error(`Unable to locate pnpapi, the module '${modulePath}' is controlled by multiple pnpapi instances.
This is usually caused by using the global cache (enableGlobalCache: true)

Controlled by:
${controlSegment}
`);
    }
    const start = ppath.resolve(npath.toPortablePath(modulePath));
    let curr;
    let next = start;
    do {
      curr = next;
      const cached = findApiPathCache.get(curr);
      if (cached !== void 0)
        return addToCacheAndReturn(start, curr, cached);
      const cjsCandidate = ppath.join(curr, Filename.pnpCjs);
      if (opts.fakeFs.existsSync(cjsCandidate) && opts.fakeFs.statSync(cjsCandidate).isFile())
        return addToCacheAndReturn(start, curr, cjsCandidate);
      const legacyCjsCandidate = ppath.join(curr, Filename.pnpJs);
      if (opts.fakeFs.existsSync(legacyCjsCandidate) && opts.fakeFs.statSync(legacyCjsCandidate).isFile())
        return addToCacheAndReturn(start, curr, legacyCjsCandidate);
      next = ppath.dirname(curr);
    } while (curr !== PortablePath.root);
    return addToCacheAndReturn(start, curr, null);
  }
  const moduleToApiPathCache = /* @__PURE__ */ new WeakMap();
  function getApiPathFromParent(parent) {
    if (parent == null)
      return initialApiPath;
    let apiPath = moduleToApiPathCache.get(parent);
    if (typeof apiPath !== `undefined`)
      return apiPath;
    apiPath = parent.filename ? findApiPathFor(parent.filename) : null;
    moduleToApiPathCache.set(parent, apiPath);
    return apiPath;
  }
  return {
    getApiPathFromParent,
    findApiPathFor,
    getApiEntry
  };
}

const localFs = { ...fs__default.default };
const nodeFs = new NodeFS(localFs);
const defaultRuntimeState = $$SETUP_STATE(hydrateRuntimeState);
const defaultPnpapiResolution = __filename;
const defaultFsLayer = new VirtualFS({
  baseFs: new ZipOpenFS({
    baseFs: nodeFs,
    maxOpenFiles: 80,
    readOnlyArchives: true
  })
});
class DynamicFS extends ProxiedFS {
  constructor() {
    super(ppath);
    this.baseFs = defaultFsLayer;
  }
  mapToBase(p) {
    return p;
  }
  mapFromBase(p) {
    return p;
  }
}
const dynamicFsLayer = new DynamicFS();
let manager;
const defaultApi = Object.assign(makeApi(defaultRuntimeState, {
  fakeFs: dynamicFsLayer,
  pnpapiResolution: defaultPnpapiResolution
}), {
  makeApi: ({
    basePath = void 0,
    fakeFs = dynamicFsLayer,
    pnpapiResolution = defaultPnpapiResolution,
    ...rest
  }) => {
    const apiRuntimeState = typeof basePath !== `undefined` ? $$SETUP_STATE(hydrateRuntimeState, basePath) : defaultRuntimeState;
    return makeApi(apiRuntimeState, {
      fakeFs,
      pnpapiResolution,
      ...rest
    });
  },
  setup: (api) => {
    applyPatch(api || defaultApi, {
      fakeFs: defaultFsLayer,
      manager
    });
    dynamicFsLayer.baseFs = new NodeFS(fs__default.default);
  }
});
manager = makeManager(defaultApi, {
  fakeFs: dynamicFsLayer
});
if (module.parent && module.parent.id === `internal/preload`) {
  defaultApi.setup();
  if (module.filename) {
    delete require$$0__default.default._cache[module.filename];
  }
}
if (process.mainModule === module) {
  const reportError = (code, message, data) => {
    process.stdout.write(`${JSON.stringify([{ code, message, data }, null])}
`);
  };
  const reportSuccess = (resolution) => {
    process.stdout.write(`${JSON.stringify([null, resolution])}
`);
  };
  const processResolution = (request, issuer) => {
    try {
      reportSuccess(defaultApi.resolveRequest(request, issuer));
    } catch (error) {
      reportError(error.code, error.message, error.data);
    }
  };
  const processRequest = (data) => {
    try {
      const [request, issuer] = JSON.parse(data);
      processResolution(request, issuer);
    } catch (error) {
      reportError(`INVALID_JSON`, error.message, error.data);
    }
  };
  if (process.argv.length > 2) {
    if (process.argv.length !== 4) {
      process.stderr.write(`Usage: ${process.argv[0]} ${process.argv[1]} <request> <issuer>
`);
      process.exitCode = 64;
    } else {
      processResolution(process.argv[2], process.argv[3]);
    }
  } else {
    let buffer = ``;
    const decoder = new StringDecoder__default.default.StringDecoder();
    process.stdin.on(`data`, (chunk) => {
      buffer += decoder.write(chunk);
      do {
        const index = buffer.indexOf(`
`);
        if (index === -1)
          break;
        const line = buffer.slice(0, index);
        buffer = buffer.slice(index + 1);
        processRequest(line);
      } while (true);
    });
  }
}

module.exports = defaultApi;
